摘要:在本教學中,您將學習如何使用 SQL SELECT
語句從單一表格查詢資料。
SQL SELECT 語句簡介
SQL SELECT
語句從一個或多個表格中選取資料。以下顯示從單一表格選取資料的 SELECT
語句基本語法。
SELECT
select_list
FROM
table_name;
Code language: SQL (Structured Query Language) (sql)
在此語法中
- 首先,在
SELECT
子句中指定表格中以逗號分隔的欄位列表。 - 然後,在
FROM
子句中指定表格名稱。
當評估 SELECT
語句時,資料庫系統會先評估 FROM
子句,然後再評估 SELECT
子句。就像是從一個表格中,選擇這些欄位的資料。
分號 (;) 不是查詢的一部分。資料庫伺服器使用它來分隔兩個 SQL 語句。
例如,如果您執行兩個 SQL SELECT
語句,您需要使用分號 (;
) 來分隔它們。請查看 SQL 語法 以獲取更多資訊。
如果您想查詢表格中所有欄位的資料,您可以使用星號 (*) 運算子,而無需指定所有欄位名稱。
SELECT * FROM table_name;
SQL 不區分大小寫。因此,SELECT
和 select
關鍵字具有相同的含義。
按照慣例,我們將使用大寫字母表示 SQL 關鍵字,例如 SELECT
和 FROM
,並使用小寫字母表示識別符,例如表格和欄位名稱。這種慣例使 SQL 語句更易讀。
SQL SELECT 語句範例
我們將使用 範例資料庫 中的 employees
表格進行示範。

