核心命令:ALTER TABLE,支持列操作、約束管理、重命名等。
-- 查看表結構 DESC 表名; -- 或 SHOW COLUMNS FROM 表名; -- 修改表名 ALTER TABLE t_book RENAME TO bbb;
| 操作 | MySQL 語法 | 說明 |
|---|---|---|
| 添加列 | ALTER TABLE 表名 ADD COLUMN 列名 類型 [約束]; | 支持 FIRST/AFTER col 指定位置 |
| 刪除列 | ALTER TABLE 表名 DROP COLUMN 列名; | 數據同步丟失,謹慎操作 |
| 修改列名 + 類型 | ALTER TABLE 表名 CHANGE 舊列名 新列名 新類型 [約束]; | MySQL 專有,需重新指定完整類型 |
| 僅修改列類型/約束 | ALTER TABLE 表名 MODIFY 列名 新類型 [約束]; | 保持列名不變 |
| 修改列名 | ALTER TABLE 表名 RENAME COLUMN 舊列名 TO 新列名; | MySQL 8.0+ 支持,更簡潔 |
-- MySQL (舊版) ALTER TABLE bbb CHANGE nnnnn hh int; -- MySQL 8.0+ / MariaDB / PostgreSQL / Oracle (標準語法) ALTER TABLE bbb RENAME COLUMN nnnnn TO hh; -- SQL Server EXEC sp_rename 't_student.name', 'nn', 'COLUMN';
UPDATE 表名 SET 列名 = 新值 [, 列名2 = 新值2 ...] WHERE 條件;
UPDATE pet SET sex='f' WHERE name='Whistler';DELETE FROM 表名 WHERE 條件;
DELETE FROM pet WHERE name='Whistler';DELETE FROM pet; 或 TRUNCATE TABLE pet; (更快、不記錄日誌、重置自增 ID)mysqldump -d db_name table_name > structure_backup.sqlpt-online-schema-change 或 gh-ost 避免鎖表阻塞SELECT 驗證影響行數ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4; 會同步轉換列字符集