你好,我是簡逸,一個跟數(shù)據(jù)庫打了十來年交道的老 DBA 了,比較擅長關(guān)系型數(shù)據(jù)庫的 SQL 優(yōu)化和性能調(diào)優(yōu)。也曾在線下做過許多次數(shù)據(jù)庫經(jīng)驗技術(shù)的分享。在做分享的時候經(jīng)常會有學員問我,現(xiàn)在這個時候了,還有必要學習 SQL 嗎?
關(guān)于這個問題,我的答案是:有必要,而且很有必要!
至于說為什么這么有必要,你且聽我一一為你解答:
什么是 SQL?
想要認識到 SQL 為什么這么有必要學習,我們得先來看看 SQL 是個什么東西。放心,這里并不會長篇大論的跟你說一些什么理論知識,關(guān)于 SQL 的由來這個問題后面我們會有一個專門的小節(jié)來講解。
SQL 誕生于 1974 年,那時隨著計算機和互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,數(shù)據(jù)庫技術(shù)已經(jīng)被廣泛應(yīng)用在數(shù)據(jù)的存儲和檢索上了,但是如何獲取數(shù)據(jù)卻一直是當時的技術(shù)人員頭痛的地方。
1970 年代初,IBM 公司的埃德加-科德發(fā)表應(yīng)將數(shù)據(jù)組成表格的應(yīng)用原則(即關(guān)系型數(shù)據(jù)庫),1974 年,與他同在一個實驗室的 D.D.Chamberlin 和 R.F. Boyce 研制出一套規(guī)范語言 – SEQUEL。
SEQUEL,就是 SQL 語言的前身,在 1980 年正式更名為 SQL。
SQL 出現(xiàn)之后,數(shù)據(jù)庫技術(shù)取得了重大的突破,我們只需要一條 SQL 語句就能檢索或者更新多個表中的數(shù)萬條記錄,現(xiàn)在的 SQL 已經(jīng)成為了數(shù)據(jù)庫技術(shù)的重要組成部分!
程序員的剛需
隨著數(shù)據(jù)庫技術(shù)的發(fā)展,不論你是 DBA 工程師、前端工程師、后端工程師,亦或是測試工程師你都要不可避免的和數(shù)據(jù)打交道。
能夠快速、精準的提取到自己想要的數(shù)據(jù)可以大大的加快我們的開發(fā)工作進度,這個時候會不會 SQL 就能明顯的體現(xiàn)出和別人的差距。
同時 SQL 優(yōu)化也是大中型項目中必備的工作,每一個人寫出的 SQL 語句的執(zhí)行效率是不一樣的,SQL 語句是否優(yōu)質(zhì)是影響應(yīng)用和軟件性能的重要因素。
更有甚者,有許多大公司已經(jīng)將 SQL 技術(shù)作為 DBA工程師、項目經(jīng)理、架構(gòu)師、技術(shù)總監(jiān)等重要職位的必備技能之一,基本可以說是面試必問的一項技術(shù)。
而且,因為 SQL 簡單易懂,它也越來越多的被應(yīng)用在大數(shù)據(jù)技術(shù)中,這一點也是下面我要說的。
大勢所趨
如今隨著大數(shù)據(jù)時代的開啟,數(shù)據(jù)分析工程師,大數(shù)據(jù)開發(fā)工程師等等崗位已經(jīng)是炙手可熱的狀態(tài)了。不論是數(shù)據(jù)分析工程師還是大數(shù)據(jù)開發(fā)工程師都是“玩弄”數(shù)據(jù)的一把好手。SQL 正是他們的拿手好戲。如果你想從事數(shù)據(jù)行業(yè)相關(guān)工作的話,SQL 是一個必須的選項。
說了這么多,也不如你親自去學一下 SQL 來看看它是如何提升你得行業(yè)競爭力的,從現(xiàn)在開始,一起來跟著這本專欄系統(tǒng)的學習 SQL。
專欄模塊
本專欄分成 3 部分共 32 小節(jié),內(nèi)容由淺入深,帶大家學習數(shù)據(jù)庫 SQL 的語法和應(yīng)用,重點介紹四大主流關(guān)系型數(shù)據(jù)庫 SQL 語法和區(qū)別,SQL 優(yōu)化方法以及 SQL 在數(shù)據(jù)統(tǒng)計中的應(yīng)用,主要分三個主題:
SQL基礎(chǔ)
數(shù)據(jù)庫和 SQL 語言中的主要語法和概念,結(jié)合項目案例進行簡單的數(shù)據(jù)統(tǒng)計,內(nèi)容包括簡單的查詢語句、where子查詢、排序查詢、分組查詢、多表關(guān)聯(lián)查詢,新增和刪除記錄等。
SQL進階
深入了解 SQL 的運行機制以及復雜的查詢語句,介紹影響 SQL 執(zhí)行效率的因素,內(nèi)容包括索引的使用、事務(wù)、觸發(fā)器、游標、表變量和臨時變量、存儲過程和分頁查詢等。
SQL優(yōu)化專題
通過千萬級數(shù)據(jù)統(tǒng)計案例詳細介紹 SQL 查詢優(yōu)化的方法,包括索引和分區(qū)表的使用。