国产精品亚洲欧美_日韩综合nv一区二区在线观看_在线精品自拍亚洲第一区_亚洲国产成人九九综合

金融情報局網_中國金融門戶網站 讓金融財經離的更近

焦點!七個不可不知的SQL知識點

當前位置:金融情報局網_中國金融門戶網站 讓金融財經離的更近>資訊 > 原創 > 正文  2023-06-26 22:54:57 來源:Python學研大本營
SQL與數據科學

SQL指的是結構化查詢語言,旨在管理關系型數據庫。SQL在數據科學中應用廣泛,屬于必備技能。以下列出了SQL的特點:


(資料圖)

廣泛使用:雖然它已經有了大約40年的歷史,但在大多數關系型數據庫系統中用于查詢,并已成為實驗數據的標準工具。簡化對數據的理解:SQL在瀏覽數據庫內容時非常方便。它能讓你有效地理解細節。易于學習:它是新手的完美起點,具有簡單的類英語語法,只需幾行代碼即可提取有價值的見解。能夠處理海量數據:SQL可以使你以有組織的方式管理大量數據,是數據科學應用的理想選擇。與其他編程語言和應用程序的兼容性:將SQL與Python、C++、R等語言集成非常方便。它還支持商業智能和數據可視化工具,如Power BI和Tableau,使開發過程更加容易。7個SQL知識點1)基本命令

掌握基本命令的知識是終身學習的基礎。否則,你只會記憶事實,而不了解它們如何配合。以下是一些最常用的SQL命令:

SELECT和FROM:從指定的表中檢索數據的屬性。SELECT DISTINCT:它消除重 復的行并只顯示唯一的記錄。WHERE:它過濾記錄并只顯示滿足給定條件的記錄。AND、OR、NOT:當條件不為True時不執行查詢。而AND和OR用于應用多個條件。ORDER BY:它按升序或降序對數據進行排序。GROUP BY:它對相同的數據分組。HAVING:對由Group By聚合的數據可以在此進一步篩選。聚合函數:聚合函數,如COUNT()、MAX()、MIN()、AVG()和SUM(),用于對給定的數據執行操作。

讓我們以Employee表為例,應用這些命令:

ID

Name

Department

Salary ($)

Gender

1

Julia

Admin

20000

F

2

Jasmine

Admin

15000

F

3

John

IT

20000

M

4

Mark

Admin

17000

M

現在,我們想要獲取在Admin部門工作的女性的平均工資。

SELECT Department,       AVG(Salary)FROM EmployeesWHERE Gender="F"GROUP BY DepartmentHAVING Department = "Admin";

輸出:

Admin | 17500.0
2)Case When

Case When是SQL中一種非常強大和靈活的語句,用于編寫復雜的條件語句。它提供了IF.THEN.ELSE語句的功能。讓我們來看一下它的語法:

CASE expression   WHEN value_1 THEN result_1   WHEN value_2 THEN result_2   ...   WHEN value_n THEN result_n   ELSE resultEND

它按順序執行語句,并在條件為True時返回值。如果沒有滿足條件的情況,將執行ELSE塊,如果沒有ELSE塊,則返回NULL。

假設我們有一個學生數據庫,我們想根據他們的成績對他們進行分級。可以使用以下SQL語句:

SELECT student_name,       marks,       CASE           WHEN marks >= 85 THEN "A"           WHEN marks >= 75                AND marks < 85 THEN "B+"           WHEN marks >= 65                AND marks < 75 THEN "B"           WHEN marks >= 55                AND marks < 65 THEN "C"           WHEN marks >= 45                AND marks < 55 THEN "D"           ELSE "F"       END AS gradingFROM Students;
3)子查詢

作為一名數據科學家,子查詢的知識是必不可少的,因為他們需要處理不同的表格,并且一個查詢的結果可能會再次用于限制主查詢中的數據。它也被稱為嵌套查詢或內部查詢。子查詢必須用括號括起來,在主查詢之前執行。如果它返回多行,則稱為多行子查詢,并且必須使用多行運算符。

假設保險公司推出了一項新政策,取消那些年齡超過80歲的人的保險。可以使用如下所示的子查詢完成:

DELETEFROM INSURANCE_CUSTOMERSWHERE AGE IN    (SELECT AGE     FROM INSURANCE_CUSTOMERS     WHERE AGE > 80 );

內部子查詢選擇了所有80歲以上的客戶,然后對該組執行Delete操作。

4)連接

SQL連接是用于基于多個表格之間的邏輯關系將它們中的行組合在一起。SQL連接的4種類型如下所示:

