{eval=Array;=+count(Array);}
如何快速有效掌握數(shù)據(jù)庫語言SQL?
數(shù)據(jù)庫有很多種,常見的數(shù)據(jù)庫都是關(guān)系型數(shù)據(jù)庫,如MySQL、Oracle、SQL Server等,當(dāng)然,還有非關(guān)系型數(shù)據(jù)庫,如MongoDB、Hbase等。
對于初學(xué)者,建議從MySQL開始,因為MySQL是目前使用最廣泛的關(guān)系型數(shù)據(jù)庫,學(xué)習(xí)起來相對容易,下面給出一些學(xué)習(xí)建議。
首先需要安裝MySQL,Windows下推薦使用MySQL Installer這個工具來安裝MySQL。
下載地址:
https://dev.mysql.com/downloads/windows/installer/
通過Installer安裝3個東西:
MySQL Server(MySQL服務(wù)器,必需)
MySQL Notifier(監(jiān)視器:用于啟動、重啟MySQL Server,非必需)
MySQL Workbench(寫SQL語句的工具,非必需)
如果你是一個PHP愛好者,可能安裝過一些集成工具如xampp,phpadmin等,這些工具自帶MySQL Server,也是可以的。
MySQL Server安裝好后,默認是自動啟動的。
如果需要重啟MySQL服務(wù),有兩種方式:
1、通過MySQL Notifier來啟動或者重啟MySQL Server(注意,不是MySQL Workbench)。
2、通過“我的電腦”-“管理”-“服務(wù)和應(yīng)用程序”-“服務(wù)”進行啟動或者重啟。
MySQL Server啟動后,需要連接MySQL,推薦使用MySQL Workbench,當(dāng)然用cmd命令行也可以。
數(shù)據(jù)庫是用來存放數(shù)據(jù)表的地方,相當(dāng)于電腦上的文件夾(database),里面可以放多個Excel表格(table)。
數(shù)據(jù)表是用來存放數(shù)據(jù)的地方,相當(dāng)于電腦上的Excel表格(其實不準(zhǔn)確),一張張二維的表格,里面可以存放數(shù)據(jù)。
常用的數(shù)據(jù)類型有三種:字符型、數(shù)值型和日期時間型。
SQL語句的核心在于查詢,需要掌握的查詢操作如下圖所。
以下是關(guān)于SQL的一些其他操作,對于數(shù)據(jù)分析師來說,不太常用,有興趣可以了解一下。
索引類似于拿漢語字典的目錄頁(索引),我們可以按拼音、筆畫、偏旁部首等排序的目錄(索引)快速查找到需要的字。
MySQL本身提供了很多內(nèi)置函數(shù),但有時候需要實現(xiàn)我們自己的一些功能,就需要自定義函數(shù)。
自定義函數(shù)的函數(shù)體由多條可用的MySQL語句,流程控制,變量聲明等語句構(gòu)成。
存儲例程是存儲在數(shù)據(jù)庫服務(wù)器中的一組sql語句,通過在查詢中調(diào)用一個指定的名稱來執(zhí)行這些sql語句命令。
存儲過程一般是作為獨立部分來執(zhí)行,而函數(shù)可以作為查詢語句的一個部分來調(diào)用。
事務(wù)是一組SQL語句,用來維護數(shù)據(jù)庫的完整性,保證成批的sql操作要么完全執(zhí)行,要么完全不執(zhí)行。
例如,銀行賬戶轉(zhuǎn)賬業(yè)務(wù),例如客戶A轉(zhuǎn)賬100元給客戶B,這里涉及兩個操作:
客戶A減去100元
客戶B增加100元
必須同時成功或者同時失敗。
游標(biāo)(cursor),一個存儲在MySQL服務(wù)器上的數(shù)據(jù)庫查詢,被select語句檢索出來的結(jié)果集,在存儲了游標(biāo)之后,可以根據(jù)需要滾動或瀏覽其中的數(shù)據(jù),多用于存儲過程。
歡迎關(guān)注【數(shù)據(jù)科學(xué)吧】,分享數(shù)據(jù)科學(xué)相關(guān)的知識!
學(xué)習(xí)mysql分成理論和實踐兩方面
(1)理論:可以看《高性能mysql》、《mysql技術(shù)內(nèi)幕》,另外可以搜下楊一DBA的博客(http://blog.itpub.net/22664653/),該博主的mysql文章質(zhì)量很高,而且他是有贊的首席DBA,有豐富的實戰(zhàn)經(jīng)驗
(2)對于開發(fā)來說,就要去找相應(yīng)的項目去實踐,這時候需要注意甄別問題,要盡量去大公司或者深度使用mysql的公司,在實踐中解決復(fù)雜的問題,例如:索引優(yōu)化ia、大表優(yōu)化、數(shù)據(jù)變更等
總之,理論和實踐相結(jié)合,不可偏廢
首先先分清MySQL與sql的區(qū)別。
MySQL與oracle,Microsoft access等一樣,是關(guān)系型數(shù)據(jù)庫,是一個用于存儲的工具。而sql與java,Python一樣,是一種數(shù)據(jù)庫查詢語言。通常關(guān)系型數(shù)據(jù)庫都是支持用sql語言進行增刪改查操作的。
那么我認為,題主是想了解,如何學(xué)寫SQL語句。
我之前曾經(jīng)回答過如何學(xué)習(xí)java的問題。既然同樣作為語言,SQL語言的學(xué)習(xí)思路其實也是大同小異。
書籍
首先是通過書籍來獲得基礎(chǔ)知識。數(shù)據(jù)庫作為計算機專業(yè)本科生的必修科目,其教材自然是值得推薦的。這本《高級數(shù)據(jù)庫系統(tǒng)及其應(yīng)用》,由清華大學(xué)出版,書中除了包括SQL語句的教學(xué),也講解了支持SQL語句的數(shù)據(jù)庫系統(tǒng),實在是一本很實用的工具書。
最近出版的還有些內(nèi)容更平易近人的書,比如《SQL即查即用》,在某電商網(wǎng)站的互聯(lián)網(wǎng)書籍排行第九。
視頻資料
除了書籍,嘗試通過視頻學(xué)習(xí)也是很好的輔助與補充,能夠有效緩解學(xué)習(xí)過程的倦怠感。推薦到網(wǎng)易云課堂,慕課網(wǎng)上搜關(guān)鍵字“SQL語言”,可根據(jù)播放量來自行選擇。
網(wǎng)站
這也是一個新的語言學(xué)習(xí)方式,通過閱讀網(wǎng)站上的demo,在網(wǎng)站提供的環(huán)境中實際操作,能夠幫助你更快的上手SQL語言實戰(zhàn)。推薦的菜鳥教程
http://www.runoob.com/sql/sql-tutorial.html
,以及W3Cschool
http://www.w3school.com.cn/sql/index.asp
, 這里不僅有對SQL語句的講解,同時還有些小quiz,可以讓你方便的測試自己的學(xué)習(xí)成果。
以上是我對學(xué)習(xí)sql語言的推薦,歡迎在下方評論區(qū)給我留言交流。
我是蘇蘇思量,來自BAT的Java開發(fā)工程師,每天分享科技類見聞,歡迎關(guān)注我,與我共同進步。
作為一個用了三年mysql數(shù)據(jù)庫的小碼農(nóng)來回答你
首先啊糾正一下,數(shù)據(jù)庫的話叫mysql完全ok,如果說數(shù)據(jù)庫語言的話,只能叫sql,mysql,oracle,sqlselver等等都是遵循sql規(guī)則,凡是欲速則不達,如果在開發(fā)方面你想要求速,那么后期你的bug維護起來花費的時間夠你受的,所以前期如果不懂?dāng)?shù)據(jù)庫的話,建議你還是穩(wěn)扎穩(wěn)打。如果非要著急想用的話,我只能這么給你建議了。
找一套數(shù)據(jù)庫全套教程,粗略的先嘍一遍,了解這東西能解決什么問題,什么情況下會用到,又怎么進行優(yōu)化,帶著這些疑問大概嘍一遍之后,學(xué)數(shù)據(jù)庫管理工具的使用,絕對是上手最快的,沒有之一了,你是幸運的,我從下周開始準(zhǔn)備更新mysql數(shù)據(jù)庫和數(shù)據(jù)庫管理工具的使用,一些基本的增刪改查,左外連接,排序,分組查詢,主外鍵,索引等等都會講解,希望對大家有幫助,加油。
大家還有什么好的方法歡迎留言,恭候您的寶貴建議。
學(xué)SQL還是要多讀多寫
讀,是指要有一套學(xué)習(xí)輔導(dǎo)書籍或視頻教程,我覺得至少要先知道SQL 是做什么的,能夠解決什么問題,才是該如何學(xué)好。
網(wǎng)上的輔導(dǎo)書籍和視頻教程很多,這里推薦我看過的一些比較好的書籍和視頻教程
書籍類:
《SQL基礎(chǔ)教程》
《SQL必知必會》
這兩本應(yīng)該是寫的比較通俗易懂的書籍了,此外一些數(shù)據(jù)庫的安裝,操作可以網(wǎng)上搜索一下相關(guān)的圖文教程,基本上只要你的關(guān)鍵字正確,都可以找到你想要的內(nèi)容。
視頻類
視頻類的教程一般網(wǎng)上也有,但是質(zhì)量參差不齊,有興趣的可以關(guān)注我們的公眾號(SQL數(shù)據(jù)庫開發(fā))獲取我收藏的一些較好的視頻教程。
說完讀,下面就是寫了
上面這些資料都是為我們寫SQL語句作的準(zhǔn)備,但是真正要學(xué)會SQL 還是要多動手動腦。
SQL 終歸還是一門語言,有它固定的語法,這些語法就需要我們?nèi)ビ涀 H绾斡涀∧??那就是不停的練?xí)寫SQL 代碼,并且用SQL 代碼解決一些問題,比如每學(xué)完一個知識點就去做一道題,這樣效果會很好。
此外,凡事都有個過程,學(xué)習(xí)也不例外,學(xué)SQL 如果只是學(xué)個皮毛,一周時間就夠了。但是真正去解決問題你就會發(fā)現(xiàn)無從下手,所以還是要多月多練,并且要養(yǎng)成做筆記的習(xí)慣,不會的內(nèi)容一定要弄懂才進行下一步。
不管是學(xué)SQL ,還是學(xué)其他東西,我相信方法都類似,只是看你是否堅持下去了。
首先MySql并非數(shù)據(jù)庫語言,數(shù)據(jù)庫語言是SQL
而一般現(xiàn)在基本都是遵循SQL92標(biāo)準(zhǔn)。
學(xué)習(xí)任何一門語言最簡單的辦法就是動手。
如果你想深入學(xué)習(xí)的話你可以不用圖形界面,直接用mysqlclient鏈接進去操作。
先從創(chuàng)建表,修改表,刪除表開始練習(xí)。
然后開始普通的select、insert、update、delete開始練習(xí),切記著語法,
然后等你熟悉后就開始inner join、left join等的連表操作。
當(dāng)以上的你都熟悉后,你可以去一些在線題庫刷刷題,一般都會有測試數(shù)據(jù)給你,再給出個問題給你,最后你通過寫sql語句來完成題目要求。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答5
回答