SELECT 是 SQL 最核心、使用最頻繁的指令,用於從資料庫中查詢並取回資料。結果以「結果集」形式呈現,供應用程式逐列處理。
SELECT column_name, column_name FROM table_name;
SELECT * FROM table_name;
* 代表所有欄位,順序依表定義。+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘寶 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鳥教程 | https://www.runoob.com/ | 4689 | CN | | 4 | 微博 | https://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | +----+--------------+---------------------------+-------+---------+
SELECT name, country FROM Websites;
輸出結果:

SELECT * FROM Websites;
輸出結果:

SELECT [DISTINCT] select_list FROM table_list [WHERE condition] [GROUP BY group_list] [HAVING condition] [ORDER BY order_list] [LIMIT/OFFSET / FETCH FIRST];
各子句執行邏輯順序:FROM → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT。
資料庫驅動程式提供游標式 API 逐列讀取結果集:
ResultSet.next()、getString() 等。cursor.fetchone()、fetchall()、fetchmany()。$stmt->fetch()、fetchAll()。rows 陣列或串流模式。本教程專注 SQL 語法,程式語言整合請參考各語言的資料庫教學(ADO、PHP、Python、Java 等)。
| 技巧 | 語法範例 | 說明 |
|---|---|---|
| 欄位別名 | SELECT name AS site_name | 重新命名輸出欄位 |
| 運算式/函數 | SELECT UPPER(name), alexa * 10 | 即時計算衍生欄位 |
| 常數欄位 | SELECT 'Web' AS source, name | 固定值輔助識別來源 |
| 子查詢欄位 | SELECT name, (SELECT COUNT(*) FROM logs WHERE site_id=w.id) AS visits | 相關子查詢產生衍生欄位 |
| CASE 運算式 | SELECT name, CASE WHEN alexa<100 THEN 'Hot' ELSE 'Normal' END AS level | 條件邏輯產生分類欄位 |
SELECT *。