SQL SELECT 語句

在本教程中,你將學習如何使用 SQL 從資料庫表中選擇記錄。

從表中選擇資料

在上一章中,我們學習瞭如何在資料庫表中插入資料。現在是時候使用 SQL 查詢從現有表中選擇資料了。

SELECT 語句用於從一個或多個表中選擇或檢索資料。你可以使用此語句一次性從表中檢索所有行,以及僅檢索滿足特定條件或條件組合的那些行。

語法

從表中選擇資料的基本語法可以通過以下方式給出:

SELECT column1_name , column2_name , columnN_name FROM table_name ; 

這裡,column1_namecolumn2_name,…是要獲取其值的資料庫表的列或欄位的名稱。但是,如果要獲取表中可用的所有列的值,則可以使用以下語法:

SELECT * FROM table_name ; 

讓我們把這些陳述付諸實踐。假設我們的資料庫中有一個名為 employees 的表,其中包含以下記錄:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

從表中選擇全部

以下語句將返回 employees 表中的所有行。

SELECT * FROM employees;

執行後,輸出將如下所示:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

如你所見,它返回 employees 表中的所有行和列。

提示: 星號(*)是一個萬用字元,表示一切。例如, SELECT 上面示例的語句中的星號字元是 employees 表的所有列的簡寫替代。

從表中選擇列

如果你不需要所有資料,則可以選擇特定列,如下所示:

SELECT emp_id, emp_name, hire_date, salary
FROM employees;

執行上面的語句後,你將獲得如下輸出:

+--------+--------------+------------+--------+
| emp_id | emp_name     | hire_date  | salary |
+--------+--------------+------------+--------+
|      1 | Ethan Hunt   | 1995-10-30 |   5000 |
|      2 | Tony Montana | 1990-07-15 |   6500 |
|      3 | Sarah Connor | 2011-04-13 |   5600 |
|      4 | Rick Deckard | 2005-10-18 |   7200 |
|      5 | Martin Blank | 1996-05-24 |   8000 |
+--------+--------------+------------+--------+

正如你所看到的,結果集中沒有 dept_id 列。在下一章中,我們將學習如何根據條件從表中選擇記錄。