SQL 語法 (SQL Syntax)

讓我們先來聊聊組成 SQL 語法的元素有什麼。

資料表 (Database Tables)

資料庫中最重要的物件就是資料表 (Table),資料庫由一個或一個上的資料表所構成,每個資料表名稱在資料庫中都是唯一的,資料表中每一直行 (Column) 稱之為欄位,每個欄位都有其資料型態 (Data Type),由不同欄位所組成的橫列 (Row),稱之為記錄 (Record),我們舉一個叫做「customers」的資料表作為例子:
C_Id Name City Address Phone
1 張一 台北市 XX路100號 02-12345678
2 王二 新竹縣 YY路200號 03-12345678
此資料表共包含2筆記錄,5個欄位 (S_Id,Name,City,Address,Phone)
資料表名稱有區分大小寫(Case-Sensitive),但某些資料庫在Windows作業系統中是不分大小寫的,而為了方便維護最好統一你的命名方式。

SQL 敘述句 (Statements)

我們利用 SQL 敘述句來跟資料庫溝通、下達指令,SQL 語言是由命令 (Commands) 、子句 (Clauses) 、運算子 (Operators) 及 函數 (Functions) 所組成,通常一個 SQL 敘述句由一段命令句開始描述您要對資料庫要求的動作,接著可能會接著條件語句,最後以分號「;」結束:
SELECT * FROM customer;
上面這條 SQL 敘述句表示從 customer 資料表取出所有資料。
SQL 語句不區分大小寫(Case-Insensitive),如 select * from customer; 與上例是相同的結果。
有些資料庫並不強制一定要加上結尾分號。

什麼是命令? (Commands)

建立新的資料庫、資料表、欄位及、索引等,或建立查詢表、排序、過濾資料、查詢、修改、新增及刪除資料等動作。(即 CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE 等命令)

什麼是子句? (Clauses)

子句是用來設定及操作你的 SQL Query,如:
子句 說明
FROM 指定作用的資料表
WHERE 設定查詢條件
GROUP BY 設定分組條件
ORDER BY 設定輸出的排序

什麼是運算子? (Operators)

運算子用來幫助 SQL 語句處理數值、字串或進行邏輯運算及比較條件。

什麼是函數? (Functions)

SQL 語言內建許多函數可以直接在 SQL 語句裡面使用,像是取得某欄位加總後數值、取得某欄位內最大或最小值等等。

SQL 敘述句的書寫習慣

將所有的執行語句中的 SQL 關鍵字大寫是一個良好的 SQL 書寫習慣,這會幫助你更輕易的去檢視你的 SQL 語法。

此外,你可以將較長的 SQL 語句拆成多行書寫,這會讓你比較容易閱讀!
SELECT column_one, column_two  #第一行
FROM table_name  #第二行
WHERE table_id = 123;  #第三行