新聞中心
SQL 是一種非常常見但功能強(qiáng)大的工具,它可以幫助從任何數(shù)據(jù)庫中提取、轉(zhuǎn)換和加載數(shù)據(jù)。

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


咨詢
建站咨詢