1) SQL SELECT – 從所有欄位選取資料的範例
以下範例使用 SQL SELECT
語句從 employees
表格中取得所有列和欄位的資料。
SELECT * FROM employees;
Code language: SQL (Structured Query Language) (sql)
以下顯示資料庫伺服器傳回的結果集。它就像一個包含帶有標題的列和欄的試算表。
+-------------+-------------+-------------+-----------------------------------+--------------+------------+--------+----------+------------+---------------+
| employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | manager_id | department_id |
+-------------+-------------+-------------+-----------------------------------+--------------+------------+--------+----------+------------+---------------+
| 100 | Steven | King | [email protected] | 515.123.4567 | 1987-06-17 | 4 | 24000.00 | NULL | 9 |
| 101 | Neena | Kochhar | [email protected] | 515.123.4568 | 1989-09-21 | 5 | 17000.00 | 100 | 9 |
| 102 | Lex | De Haan | lex.de [email protected] | 515.123.4569 | 1993-01-13 | 5 | 17000.00 | 100 | 9 |
| 103 | Alexander | Hunold | [email protected] | 590.423.4567 | 1990-01-03 | 9 | 9000.00 | 102 | 6 |
| 104 | Bruce | Ernst | [email protected] | 590.423.4568 | 1991-05-21 | 9 | 6000.00 | 103 | 6 |
| 105 | David | Austin | [email protected] | 590.423.4569 | 1997-06-25 | 9 | 4800.00 | 103 | 6 |
| 106 | Valli | Pataballa | [email protected] | 590.423.4560 | 1998-02-05 | 9 | 4800.00 | 103 | 6 |
| 107 | Diana | Lorentz | [email protected] | 590.423.5567 | 1999-02-07 | 9 | 4200.00 | 103 | 6 |
| 108 | Nancy | Greenberg | [email protected] | 515.124.4569 | 1994-08-17 | 7 | 12000.00 | 101 | 10 |
...
Code language: plaintext (plaintext)
SELECT *
被讀作 select star。select star 僅適用於臨時查詢。
對於應用程式開發,您應避免使用 select star,原因如下。
select * 會從表格的所有欄位傳回資料。通常,應用程式不需要來自所有欄位的資料,只需要一個或幾個欄位的資料。
如果您使用 select *,資料庫需要更多時間從磁碟讀取資料並將其傳輸到應用程式。如果表格包含許多具有大量資料的欄位,通常會導致效能不佳。
2) SQL SELECT – 從特定欄位選取資料
要從特定欄位選取資料,您可以在 SELECT
語句的 SELECT
子句後指定欄位列表。
例如,以下選取 employees
表格中所有列的員工 ID、名字、姓氏和雇用日期資料。
SELECT
employee_id,
first_name,
last_name,
hire_date
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
現在,結果集僅包含 SELECT
子句中指定的四個欄位。
+-------------+-------------+-------------+------------+
| employee_id | first_name | last_name | hire_date |
+-------------+-------------+-------------+------------+
| 100 | Steven | King | 1987-06-17 |
| 101 | Neena | Kochhar | 1989-09-21 |
| 102 | Lex | De Haan | 1993-01-13 |
| 103 | Alexander | Hunold | 1990-01-03 |
| 104 | Bruce | Ernst | 1991-05-21 |
| 105 | David | Austin | 1997-06-25 |
| 106 | Valli | Pataballa | 1998-02-05 |
| 107 | Diana | Lorentz | 1999-02-07 |
| 108 | Nancy | Greenberg | 1994-08-17 |
| 109 | Daniel | Faviet | 1994-08-16 |
| 110 | John | Chen | 1997-09-28 |
...
Code language: plaintext (plaintext)
3) SQL SELECT – 執行簡單計算
以下範例使用 SELECT
語句來取得名字、姓氏、薪資和新薪資。
SELECT
first_name,
last_name,
salary,
salary * 1.05
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
表達式 salary * 1.05
將每位員工的薪資增加 5%
。預設情況下,SQL 使用該表達式作為欄位標題。
+-------------+-------------+----------+---------------+
| first_name | last_name | salary | salary * 1.05 |
+-------------+-------------+----------+---------------+
| Steven | King | 24000.00 | 25200.0000 |
| Neena | Kochhar | 17000.00 | 17850.0000 |
| Lex | De Haan | 17000.00 | 17850.0000 |
| Alexander | Hunold | 9000.00 | 9450.0000 |
| Bruce | Ernst | 6000.00 | 6300.0000 |
| David | Austin | 4800.00 | 5040.0000 |
| Valli | Pataballa | 4800.00 | 5040.0000 |
| Diana | Lorentz | 4200.00 | 4410.0000 |
| Nancy | Greenberg | 12000.00 | 12600.0000 |
...
Code language: plaintext (plaintext)
要為表達式或欄位指定別名,請指定 AS
關鍵字,後跟欄位別名,如下所示。
expression AS column_alias
Code language: SQL (Structured Query Language) (sql)
例如,以下 SELECT
語句使用 new_salary
作為 salary * 1.05
表達式的欄位別名。
SELECT
first_name,
last_name,
salary,
salary * 1.05 AS new_salary
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
輸出
+-------------+-------------+----------+------------+
| first_name | last_name | salary | new_salary |
+-------------+-------------+----------+------------+
| Steven | King | 24000.00 | 25200.0000 |
| Neena | Kochhar | 17000.00 | 17850.0000 |
| Lex | De Haan | 17000.00 | 17850.0000 |
| Alexander | Hunold | 9000.00 | 9450.0000 |
| Bruce | Ernst | 6000.00 | 6300.0000 |
| David | Austin | 4800.00 | 5040.0000 |
| Valli | Pataballa | 4800.00 | 5040.0000 |
| Diana | Lorentz | 4200.00 | 4410.0000 |
| Nancy | Greenberg | 12000.00 | 12600.0000 |
摘要
- 使用 SQL
SELECT
語句從表格中選取資料。 - 要從表格中選取資料,請在
FROM
子句中指定表格名稱,並在SELECT
子句中指定欄位列表。 SELECT *
是SELECT
表格中所有欄位的速記方式。