每個開發(fā)人員都需要掌握的十個基本 SQL 命令
SQL 是一種非常常見但功能強大的工具,它可以幫助從任何數(shù)據(jù)庫中提取、轉(zhuǎn)換和加載數(shù)據(jù)。
數(shù)據(jù)查詢的本質(zhì)在于SQL。?
隨著公司和組織發(fā)現(xiàn)自己處理的數(shù)據(jù)量迅速增加,開發(fā)人員越來越需要有效地使用數(shù)據(jù)庫來處理這些數(shù)據(jù)。
所以想要暗戀數(shù)據(jù)領域,SQL是必須的!
要掌握這門語言,您需要知道如何使用一些命令,其中大部分命令都基于一些基本命令。
讓我們一起探索最重要和最基本的 SQL 命令!
*對于整篇文章,我使用的是一個包含 5 個不同年齡和眼睛顏色的不同人的自制表格。
01、SELECT and FROM
SQL 中的 SELECT 命令是最簡單但也是最重要的命令之一,每個查詢都以 SELECT 開頭,這就是您從數(shù)據(jù)庫中獲取數(shù)據(jù)的方式。
我們總是需要指出從哪里獲取數(shù)據(jù),而這正是 FROM 命令發(fā)揮作用的地方,它指示我們查詢的表源是什么。
可以在 SQL 中執(zhí)行的最簡單的命令如下:
這相當于將“Hello World”打印到 java 或 python ;)
現(xiàn)在您可能想知道……那個星號是什么?
如果你是這樣,恭喜!這是一個重要的。它表示您希望從定義的表中選擇所有列。
星號是找出表中數(shù)據(jù)的好方法,但并不總是推薦用于生產(chǎn)代碼。
這就是為什么最好像下面這樣指定要檢索的每一列。
結(jié)果表將是:
02、DISTINCT
DISTINCT 用于查看列中的唯一值,該命令使用如下:
例如,假設我們想看到所有可能的眼睛顏色。在這種情況下,我們將從表中包含的 eyes_colors 列中選擇所有不同的值。
結(jié)果輸出是:
03、WHERE
每當您想根據(jù)特定條件過濾結(jié)果時,WHERE 命令就會派上用場。使用此 SQL 命令可以將條件應用于 SELECT 語句。
假設我們只想知道藍眼睛的人的名字。所需的查詢將是:
此查詢現(xiàn)在僅限于藍眼睛的人,對應的輸出是:
我們可以將多個條件與 AND 或 OR 運算符結(jié)合起來。
- AND 的作用與它在英語中的作用完全相同:它將另一個條件應用到語句中。
相應的輸出包含所有藍眼睛且小于 20 歲的人。
- OR用作多條件測試儀,這意味著將保留滿足任何條件的任何行。
在這種情況下,相應的輸出包含所有藍眼睛或綠眼睛的人。
04、ORDER BY
ORDER BY 命令用于按特定順序?qū)Y(jié)果進行排序,您需要指定列和順序,可以是 ASC 表示升序或 DESC 表示降序。
如果未定義 ASC 或 DESC,則排序順序默認為升序。
在這種情況下,我們的輸出將從老年人到年輕人排序。
您也可以按多列排序。
在第二種情況下,我們獲得了按 eye_colors 和 age 排序的表。順序?qū)哟谓Y(jié)構將遵循 ORDER BY 命令后每一列出現(xiàn)的順序。
05、聚合函數(shù)(Aggregate Functions)
聚合函數(shù)對一系列值執(zhí)行計算并返回單個值,聚合函數(shù)的一些例子是:
- COUNT() 返回總行數(shù)。通常與 DISTINCT 命令一起使用以計算唯一元素。
- SUM() 返回所有值的總和
- MAX() 返回最大值
- MIN() 返回最小值
- AVG() 返回平均值
假設我們想知道數(shù)據(jù)集中的人數(shù)。在這種情況下,我們只是計算所有人,而不使用任何 group by 命令。
現(xiàn)在假設我們想知道所有可能的眼睛顏色。在這種情況下,我們重復前面的查詢,只計算 eyes_color 列并使用 DISTINCT 命令。
相應的輸出將是以下一個。
06、GROUP BY
GROUP BY 將按相同的值對數(shù)據(jù)進行分組。它經(jīng)常與聚合函數(shù)一起使用來匯總特定列或列組的屬性。
現(xiàn)在讓我們想象一下,我們想知道每種不同眼睛顏色有多少人。我們可以重復前面的邏輯查詢,但將結(jié)果按 eyes_color 列分組。
正如我們可以檢查的那樣,相應的輸出包含我們所期望的。
07、UNION
UNION 是一個很棒的命令,因為它允許您將行附加到彼此。與附加匹配列的聯(lián)接不同,UNION 可以附加不相關的行,前提是它們具有相同的列數(shù)和名稱。
您可以將 UNION 視為組合兩個查詢結(jié)果的一種方式。聯(lián)合只會返回兩個查詢之間存在唯一行的結(jié)果。
08、AS
AS 命令用于在查詢過程中重命名特定的列或特定的表。它是存在于您正在運行的查詢中的昵稱。
- 重命名列
這就像選擇列并在命令 AS 后寫入所需的新名稱一樣簡單。
- 重命名表
在第二種情況下,命令 AS 用于在表聲明后立即為其分配別名。
您可以使用任何您喜歡的有效名稱,但我強烈建議使用字母表中的字母。在每個列名稱之前,別名都帶有前綴。您可以鍵入一個簡單易記的字母,而不是鍵入一個長表名。
09、CASE WHEN、ELSE 和 THEN
如果您以前使用過任何其他編程語言,這與 if-else 語句非常相似。
實際上,用簡單的英語來說,該命令聽起來有點像這樣:
- CASE WHEN——如果滿足條件。
- THEN——做這個。
- ELSE — 否則做其他事情。
讓我們看一個例子來鞏固這個想法。假設我們要創(chuàng)建一個新列,告訴我們這個人是青少年、年輕人還是成年人。我們可以使用 CASE WHEN 命令從頭開始輕松創(chuàng)建此分段。
如您所見,前面的查詢創(chuàng)建了三個不同的條件:
- 如果年齡小于 20 歲,則為 teen。
- 如果年齡在 20 到 30 之間,則為 youngster。
- 在任何其他情況下,它都是一個"adult"。
相應的輸出包含每個人及其相應的類型標簽。
10、JOIN
JOIN 命令是管理數(shù)據(jù)的關鍵命令。它允許我們從不同的源和表中獲取數(shù)據(jù)并將它們合并在一起。三種最常見的連接是:
- INNER JOIN— 語句僅返回那些具有匹配值的記錄或行,用于檢索出現(xiàn)在兩個表中的數(shù)據(jù)。
- LEFT JOIN — 按照左表的結(jié)構給出兩個表之間匹配行的輸出。如果左表中沒有記錄匹配,它會顯示那些具有空值的記錄。
- CROSS JOIN—返回每個表中行的所有組合。請注意,此連接不需要任何條件來連接兩個表。
讓我們想象一下,現(xiàn)在我們有一個包含每個人的性別的附加表。因此,使用左連接,我們可以將兩個表合并為一個由公共列連接的表,在本例中,按名稱連接。
相應的輸出包含合并到單個表中的所有信息。
希望您會發(fā)現(xiàn)今天的內(nèi)容對你理解 SQL 的基礎知識很有幫助,如果您發(fā)現(xiàn)有任何問題,請在留言區(qū)給我留言,我們進一步學習談論它。