內部連接(Inner Join):內部連接僅顯示滿足給定條件的兩個表格中的行。它可以在集合術語中稱為交集。
SELECT Student.NameFROM StudentINNER JOIN Sports ON Student.ID = Sports.ID;

它返回那些已在體育部門注冊的學生。注意:Sports ID與學生的注冊ID相同。

左連接(Left Join):它返回左表格中的所有記錄,而只顯示右表格中的匹配記錄。
SELECT Student.NameFROM StudentLEFT JOIN Sports ON Student.ID = Sports.ID;
右連接(Right Join):它與左連接作用正好相反。
SELECT Student.NameFROM StudentRIGHT JOIN Sports ON Student.ID = Sports.ID;
完全連接(Full Join):它包含來自兩個表格的所有行,如果它沒有相應的匹配條目,則顯示NULL值。
SELECT Student.NameFROM StudentFULL JOIN Sports ON Student.ID = Sports.ID;
5)存儲過程

存儲過程允許我們在數據庫中存儲多個SQL語句以便日后使用。它提供了可重用性,還可以在調用時接受參數值。它可以增強性能,并且更容易進行任何修改。

CREATE PROCEDURE SelectStudents @Major nvarchar(30),                                       @Grade char(1) ASSELECT *FROM StudentsWHERE Major = @Major  AND Grade = @Grade GO;EXEC SelectStudents @Major = "Data Science",                    @Grade = "A";

此存儲過程允許我們提取不同專業的學生,并根據其成績進行篩選。例如,我們要提取所有專業為數據科學且成績為A的學生。請注意,CREATE PROCEDURE就像函數聲明一樣,需要使用EXEC進行調用以便執行。

6)字符串格式化

我們都知道原始數據需要進行清洗,以提高整體生產力,從而做出高質量的決策。字符串格式化在這種情況下起著重要作用,它涉及到對字符串的操作,以去除不相關的內容。SQL提供了大量的字符串函數來轉換和處理字符串。其中最常用的五個函數如下:

CONCAT:用于將兩個或多個字符串相加。
SELECT CONCAT(Name, " has a major of  ", Major)FROM StudentsWHERE student_Id = 37;
SUBSTR:返回字符串的一部分,并在其參數中提供子字符串的起始位置和長度。
SELECT student_name,admission_date,     SUBSTR(admission_date, 4, 2) AS dayFROM Students

從admission_date中提取出來的day列將以單獨的形式出現,。

TRIM:TRIM的主要作用是從字符串的開頭、結尾或兩者中刪除字符(如果指定了)。必須指定前導、后導或兩者,然后是指定要刪除的字符,再接著是要從中刪除的字符串。
SELECT age,   TRIM(trailing " years" FROM age)FROM Students

它將26 years更改為26。

INSERT:允許我們在給定字符串中的指定位置插入字符串。必須指定要寫入的新子字符串的位置和長度。請注意,此新字符串將覆蓋先前的文本。
SELECT INSERT("OldWebsite.com", 1, 9, "NewWebsite");

它將被更新為NewWebsite.com。

COALESCE:主要是用使用者定義的值替換空值,這在數據科學中經常需要。
SELECT COALESCE (NULL, NULL, 10, "John’")

這將返回10。

7)窗口函數

窗口函數類似于聚合函數,但在計算后不會使行合并為單個行。相反,行保留其各自的標識。它們分為三個主要類別:

聚合函數:它從數值列中顯示聚合值,如AVG()、COUNT()、MAX()、MIN()、SUM()等。
SELECT name,       AVG(salary) over (PARTITION BY department) FROM Employees;

它顯示了Employee表中不同部門的平均工資。

值函數:使用值窗口函數為每個分區分配一些值。一些常用的值函數有LAG()、LEAD()、FIRST_VALUE()、LAST_VALUE()和NTH_VALUE()。
SELECT   bank_branch, month, income, LAG(income,1) OVER (  PARTITION BY bank_branch  ORDER BY month ) income_next_monthFROM Bank;

我們將銀行不同分支機構的本月收入與上月進行比較。

排名函數:它們可根據預定義排序為行分配排名。ROW_NUMBER()、RANK()、DENSE_RANK()、PERCENT_RANK()、NTILE()等是其中的幾個函數。
SELECT product_name, price, RANK () OVER (   ORDER BY list DESC ) price_hightolowFROM Products;

使用RANK(),對產品進行基于價格的排名。

結論

通過閱讀本文能全面了解作為數據科學家需要了解多少SQL基本知識。如果想更深入地了解這些概念,以下是一些資源可供參考:

【SQLServertutorial】:https://www.sqlservertutorial.net/

【TutorialsPoint】:https://www.sqlservertutorial.net/

【W3Schools】:https://www.w3schools.com/sql/

關鍵詞:

相關內容