要了解SQL,我們需要了解DBMS的工作方式。DBMS或數據庫管理系統本質上是一種用于創建和管理數據庫的軟件。SQL是否需要成為數據科學家?我們討論了SQL的重要性以及SQL知識如何幫助成功的數據科學事業的基礎。在此讓我們繼續前進,并進行更詳細的討論。如果您具有SQL的一些基本知識并且正在準備面試,請閱讀我們的SQL面試問題列表,這將幫助您找到工作。但是,在深入探討這一點之前,了解SQL在數據科學領域為何如此重要的原因以及如何發揮作用將非常有用。
什么是數據科學?
數據科學是一個使用許多科學方法和過程來收集數據并從中獲得有用見解的領域。這樣做會創造新的機會,設計,業務案例,甚至是革命性的創新。
人工智能的未來在于數據科學。數據科學涉及使用算法,軟件程序和統計信息來整理和處理巨大的復雜數據塊。數據的復雜性來自其非結構化的性質-當今的數據可以是任何形式-文本,圖像,傳感器和儀器的輸出,而沒有!
到目前為止,數據科學的好處可以在電子商務,醫療保健,制造業,銀行業,金融和運輸等領域中感受到。
DBMS和關系數據庫的基礎
要了解SQL,我們需要了解DBMS的工作方式。DBMS或數據庫管理系統本質上是一種用于創建和管理數據庫的軟件。借助DBMS,程序員可以創建,管理或選擇數據。
數據庫充當最終用戶和應用程序之間的接口,以有組織且一致的方式訪問數據。例如,用戶登錄Facebook。
根據用戶注冊的電子郵件地址和密碼,從應用程序對數據庫進行API調用,并檢索用戶詳細信息。
在關系型DBMS或RDBMS中,SQL是用戶和應用程序通過其訪問數據的API。可以以表及其列的形式訪問數據。
表之間的關系使得不需要重新組織數據或表。使用SQL語句,我們可以獲得有關多個表及其關系的信息。
什么是SQL?
SQL或結構化查詢語言是一種“編程語言”,它通過“查詢”管理關系數據庫中的數據。通過使用SQL,我們可以根據各種過濾器和條件插入,更新,刪除和選擇數據。SQL還可以幫助自動運行某些需要定期運行的計劃腳本。
借助SQL,開發人員和數據分析人員可以輕松地編寫代碼并運行查詢。例如,從客戶中選擇*;是一個簡單的查詢,提供了客戶表的詳細信息。
分析師可以訪問大量數據,進行處理,而無需在其他任何地方復制或存儲數據。
使用SQL查詢比使用Excel工作表或其他任何方法都更容易分析數據。SQL中有很多聚合函數,它們可以處理大型數據集和多個表。
了解數據科學的生命周期
要了解SQL在數據科學中的使用方式,我們需要了解數據科學的不同階段。
數據科學生命周期中有2個重要階段:
1.數據整理和清潔
從各種來源發現數據后,必須準備和構建數據。這意味著,應刪除所有冗余和重復數據,并形成整潔的結構,以便于對數據進行建模。這稱為DBMS規范化,所有關系數據庫都遵循此方法。
使用SQL,由于SQL具有主鍵和約束的概念,因此可以輕松完成數據的結構化和條件化,其中可以消除冗余和依賴性,并可以在不同數據類型之間建立適當的關系。
SQL還可以幫助清理數據,這意味著可以通過自動批處理腳本定期刪除無關,不正確或損壞的記錄,而無需任何手動干預。您也可以使用R進行數據清理和轉換,但是將SQL與R結合使用可以減少要編寫的代碼量并帶來更大的靈活性。
2.數據建模和挖掘
模型規劃和構建完全依賴于DBMS(數據庫管理系統),尤其是結構化查詢語言或SQL(如果您還不知道的話)。大數據是大量的非結構化數據,只有結構化語言才能節省我們在顯示數據變量之間建立關系的時間。
一個簡單的建模示例是嘗試購買計劃,訂購和一些增值服務的后付費移動連接的客戶。
這些中的每一個都可以是關系DBMS中的一個表,并且可以使用可以唯一的通用鍵(例如customer_id,phone_number或subscription_id)建立它們之間的關系。因此,我們正在創建實體(表),屬性(列),關系(鏈接到subscription_id或phone_number等的customer_id等)和完整性(customer_id應該是唯一的,phone_number和subscription_id可以是一個組合鍵,等等)。
我們還可以創建觸發器,例如,每當客戶更改任何增值服務時,觸發器都可以在執行必要的資格檢查后自動激活該服務。
數據挖掘是一個過程,其中檢查大量數據的模式和趨勢以評估數據以解決業務目的。當組織和構造大型數據集時,該過程變得更加容易。
繼續,讓我們說我們想確定大多數用戶感興趣的增值服務是什么。由于當今每個人至少擁有一部手機,并且可以添加的服務數量是無限的,所以這將是大量數據進行合并,分類和檢查。
SQL通過根據特定的用戶查詢提供特定的記錄使事情變得更容易。例如,如果我們想知道在通話過程中激活了“鈴聲”服務的用戶,我們可以將查詢寫為-
select customer_id from value_added_service table where service = ‘ringtone’ and is_service_enabled = ‘Y’ and service_end_date > NOW();
對于復雜的查詢,可以進行索引以更快地獲取結果。
我們還可以使用內置的SQL函數根據service_end_date升序列出數據,并按特定順序分組等等。
SQL數據分析基礎
您可能想說具有大量數據的excel工作表也可以獲取結果并執行一些過濾操作。的確如此,但與SQL存儲數據的規模沒有可比性。但是多少SQL足以讓您成為數據科學家?
沒有確定的答案,但是我們嘗試了很多信息,這些信息將幫助您掌握基本概念。如果您已經了解SQL,那么您將熟悉其中的大多數內容;如果您不熟悉,請不用擔心,此博客將為您提供有關基礎知識的深刻見解。
大多數情況下,數據庫和架構已經存在,并且建立了所有關系。作為數據科學家,您將需要了解架構,關系以及如何查詢數據庫以從業務角度獲得最佳結果。
讓我們創建一些數據,然后使用下面將要學習的不同技術來獲取數據。
以下是您每天將要使用的最重要的語句和命令。
選擇行和列
從表中獲取所有數據的基本查詢是–
select * from table_name;
讓我們從學生表中獲取一些記錄。
select * from student;
將獲取我們表格中存在的所有行和列。
如果我們只想要名字和生日該怎么辦?然后,我們應該在查詢中指定列名稱。
select first_name, date_of_birth from student;
名date_of_birth
-------------------------------------------
瑪麗亞17-11 -1984
戈帕爾1983年4月2日
凱沙夫14-12-1983
亞倫1984年5月3日
納曼1984年6月6日
我們還可以使用一些表達式以特定方式顯示數據。例如,
select first_name + ‘ ‘ + last_name as full_name from student;
您會得到類似–
全名
------------
瑪麗亞·托馬斯·
戈帕爾(Maria Thomas Gopal)錢德拉·
克沙夫(Chandra Keshav)夏爾馬
·亞倫(Shara Aaron V)
根據條件過濾行
大多數時候,我們只需要特定的趨勢和模式。這些模式可以作為我們的過濾器,基于這些過濾器,我們將僅從數據庫中獲取那些相關且滿足我們條件的記錄。例如,
如果我們只想讓老師Brunda的學生參加,可以使用where子句。
select first_name, date_of_birth from student where teacher_name = ‘Brunda’;
使用分組和排序功能也很簡單有效。首先,如果我們要基于deptt對記錄進行分組,則可以添加group by子句。
select first_name, date_of_birth from student where adm_year = 2001 group by deptt;
“具有”是另一個過濾器,類似于可應用于組函數的where子句。例如,我們要獲得所有ECE部門的記錄以及2001年之后的入學日期,我們可以將查詢寫為–
select first_name, deptt, date_of_birth from student group by deptt having adm_year > 2001;
這將獲取類似:
first_name deptt date_of_birth
Maria ECE 17-11-1984
Naman ECE 06-06-1984
Keshav CSE 14-12-1983
可能會發生類似的記錄,而我們只想獲得其中之一。例如,deptt列。如果要列出數據庫中存在的所有部門,則可以使用關鍵字distinct。這將在列中提供所有唯一值。
同樣,我們可以根據特定條件獲取學生人數,求和,平均,找到具有特定出生日期的記錄以及更多其他信息。
使用內置功能匯總結果
聚合函數與group by,having子句一起使用,可從select語句中獲取標量值。最常見的功能是: SUM,AVG,COUNT,MAX,MIN。除計數功能外,其他所有功能均忽略NULL值。在上面的示例中,如果我們想獲得ECE部門的學生人數,我們可以將查詢形成為:
select count(*) from student where deptt = ‘ECE’;
同樣,如果我們想獲得各個年級的CSE學生所獲得的平均百分比,則可以使用AVG函數等等。
加入
眾所周知,一個關系數據庫有多個可以相互映射的小表。為了在單個結果中從多個表中獲取數據,我們將這些表聯接起來并顯示所需的列。有不同類型的聯接:
· 左聯接
· 正確加入
· 外加入
· 內部聯接
· 自加入
· 交叉聯接
如果您想詳細了解上述各項中的任何一項,則此交互式課程將滿足您成為數據科學家所需的所有SQL以及我們上面已經討論的所有內容。
SQL分析服務
Microsoft提供了一個很好的工具,許多組織都使用它來分析分布在多個數據庫中的巨大數據。此在線分析處理和數據挖掘工具簡稱為SSAS,包括許多服務,例如建模,集成,報告和分析。有關更多信息,請從此處查看 Microsoft官方頁面上的信息。
數據科學中有許多子領域,但是無論如何,SQL仍然是數據科學領域的重要組成部分。沒有SQL的本質,您在此字段中的輸入將是不完整的。學習和實施SQL將在幫助您思考更多創造性想法并將數據轉換為有用的業務用例或見解方面大有幫助。想了解更多關于數據庫的信息,請繼續關注中培偉業。