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; #第三行