判斷某數值是否介於特定範圍內,僅能用於 SQL 陳述式中。
expr [NOT] BETWEEN value1 AND value2
expr:指定要計算的欄位與運算式組合value1, value2:指定的數值範圍範例: 查詢年齡介於 25-30 歲的員工:
SELECT 姓名, 年齡 FROM 員工表 WHERE 年齡 BETWEEN 25 AND 30;
用於字串模式比對,篩選符合特定模式的記錄。
expression LIKE "pattern"
expression:用於 WHERE 子句的 SQL 運算式pattern:比對用的字串模式範例: 查詢姓「李」的員工:LIKE "李*"
| 模式 | 說明 | 可篩選範例 | 不可篩選範例 |
|---|---|---|---|
| "a*a" | 多字元 | "aa", "aBa", "aBBBa" | "aBC" |
| "*ab*" | 包含 ab | "abc", "AABB", "Xab" | "aZb", "bac" |
| "a"*a" | 含特殊字元 * | "a*a" | "aaa" |
| "a?a" | 單一字元 | "aaa", "a3a", "aBa" | "aBBBa" |
| "a#a" | 單一數字 | "a0a", "a1a", "a2a" | "aaa", "a10a" |
| "[a-z]" | 字元範圍 | "f", "p", "j" | "2", "&" |
| "[!a-z]" | 非指定字元範圍 | - | - |
| "[!0-9]" | 非數字 | "A", "a", "&", "~" | "0", "1", "9" |
| "a[!b-m]#" | 組合結構 | "An9", "az0", "a99" | "abc", "aj0" |
AVG(expr)COUNT(expr)SUM(expr)範例: 計算身高超過 165 公分員工的平均身高:
SELECT AVG(身高) AS 平均身高 FROM 員工表 WHERE 身高 > 165;
在一個 SQL 陳述式中包含另一個查詢,形成巢狀結構。
comparison [ANY|ALL|SOME] (sqlstatement) expression [NOT] IN (sqlstatement) [NOT] EXISTS (sqlstatement)
範例: 查詢單價高於任何有折扣≥0.25 訂單商品的產品:
SELECT * FROM 產品表 WHERE 單價 > ANY (SELECT 單價 FROM 訂單表 WHERE 折扣 >= 0.25);
CREATE TABLE table_name (
column1 datatype [CONSTRAINT constraint_name PRIMARY KEY],
column2 datatype,
...
)
範例: 建立含主鍵的員工表:
CREATE TABLE 員工表 (
姓名 TEXT,
部門 TEXT,
員工編號 INTEGER CONSTRAINT 員工索引 PRIMARY KEY
)
CREATE [UNIQUE] INDEX index_name ON table_name (column [ASC|DESC], ...)
[WITH {PRIMARY|DISALLOWNULL|IGNORENULL}]
功能類似索引,亦可建立資料表關聯。
CONSTRAINT name {PRIMARY KEY|UNIQUE|REFERENCES foreigntable[(foreignfield)]}CONSTRAINT name {PRIMARY KEY(col1,...)|UNIQUE(col1,...)|FOREIGN KEY(col1,...)|REFERENCES foreigntable(col1,...)}範例: 建立複合唯一索引:
CREATE TABLE 員工資料表 (
姓名 TEXT,
部門名稱 TEXT,
生日 DATETIME,
CONSTRAINT 員工限制 UNIQUE(姓名, 部門名稱, 生日)
)
DELETE [table.*] FROM tableexpression WHERE criteria
範例: 刪除姓名為「李名」的記錄:
DELETE * FROM 員工表 WHERE 姓名 = '李名';
SELECT field1, field2 INTO newtable [IN externaldb] FROM source
範例: 建立新進人員訓練名冊:
SELECT 姓名, 部門 INTO 訓練名冊 FROM 員工表 WHERE 職稱 = '新進人員';
UNION 範例:
TABLE 新客戶表 UNION ALL SELECT * FROM 顧客表 WHERE 訂單數量 > 1000;
ALTER TABLE table {ADD COLUMN column datatype | DROP COLUMN column}
範例: 新增/刪除「薪水」欄位:
ALTER TABLE 員工表 ADD COLUMN 薪水 CURRENCY; ALTER TABLE 員工表 DROP COLUMN 薪水;
DROP {TABLE table | INDEX index ON table}
INSERT INTO table (col1, col2) VALUES (val1, val2)INSERT INTO target SELECT ... FROM sourceUPDATE table SET column = new_value WHERE criteria
範例: 美國地區訂單數量增 1.1 倍、運費增 1.03 倍:
UPDATE 訂單表 SET 訂單數量 = 訂單數量 * 1.1, 運費 = 運費 * 1.03 WHERE 運達地點 = '美國';