CREATE TABLE 表名 (
屬性名 資料類型 [完整性約束],
屬性名 資料類型 [完整性約束],
...
);
先 USE 資料庫名 選擇庫。表名不可用保留字,不區分大小寫。
| 約束 | 作用 |
|---|---|
| PRIMARY KEY | 主鍵,唯一標識 |
| FOREIGN KEY | 外鍵,關聯父表主鍵 |
| NOT NULL | 非空 |
| UNIQUE | 唯一值 |
| AUTO_INCREMENT | 自增(通常用於主鍵) |
| DEFAULT | 預設值 |
CREATE TABLE example (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
sex BOOLEAN DEFAULT TRUE
);
DESCRIBE 表名; -- 簡寫 DESC 表名
-- 輸出:Field, Type, Null, Key, Default, Extra
SHOW CREATE TABLE 表名;
SHOW CREATE TABLE 表名 \G; -- 垂直顯示,適合寬表
ALTER TABLE 舊表名 RENAME [TO] 新表名;
ALTER TABLE 表名 MODIFY 屬性名 新資料類型;
ALTER TABLE 表名 CHANGE 舊屬性名 新屬性名 新資料類型;
-- 若不想改類型,仍需寫上原類型
ALTER TABLE 表名 ADD 屬性名 資料類型 [約束] [FIRST | AFTER 現有字段名];
-- FIRST: 放第一列;AFTER: 放指定列後;預設放最後
ALTER TABLE 表名 DROP 屬性名;
ALTER TABLE 子表名 DROP FOREIGN KEY 外鍵別名;
-- 別名是建表時 CONSTRAINT 後指定的名稱
DROP TABLE 表名;
-- ⚠️ 資料同步刪除,操作前務必備份
直接 DROP TABLE 父表 會報錯:ERROR 1217 (23000): Cannot delete or update a parent row
正確姿勢:
ALTER TABLE child DROP FOREIGN KEY fk_name;DROP TABLE parent;SHOW CREATE TABLE child \G;
-- 輸出中不再出現 CONSTRAINT ... FOREIGN KEY ...
pt-online-schema-changeCONSTRAINT fk_xxx FOREIGN KEY...),便於維護