本文為 MySQL 基礎知識速查手冊 的精簡版,僅保留最高頻使用的建表、資料型別、DDL 修改、約束語法,適合面試複習與日常速查。
CREATE TABLE test (
test_id INT,
test_price DECIMAL,
test_name VARCHAR(255) DEFAULT 'Xxx',
test_desc TEXT,
test_img BLOB,
test_date DATETIME
);
TINYINT, SMALLINT, MEDIUMINT, INT, BIGINTFLOAT, DOUBLE, DECIMALDATE, TIME, DATETIME, TIMESTAMP, YEARCHAR, VARCHAR, BINARY, VARBINARYTEXT/BLOB 系列ENUM, SET-- 複製表
CREATE TABLE new_tbl AS SELECT * FROM old_tbl;
-- 新增欄位
ALTER TABLE t ADD col INT;
ALTER TABLE t ADD a VARCHAR(25), b VARCHAR(25);
-- 修改型別
ALTER TABLE t MODIFY col VARCHAR(255);
-- 刪除欄位
ALTER TABLE t DROP COLUMN col;
-- 重命名表/欄位
ALTER TABLE t RENAME TO new_t;
ALTER TABLE t CHANGE old_col new_col INT;
-- 刪除表
DROP TABLE t;
| 約束 | 關鍵字 | 範例 |
|---|---|---|
| 非空 | NOT NULL | col INT NOT NULL |
| 唯一 | UNIQUE | col VARCHAR(30) UNIQUE 或 CONSTRAINT uk UNIQUE(col) |
| 主鍵 | PRIMARY KEY | id INT PRIMARY KEY / CONSTRAINT pk PRIMARY KEY(id) |
| 外鍵 | FOREIGN KEY | col INT REFERENCES parent(pk) |
| 檢查 | CHECK | CHECK (age>0 AND age<120) (8.0.16+ 生效) |
-- 增加/移除 NOT NULL
ALTER TABLE t MODIFY col VARCHAR(30) NOT NULL;
ALTER TABLE t MODIFY col VARCHAR(30) NULL;
-- 新增 UNIQUE
ALTER TABLE t ADD UNIQUE(col1, col2);
-- 刪除主鍵
ALTER TABLE t DROP PRIMARY KEY;
完整版請參考《MySQL 基礎知識速查手冊》。