掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
SQL 是一種非常常見但功能強大的工具,它可以幫助從任何數(shù)據(jù)庫中提取、轉換和加載數(shù)據(jù)。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供烏翠網(wǎng)站建設、烏翠做網(wǎng)站、烏翠網(wǎng)站設計、烏翠網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、烏翠企業(yè)網(wǎng)站模板建站服務,10年烏翠做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
數(shù)據(jù)查詢的本質在于SQL。?
隨著公司和組織發(fā)現(xiàn)自己處理的數(shù)據(jù)量迅速增加,開發(fā)人員越來越需要有效地使用數(shù)據(jù)庫來處理這些數(shù)據(jù)。
所以想要暗戀數(shù)據(jù)領域,SQL是必須的!
要掌握這門語言,您需要知道如何使用一些命令,其中大部分命令都基于一些基本命令。
讓我們一起探索最重要和最基本的 SQL 命令!
*對于整篇文章,我使用的是一個包含 5 個不同年齡和眼睛顏色的不同人的自制表格。
SQL 中的 SELECT 命令是最簡單但也是最重要的命令之一,每個查詢都以 SELECT 開頭,這就是您從數(shù)據(jù)庫中獲取數(shù)據(jù)的方式。
我們總是需要指出從哪里獲取數(shù)據(jù),而這正是 FROM 命令發(fā)揮作用的地方,它指示我們查詢的表源是什么。
可以在 SQL 中執(zhí)行的最簡單的命令如下:
SELECT
*
FROM table
這相當于將“Hello World”打印到 java 或 python ;)
現(xiàn)在您可能想知道……那個星號是什么?
如果你是這樣,恭喜!這是一個重要的。它表示您希望從定義的表中選擇所有列。
星號是找出表中數(shù)據(jù)的好方法,但并不總是推薦用于生產代碼。
這就是為什么最好像下面這樣指定要檢索的每一列。
SELECT
name,
age,
eyes_color
FROM bbdd
結果表將是:
DISTINCT 用于查看列中的唯一值,該命令使用如下:
SELECT DISTINCT
column_1
FROM table
例如,假設我們想看到所有可能的眼睛顏色。在這種情況下,我們將從表中包含的 eyes_colors 列中選擇所有不同的值。
SELECT DISTINCT
eyes_colors
FROM bbdd
結果輸出是:
每當您想根據(jù)特定條件過濾結果時,WHERE 命令就會派上用場。使用此 SQL 命令可以將條件應用于 SELECT 語句。
SELECT
*
FROM table
WHERE column_1 = "Given Condition"
假設我們只想知道藍眼睛的人的名字。所需的查詢將是:
SELECT DISTINCT
*
FROM bbdd
WHERE eyes_color = "Blue"
此查詢現(xiàn)在僅限于藍眼睛的人,對應的輸出是:
我們可以將多個條件與 AND 或 OR 運算符結合起來。
SELECT
*
FROM bbdd
WHERE eyes_color = "Blue"
AND age < 20
相應的輸出包含所有藍眼睛且小于 20 歲的人。
SELECT
*
FROM bbdd
WHERE eyes_color = "Blue"
OR eyes_color = "Green"
在這種情況下,相應的輸出包含所有藍眼睛或綠眼睛的人。
ORDER BY 命令用于按特定順序對結果進行排序,您需要指定列和順序,可以是 ASC 表示升序或 DESC 表示降序。
SELECT
*
FROM table
ORDER BY column1 ASC/DESC
如果未定義 ASC 或 DESC,則排序順序默認為升序。
SELECT
*
FROM bbdd
ORDER BY age DESC
在這種情況下,我們的輸出將從老年人到年輕人排序。
您也可以按多列排序。
SELECT
*
FROM bbdd
ORDER BY eyes_color, age DESC
在第二種情況下,我們獲得了按 eye_colors 和 age 排序的表。順序層次結構將遵循 ORDER BY 命令后每一列出現(xiàn)的順序。
聚合函數(shù)對一系列值執(zhí)行計算并返回單個值,聚合函數(shù)的一些例子是:
假設我們想知道數(shù)據(jù)集中的人數(shù)。在這種情況下,我們只是計算所有人,而不使用任何 group by 命令。
SELECT
COUNT(*)
FROM bbdd
現(xiàn)在假設我們想知道所有可能的眼睛顏色。在這種情況下,我們重復前面的查詢,只計算 eyes_color 列并使用 DISTINCT 命令。
SELECT
COUNT(DISTINCT eyes_color)
FROM bbdd
相應的輸出將是以下一個。
GROUP BY 將按相同的值對數(shù)據(jù)進行分組。它經(jīng)常與聚合函數(shù)一起使用來匯總特定列或列組的屬性。
現(xiàn)在讓我們想象一下,我們想知道每種不同眼睛顏色有多少人。我們可以重復前面的邏輯查詢,但將結果按 eyes_color 列分組。
SELECT
eyes_color,
COUNT(*)
FROM bbdd
GROUP BY eyes_color
正如我們可以檢查的那樣,相應的輸出包含我們所期望的。
UNION 是一個很棒的命令,因為它允許您將行附加到彼此。與附加匹配列的聯(lián)接不同,UNION 可以附加不相關的行,前提是它們具有相同的列數(shù)和名稱。
您可以將 UNION 視為組合兩個查詢結果的一種方式。聯(lián)合只會返回兩個查詢之間存在唯一行的結果。
SELECT
*
FROM bbdd
WHERE eyes_color = "Blue"
UNION
SELECT
*
FROM bbdd
WHERE eyes_color = "Brown"
UNION
SELECT
*
FROM bbdd
WHERE eyes_color = "Green"
08、AS
AS 命令用于在查詢過程中重命名特定的列或特定的表。它是存在于您正在運行的查詢中的昵稱。
這就像選擇列并在命令 AS 后寫入所需的新名稱一樣簡單。
SELECT
column_1 AS new_name
FROM bbdd
在第二種情況下,命令 AS 用于在表聲明后立即為其分配別名。
SELECT
A.age
FROM bbdd as A
您可以使用任何您喜歡的有效名稱,但我強烈建議使用字母表中的字母。在每個列名稱之前,別名都帶有前綴。您可以鍵入一個簡單易記的字母,而不是鍵入一個長表名。
如果您以前使用過任何其他編程語言,這與 if-else 語句非常相似。
實際上,用簡單的英語來說,該命令聽起來有點像這樣:
讓我們看一個例子來鞏固這個想法。假設我們要創(chuàng)建一個新列,告訴我們這個人是青少年、年輕人還是成年人。我們可以使用 CASE WHEN 命令從頭開始輕松創(chuàng)建此分段。
SELECT
*,
CASE WHEN age < 20 THEN "teen"
WHEN age >= 20 AND age < 30 THEN "youngster"
ELSE THEN "adult"
END AS type
FROM bbdd
如您所見,前面的查詢創(chuàng)建了三個不同的條件:
相應的輸出包含每個人及其相應的類型標簽。
JOIN 命令是管理數(shù)據(jù)的關鍵命令。它允許我們從不同的源和表中獲取數(shù)據(jù)并將它們合并在一起。三種最常見的連接是:
讓我們想象一下,現(xiàn)在我們有一個包含每個人的性別的附加表。因此,使用左連接,我們可以將兩個表合并為一個由公共列連接的表,在本例中,按名稱連接。
SELECT
T1.name,
T1.age,
T1.eyes_color,
T2.gender
FROM bbdd AS T1
LEFT JOIN bbdd_gender AS T2
ON T1.name = T2.name
相應的輸出包含合并到單個表中的所有信息。
希望您會發(fā)現(xiàn)今天的內容對你理解 SQL 的基礎知識很有幫助,如果您發(fā)現(xiàn)有任何問題,請在留言區(qū)給我留言,我們進一步學習談論它。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流