如何學習SQL語言?
網(wǎng)友解答: sql是所有數(shù)據(jù)庫查詢的語言,sql由于本身結(jié)構(gòu)化的特點,非常容易入手。針對不同的數(shù)據(jù)庫,如mysql、sqlserver、oracle等,sql語法會有所不同,但是總體上大
sql是所有數(shù)據(jù)庫查詢的語言,sql由于本身結(jié)構(gòu)化的特點,非常容易入手。針對不同的數(shù)據(jù)庫,如mysql、sqlserver、oracle等,sql語法會有所不同,但是總體上大同小異,只是細微處的差別。
在學習的時候看視頻是個不錯的選擇,從分析,到建庫,建表,查詢等,通過別人的講解,都會一目了然的展現(xiàn)出來,更易于理解,更清楚;
目前用的比較多的就是MySQL了,以前學習sql 看的是“ 如鵬網(wǎng) ” 的MySQL教程,挺不錯的,通俗易懂,比較容易理解,具體的可以到如鵬網(wǎng)官網(wǎng)上去了解一下;http://www.rupeng.com/Courses/Index/34?lianbt(部分課程截圖)
有問題隨時提問,老師實時在線答疑,口碑不錯,基本上都是慕名而去的,視頻教程,課件,源碼都是可以免費下載的。
網(wǎng)友解答:說說我用SQL這三年來的幾點心得:
1.最基礎(chǔ)也最重要:搞清SQL語句的執(zhí)行順序
SQL和其他編程語言有個很大的區(qū)別是代碼的執(zhí)行順序,大多數(shù)編程語言例如Python是按照代碼順序執(zhí)行的,而SQL卻不是。搞清楚SQL執(zhí)行順序之后,就會對SQL的能力有了解,就會知道寫下join時內(nèi)存發(fā)生了什么變化,就會明白為什么where條件里面是不可以用別名的,就能寫出不被人笑話的基礎(chǔ)語句,最重要的是能根據(jù)執(zhí)行順序去優(yōu)化或創(chuàng)新代碼。當遇到具體需求時,就能評估能否實現(xiàn)啦。
我搜索過很多講解SQL執(zhí)行順序的資料,此處強烈推薦姜承堯編寫的書籍《MySQL技術(shù)內(nèi)幕:SQL編程》,講解非常清楚。跟著作者舉的例子,自行梳理幾遍,就能搞清楚的。下圖來自該書籍,代碼前的序號標明了執(zhí)行順序。
把最基礎(chǔ)的掌握了,函數(shù)啥的都可以通過搜索或詢問高手獲知。
2.編碼思維:先找出基礎(chǔ)數(shù)據(jù),在基礎(chǔ)數(shù)據(jù)之上再進行一步步計算
最終想要的結(jié)果往往并不能直接一步查詢得出,經(jīng)常會需要使用子查詢或者關(guān)聯(lián)臨時表。
編寫SQL代碼,要弄明白需要哪些表的哪些基礎(chǔ)數(shù)據(jù),表和表之間怎么關(guān)聯(lián),先把所需要的基礎(chǔ)數(shù)據(jù)查詢出來,然后再在基礎(chǔ)數(shù)據(jù)上進行一步步計算,計算的中間步驟就是子查詢或者臨時表。初學代碼的時候?qū)幙陕稽c,把基礎(chǔ)數(shù)據(jù)和最終結(jié)果之間的步驟一步一步寫出來,以防出錯。
寫SQL的頭一年里,我總擔心我寫的是否正確,因為沒掌握正確的思維方式,無法明確證明自己的邏輯沒漏洞。
3.SQL寫完之前或之后,多向他人請教
SQL寫完之前或是寫完之后,多向他人請教,視問題難易,把問題拆解后,問問當對方遇到此種情況時會怎么寫代碼,如果直接拋出一個很復雜的問題,沒人能耐心回答。和他人切磋代碼,高下立見,不然總會局限于自己的思考。
如果有SQL問題,歡迎留言一起切磋學習。