為什么SQL知識對數(shù)據(jù)科學(xué)家至關(guān)重要?
譯文?譯者 | 李睿
審校 | 孫淑娟
SQL可以追溯到上世紀(jì)70年代由Edgar Codd博士、Donald Chamberlin、Raymond Boyce和其他IBM研究人員構(gòu)建的早期關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫中一個表中的數(shù)據(jù)可以鏈接到數(shù)據(jù)庫數(shù)千個甚至數(shù)百萬個條目中的任何一個表中的數(shù)據(jù)。因此,SQL使得搜索和檢索與業(yè)務(wù)相關(guān)的問題的數(shù)據(jù)并在報告中呈現(xiàn)結(jié)果比以往更容易、更快捷。
SQL到底是什么?
SQL是一種用于關(guān)系數(shù)據(jù)庫的查詢語言(傳統(tǒng)數(shù)據(jù)庫以表格形式存儲數(shù)據(jù)庫)。它使用關(guān)系模型的能力來提供數(shù)據(jù)屬性或?qū)傩?,如貨幣單位、?shù)字、日期或指定值。這是一個典型的SQL格式,它包含表、列、字段和行:
- 與電子表格類似,數(shù)據(jù)庫表由行和列組成。
- 每列顯示該記錄中的一個字段,每行表示一條記錄。
- 為保證每個字段中的數(shù)據(jù)符合數(shù)據(jù)庫的標(biāo)準(zhǔn),可以為表和表中的每一列提供屬性。
以下通過一些統(tǒng)計數(shù)據(jù)來說明SQL的流行程度以及財富500強公司為何對其如此依賴。
- 近58.2%的數(shù)據(jù)科學(xué)家工作需要SQL技能(Indeed.com)。
- 數(shù)據(jù)科學(xué)家更喜歡SQL而不是R和Python,其中65%以上的人使用SQL(StackOverFlow 2020年調(diào)查)。
- Microsoft、NTT Data、Accenture、Dell和Cognizant是使用SQL分析數(shù)據(jù)的頂級公司之一 。
- MySQL被評為2022年第二大最受歡迎的數(shù)據(jù)庫管理系統(tǒng)(Statista) 。
為什么SQL知識對數(shù)據(jù)科學(xué)家至關(guān)重要?
數(shù)據(jù)科學(xué)家列出了SQL的一些主要好處。這種語言:
- 易于理解和使用,取決術(shù)語和簡單的結(jié)構(gòu)。
- 與Python、R和其他編程語言兼容,使數(shù)據(jù)科學(xué)家能夠交換和展示他們的發(fā)現(xiàn),為數(shù)據(jù)科學(xué)家提供工具來檢查他們的數(shù)據(jù)集,從而幫助他們更好地理解它們。
- 容納數(shù)據(jù)分析師和科學(xué)家必須處理的大量數(shù)據(jù)。例如,關(guān)系數(shù)據(jù)庫遠比電子表格強大。
- 對于大多數(shù)招聘數(shù)據(jù)科學(xué)家和數(shù)據(jù)科學(xué)專業(yè)人士的招聘人員來說,對這門語言的熟練程度要高于其他編程語言。
最常見的SQL命令有哪些?
為了開發(fā)和修改數(shù)據(jù)庫表、定義用戶權(quán)限和進行其他活動,SQL命令用于與數(shù)據(jù)庫交互。有五種基本的SQL命令:
1.數(shù)據(jù)定義語言(DDL)
數(shù)據(jù)定義語言(DDL)指令用于通過創(chuàng)建、刪除或更改表包含的數(shù)據(jù)來更改表的結(jié)構(gòu)。命令會自動保存在數(shù)據(jù)庫中或“自動提交”。
(1)創(chuàng)建(CREATE)
該命令通過提供表名、列名、大小和屬性來創(chuàng)建新表。
(2)更改(ALTER)
該命令主要用于向數(shù)據(jù)庫模式添加新功能或更改現(xiàn)有功能。從表中刪除當(dāng)前列、更改列或減小列的大小都是可能使用的示例。
(3)刪除表(DROP)
該命令用于刪除表,包括其所有數(shù)據(jù)。
(4)重命名(RENAME )
該命令為現(xiàn)有表提供新名稱。
理想的數(shù)據(jù)定義語言(DDL)應(yīng)該:
- 為每個記錄類型、數(shù)據(jù)項類型、數(shù)據(jù)庫、文件類型和其他數(shù)據(jù)細(xì)分賦予唯一的名稱。
- 區(qū)分幾種數(shù)據(jù)劃分,如數(shù)據(jù)項、段、記錄和數(shù)據(jù)庫文件。
- 說明不同的記錄類別如何與不同的品牌結(jié)構(gòu)相關(guān)聯(lián)。
- 能夠指定數(shù)據(jù)元素的長度。
2.數(shù)據(jù)操作語言(DML)
使用數(shù)據(jù)操作語言(DML)指令修改數(shù)據(jù)庫。由于數(shù)據(jù)操作語言(DML)命令不像數(shù)據(jù)定義語言(DDL)那樣自動提交,因此可以撤消這些操作。
(1)插入(INSERT)
通過給出表名和與新信息相關(guān)的值,例如年齡、地址和姓名,該命令用于將數(shù)據(jù)插入到表行中。同樣,它可用于使用來自其他來源的數(shù)據(jù)填充表。
(2)刪除(DELETE)
該命令從表中刪除一行或多行。例如,簡單地指定表名會刪除它的所有行;但是,添加條件(例如WHERE Name="MIKE")只會消除符合要求的行。
(3)更新(UPDATE)
該命令更改表字段的值,并將其應(yīng)用于所有行或僅滿足條件的行,例如包含特定州代碼或郵政編碼的行。
數(shù)據(jù)操作語言(DML)只是暗示:
- 檢索、插入、刪除和修改數(shù)據(jù)庫中存儲的信息。
3.事務(wù)控制語言(TCL)
為了管理數(shù)據(jù)庫,事務(wù)控制語言(TCL)命令與數(shù)據(jù)操作語言(DML) 命令一起使用。但是,事務(wù)控制語言(TCL)命令不能用于創(chuàng)建或刪除表,因為它們是在數(shù)據(jù)庫中自動提交的。
(1)提交(COMMIT)
該命令保存所有數(shù)據(jù)庫事務(wù),終止當(dāng)前事務(wù),并將事務(wù)期間執(zhí)行的所有更改標(biāo)記為不可逆。它還釋放表持有的所有事務(wù)鎖。
(2)回滾(ROLLBACK)
該命令通過終止事務(wù)并清除在事務(wù)期間所做的所有修改,會擦除所有尚未保存到數(shù)據(jù)庫的事務(wù)。它還釋放在表上獲得的任何事務(wù)鎖。
(3)保存點(SAVEPOINT)
使用該命令將數(shù)據(jù)庫回滾到先前構(gòu)建的保存點。以這種方式只能保留交易的某些方面。從上一個提交或回滾命令開始,必須給出保存點。
4.數(shù)據(jù)控制語言(DCL)
數(shù)據(jù)控制語言(DCL)命令控制誰可以訪問數(shù)據(jù)庫中的數(shù)據(jù)。這些說明根據(jù)用戶訪問權(quán)限允許或拒絕某些用戶的訪問。
(1)授予(GRANT)
該命令授予用戶訪問權(quán)限,并指定允許用戶執(zhí)行的任務(wù),例如選擇和更改表以及授予其他用戶訪問權(quán)限的能力。
(2)撤銷(REVOKE)
此命令刪除用戶的訪問權(quán)限。任何有能力向其他人提供訪問權(quán)限的人都可以使用它,即使授予者不是表的創(chuàng)建者。
5.數(shù)據(jù)查詢語言(DQL)
數(shù)據(jù)查詢語言(DQL)命令從數(shù)據(jù)庫中獲取數(shù)據(jù),這符合選擇(SELECT)命令語法的要求。
(1)選擇(SELECT)
這是唯一可用的DQL命令,適用于所有檢索活動。通過定義表名,語法指示在哪里查找給定數(shù)據(jù)。WHERE語句指定目標(biāo)數(shù)據(jù)必須具有哪些品質(zhì)或特征才能獲得,例如“WHERE age >65”。
有哪些不同的SQL數(shù)據(jù)類型?
在生成查詢時,選擇合適的SQL數(shù)據(jù)類型是創(chuàng)建結(jié)構(gòu)良好的查詢的第一步??梢苑湃氡砹兄械闹档念愋陀蓴?shù)據(jù)類型定義,其中一些是:
(1)SQL日期和時間數(shù)據(jù)類型
- DATE:以YYYY-MM-DD格式緩存的日期。
- TIME:以HH:MI:SS形式緩存的時間。
(2)SQL二進制數(shù)據(jù)類型
- BINARY:固定長度,最多8,000個字符。
- VARBINARY:可變長度,最多8,000個字符。
(3)字符和字符串的SQL
- CHAR:固定長度最多為8,000個字符的字符。
- VARCHAR:最多為8,000個可變長度字符。
- VARCHAR(max):可變長度存儲使用“max”選項創(chuàng)建一個最大為231-1字節(jié)的列約束大小,或以1到8000的值定義字符串大小(以字節(jié)為單位)。(2GB)
精通SQL的數(shù)據(jù)科學(xué)專業(yè)人員
具有SQL技能的數(shù)據(jù)科學(xué)家和軟件開發(fā)人員有更多的工作選擇。SQL知識在各種專業(yè)角色中都很有用,例如:
- SQL數(shù)據(jù)庫開發(fā)人員
- SQL數(shù)據(jù)庫管理員
- SQL數(shù)據(jù)分析師
- 云數(shù)據(jù)庫專家
- 商業(yè)智能管理員
結(jié)語
數(shù)據(jù)的使用只會增長。因此從長遠來看,學(xué)習(xí)SQL將對企業(yè)大有幫助。學(xué)習(xí)SQL是數(shù)據(jù)科學(xué)家和數(shù)據(jù)庫專業(yè)人員為他們的職業(yè)做準(zhǔn)備的最佳方式。數(shù)據(jù)庫系統(tǒng)不僅是尋找數(shù)據(jù)專家的企業(yè)中最需要的人才之一,而且還是學(xué)習(xí)其他有用IT技能的基石。SQL知識是數(shù)據(jù)研究和軟件開發(fā)中許多有利可圖的職位的基石。
原文標(biāo)題:??Why Is SQL Knowledge Vital for Data Scientists? A Sneak Peek???,作者:Anamika Singh?