SQL 語法 Syntax

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

資料表 (Database Tables)

資料庫中最重要的物件就是資料表 (table),資料庫由一個或一個上的資料表所構成,每個資料表名稱在資料庫中都是唯一的,資料表中每一直行 (column) 稱之為欄位,每個欄位都有其資料型態 (data type),由不同欄位所組成的橫列 (row),稱之為記錄 (record),我們舉一個叫做 "customers" 的資料表作為例子:

C_IdNameCityAddressPhone
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;