SELECT 陳述式用於從資料表擷取資料,結果以結果集呈現。
SELECT 欄位1, 欄位2, ... FROM 資料表名稱; SELECT * FROM 資料表名稱; -- 選取所有欄位
注意:SQL 不分大小寫,`SELECT` 等同 `select`。
| Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Adams | John | Oxford Street | London |
| 2 | Bush | George | Fifth Avenue | New York |
| 3 | Carter | Thomas | Changan Street | Beijing |
SELECT LastName, FirstName FROM Persons;
結果:
| LastName | FirstName |
|---|---|
| Adams | John |
| Bush | George |
| Carter | Thomas |
SELECT * FROM Persons;
結果同原表。* 為所有欄位捷徑,生產環境建議明確列出欄位。
應用程式透過資料存取介面(ADO.NET、JDBC、ODBC)在結果集中移動:
當欄位含重複值,需只取唯一值時使用。
SELECT DISTINCT 欄位名稱 FROM 資料表名稱;
| Company | OrderNumber |
|---|---|
| IBM | 3532 |
| W3School | 2356 |
| Apple | 4698 |
| W3School | 6953 |
SELECT Company FROM Orders;
結果:IBM、W3School、Apple、W3School(重複)。
SELECT DISTINCT Company FROM Orders;
結果:IBM、W3School、Apple(各出現一次)。
`DISTINCT` 會觸發排序或雜湊去重,大資料量時成本高。若欄位有唯一索引/主鍵,優化器可省略去重。僅在必要時使用。