SELECT:查詢INSERT:新增UPDATE:修改DELETE:刪除CREATE DATABASE/TABLE/INDEXALTER DATABASE/TABLEDROP TABLE/INDEXSELECT col1, col2 FROM table_name;
SELECT * FROM table_name;
SELECT DISTINCT col FROM table;
SELECT * FROM table WHERE col = 'value';
SELECT * FROM table WHERE col > 100;
SELECT * FROM table WHERE col BETWEEN 10 AND 20;
SELECT * FROM table WHERE col LIKE 'prefix%';
運算子:=, <>(!=), >, <, >=, <=, BETWEEN, LIKE, IN
SELECT * FROM t WHERE a=1 AND b=2;
SELECT * FROM t WHERE a=1 OR b=2;
SELECT * FROM t WHERE (a=1 OR a=2) AND b=3;
SELECT * FROM t ORDER BY col ASC|DESC;
SELECT * FROM t ORDER BY col1 DESC, col2 ASC;
INSERT INTO t VALUES (v1, v2);
INSERT INTO t (col1, col2) VALUES (v1, v2);
UPDATE t SET col='new' WHERE id=1;
UPDATE t SET col1='a', col2='b' WHERE id=1;
DELETE FROM t WHERE id=1;
DELETE FROM t; -- 刪除所有資料,保留結構
-- SQL Server
SELECT TOP 10 * FROM t;
SELECT TOP 50 PERCENT * FROM t;
-- MySQL / PostgreSQL
SELECT * FROM t LIMIT 10;
-- Oracle
SELECT * FROM t WHERE ROWNUM <= 10;
| 萬用字元 | 說明 |
|---|---|
| % | 替代零個或多個字元 |
| _ | 替代單一字元 |
| [charlist] | 字元清單中任一字元 |
| [^charlist] / [!charlist] | 非字元清單中任一字元 |
-- 內連接
SELECT * FROM t1 INNER JOIN t2 ON t1.id = t2.t1_id;
-- 左連接
SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.t1_id;
-- 右連接
SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.t1_id;
SELECT col FROM t1 UNION SELECT col FROM t2; -- 去重
SELECT col FROM t1 UNION ALL SELECT col FROM t2; -- 保留重複
CREATE DATABASE db_name;
CREATE TABLE t (
id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
age INT CHECK (age > 0),
created_at DATE DEFAULT CURRENT_DATE
);
NOT NULL:非空UNIQUE:唯一PRIMARY KEY:主鍵(唯一+非空)FOREIGN KEY:外鍵CHECK:條件檢查DEFAULT:預設值AUTO_INCREMENT:自增(MySQL)SELECT * INTO backup_t FROM t;
SELECT col1, col2 INTO backup_t FROM t WHERE city='Taipei';
SELECT t1.col, t2.col INTO backup_t FROM t1 JOIN t2 ON ...;
BETWEEN 邊界包含性處理不同,需實測確認。