Home >> Blog >> SQL:選擇語句

SQL:選擇語句

本 SQL 教程通過語法、示例和練習來解釋如何使用 SQL SELECT 語句。

描述

SQL SELECT 語句用於從 SQL 數據庫中的一個或多個表中檢索記錄。檢索到的記錄稱為結果集。

句法

SQL 中 SELECT 語句的語法是:

SELECT expressions
FROM tables
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]];

參數或參數

表達式

您希望檢索的列或計算。如果您希望選擇所有列,請使用 *。

您希望從中檢索記錄的表。FROM 子句中必須至少列出一個表。

WHERE 條件

可選的。要選擇記錄必須滿足的條件。如果不提供任何條件,則將選擇所有記錄。

ORDER BY 表達式

可選的。用於對結果集中的記錄進行排序的表達式。如果提供了多個表達式,則值應以逗號分隔。

ASC

可選的。ASC 按表達式升序對結果集進行排序。這是默認行為,如果沒有修飾符是提供者。

DESC

可選的。DESC 按表達式降序對結果集進行排序。

DDL/DML 示例

示例 - 從表中選擇所有字段

讓我們看一個示例,該示例顯示如何使用 SQL SELECT 語句從表中選擇所有字段。

在此示例中,我們有一個名為customers的表,其中包含以下數據:

sql-select

現在讓我們通過從客戶表中選擇所有列來演示 SELECT 語句的工作原理。輸入以下 SELECT 語句:

SELECT *
FROM customers
WHERE favorite_website = 'techonthenet.com'
ORDER BY last_name ASC;

將選擇 2 條記錄。這些是您應該看到的結果:

sql-select

在此示例中,我們使用 * 表示我們希望查看客戶表中最喜歡的網站為“techonthenet.com”的所有字段。結果集按last_name升序排序。

示例 - 從表中選擇單個字段

您還可以使用 SQL SELECT 語句從表中選擇單個字段,而不是從表中選擇所有字段。

sql-select

現在讓我們演示如何使用 SELECT 語句從表中選擇單個列。輸入以下 SELECT 語句:

SELECT supplier_name, city
FROM suppliers
WHERE supplier_id > 500
ORDER BY supplier_name ASC, city DESC;

應選擇 4 條記錄。這些是您應該看到的結果:

sql-select

此示例將只返回supplier_id值大於500 的供應商表中的supplier_name 和city 字段。結果按supplier_name升序排序,然後按city降序排序。

示例 - 從多個表中選擇單個字段

您還可以使用 SQL SELECT 語句從多個表中檢索字段。

在此示例中,我們有一個名為orders的表,其中包含以下數據:

sql-select

還有一個名為customers的表,其中包含以下數據:

sql-select

現在讓我們從訂單和客戶表中選擇列。輸入以下 SELECT 語句:

SELECT orders.order_id, customers.last_name
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id
WHERE orders.order_id <> 1
ORDER BY orders.order_id;

將選擇 3 條記錄。這些是您應該看到的結果:

sql-select

這個 SELECT 示例連接了兩個表,為我們提供了一個結果集,該結果集顯示了orders表中的order_id和customers表中的last_name。每次我們在 SELECT 語句中使用列時,我們都會在列前加上表名(例如,orders . order_id),以防列屬於哪個表存在任何歧義。

如果要從orders表中選擇所有字段,然後從 customers 表中選擇last_name字段,請輸入以下 SELECT 語句:

SELECT orders.*, customers.last_name
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id
WHERE orders.order_id <> 1
ORDER BY orders.order_id;

將選擇 3 條記錄。這些是您應該看到的結果:

sql-select

在此示例中,我們使用orders.*表示我們要從orders表中選擇所有字段,然後我們從customers表中選擇last_name字段。

練習練習

如果您想使用 SQL SELECT 語句測試您的技能,請嘗試我們的一些練習。

這些練習允許您使用 SELECT 語句來嘗試您的技能。您將收到需要解決的問題。每次練習後,我們都會提供解決方案,以便您檢查答案。試試看!