[資料庫名.] [擁有者名.] 物件名
-- 前兩者可省略:預設資料庫=目前資料庫,預設擁有者=dbo
SELECT 欄位名 AS 別名 FROM 表名 AS 表別名
-- 一旦指定表別名,同一陳述式內所有對該表的引用必須使用別名
SELECT [ALL | DISTINCT] [TOP N [PERCENT]] 選取清單
[INTO 新資料表名]
FROM {資料表 | 檢視表} [, ...]
[WHERE 搜尋條件]
[GROUP BY 分組清單]
[HAVING 分組搜尋條件]
[ORDER BY 排序清單 [ASC | DESC]]
WHERE vs HAVING 差異:WHERE 在分組前過濾資料列;HAVING 在分組後過濾群組。
SELECT [ALL | DISTINCT] [TOP N [PERCENT]] 選取清單
ALL:預設,保留重複列。DISTINCT:移除完全重複的列。TOP N [PERCENT]:限制輸出前 N 列或前 N%。N 範圍 0~4,294,967,295。加 PERCENT 時 N 為 0~100。選取清單:欄位名、運算式、函數、`*`、常數等。USE Northwind;
GO
-- 1. 計算衍生欄位、指定別名、結果存入新表
SELECT ProductID, OrderID, UnitPrice * Quantity AS TotalAmount
INTO OrderSummary
FROM [Order Details] -- 含保留字 Order 需用 [] 括起
WHERE UnitPrice * Quantity > 10000;
-- 注意:WHERE 不能用別名 TotalAmount,因別名屬結果集,WHERE 執行於 SELECT 之前
SELECT 是 SQL 查詢的核心。熟記完整子句順序、別名作用域、TOP/DISTINCT/INTO 用法、保留字跳脫、執行順序限制,能寫出正確、高效、可維護的查詢語句。