主題:
[DB]
[分享] SQL語法教學
[打印本頁]
發表人:
lch2003
時間:
2006-7-28 06:16 PM
主題:
[分享] SQL語法教學
自從上次被 熊小
叫我再學習 SQL,
結果我找到「
SQL語法入門
」
大家參考一下
( 基本上這個不算是「入門」, 而是「進階」
)
發表人:
laikyo
時間:
2006-7-29 03:21 AM
MySQL中文參考手冊
http://linux.tnc.edu.tw/techdoc/mysql/mysql_doc/manual_toc.html
初學就熟用四大語法
SELECT
INSERT INTO
UPDATE
DELETE FROM
發表人:
jocosn
時間:
2006-7-31 01:22 AM
若是要用 MySQL,用這種 GUI 介面,脫拉就完成 SQL 語法雛型:
http://www.mysql.com/products/to ... /build_queries.html
還有語法可直接查詢。
query browser 顯示中文若出現亂碼,可到 mysql administrator 裡設定
Startup Variables>>Advanced>>Def. Chr Set
5.1 中文版手冊
http://twpug.net/docs/mysql-5.1/
SQL 每家都有差異,建議選一家資料庫後再去學它的 SQL。不然可能很容易陣亡。
[jocosn 在 2006-7-31 07:11 AM 作了最後編輯]
發表人:
steven211
時間:
2006-7-31 09:08 PM
引用:
lch2003
寫到:
自從上次被 熊小
叫我再學習 SQL,
結果我找到「
SQL語法入門
」
大家參考一下
( 基本上這個不算是「入門」, 而是「進階」
)
真的是蠻進階的連union都出來了
,
關聯式資料庫我覺得重要的還是觀念問題,
語法方面不要跑預存程序的話大部份都一樣,
我的經驗是這樣,
1.盡量減少連線次數 :
比如時常為了跑複雜的表格運算等等的會跑一個大迴圈,假設一千筆資料,在這
個大迴圈內又每圈再跟資料庫查詢一次資料,這個會極大伏度的降低效率。
2.與資料庫連線時只抓取所需要的資料即可,
例如Select * From xxxTable這樣把所有欄位都一次select出來自然會比較慢,
這其實牽涉到硬碟原理,
假設我的硬碟是sata 傳輸速率為80mbps好了,但是因
為多抓取一個欄位,每個欄位大概有1kbytes的資料,一次又抓取了10000筆資料
,實際上佔用的硬碟空間可能是10000*1kbytes=10000kbytes=10mbytes = sata硬碟傳輸速度(80mbps/8=10mbytes),多抓取一個欄位的資料就會多出1s的時間,當然實際上會根據各家的檔案系統及資料庫效率會有所差異,
3.cpu的速度>RAM>>HDD:
就是因為這樣才會有許多快取機制,硬碟sata理想通道寬度是150mbps sata2是300mbps,現在隨便一台電腦的記憶體寫入速度都有3g以上,更何況硬碟又有硬碟磁頭所造成的效能瓶頸,除非砸大本錢去買光纖通道的storage(最高可達4gmbps),不然其實程式方面多下點功夫還是值得的。
我遇到很多軟體工程師基本上是不想碰硬體這一塊的,但是我覺得多了解一些硬體原理絕對會增加程式的執行效率(雖然我功力還是很弱
)。
發表人:
ithinkurdumb
時間:
2007-3-4 01:11 AM
補充一下 (都是針對MS SQL的情況):
1.
其實跟database拉資料的時候,
如果在進for loop之前就把connection建立好,
結束for loop之後才把connection結束,
在for loop裡面讀取100次跟1000次在速度上的差別是不大的.
2.
不要因為懶就用SELECT * FROM是狠重要的,
常常在maintain程式的時候發現明明只要1, 2個column的資料,
卻一次抓了所有column的資料回來.
讀取的時間影響倒是還好 (因為db server的memory通常相當大),
重要的是浪費了好幾倍的memory.
另外,
如果要做簡單的排序這些動作,
最好能夠直接在SQL query中處理.
第一個是省下記憶體,
第二個是效率也會比較好.
有機會再補充囉.
發表人:
aleck
時間:
2007-3-4 11:34 PM
引用:
lch2003
寫到:
自從上次被 熊小
叫我再學習 SQL,
結果我找到「
SQL語法入門
」
大家參考一下
( 基本上這個不算是「入門」, 而是「進階」
)
還真不賴, 整理的真好!
入門及進階都含括了.
剩下優化的部份就靠各位多多提供了!
感恩! 感恩!
發表人:
PresarioNeil
時間:
2007-6-1 01:12 PM
http://www.1keydata.com/tw/sql/sql.html
這網站真的很棒!!
感謝樓主分享!
發表人:
chrixtal
時間:
2008-2-19 02:53 PM
一般來說,趕案子的時候,根本顧不了效能的部份,應該是說
資料正確 > 畫面功能,美觀 > 讀取速度 的重要性
所以通常都是案子快結束還有剩下時間的話(通常不可能)或是日後維護的時候再來做 最佳化
不過這也就是 高工 和一般工程師的差別 ^_^
歡迎光臨 TWed2k (http://twed2k.org/)
Powered by Discuz! 4.1.0