表結構全生命周期管理:兩種建表方式(CREATE TABLE 定義列 / CREATE TABLE ... SELECT 複製)、五種查看元數據命令(SHOW/DESCRIBE)、ALTER TABLE 修改列/重命名表、DROP TABLE 安全刪除,含語法、示例與生產避坑指南。
CREATE TABLE tbl_name (
col_name type [NOT NULL | NULL] [DEFAULT default_val] [AUTO_INCREMENT] [PRIMARY KEY],
...
) [ENGINE=engine_name];
示例:
CREATE TABLE test01_02 (
id VARCHAR(50) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name NVARCHAR(40) NULL DEFAULT '002',
age INT(5) NULL DEFAULT 444
);
CREATE TABLE tb_new_name SELECT * FROM tb_old_name;
-- 僅複製結構:WHERE 1=0
CREATE TABLE tb_new_name SELECT * FROM tb_old_name WHERE 1=0;
示例:CREATE TABLE test01_03 SELECT * FROM test01_01;
| 命令 | 用途 | 示例 |
|---|---|---|
SHOW TABLES [FROM db] [LIKE pattern] | 列出庫下所有表 | SHOW TABLES FROM test01 LIKE '%a%'; |
SHOW COLUMNS FROM tbl [FROM db] [LIKE pattern] | 查看列屬性(類型、鍵、默認值等) | SHOW COLUMNS FROM test01_01 FROM test01 LIKE '%n%'; |
SHOW INDEX FROM tbl [FROM db] | 查看索引詳情 | SHOW INDEX FROM test01_01 FROM test01; |
SHOW TABLE STATUS [FROM db] [LIKE pattern] | 表狀態:行數、大小、引擎、自增值、碎片率 | SHOW TABLE STATUS FROM test01 LIKE '%t%'; |
DESCRIBE / DESC tbl [col_pattern] | 簡略列信息(等同 SHOW COLUMNS) | DESC test01_01; DESC test01_01 '%n%'; |
ALTER TABLE tbl_name ADD col_name type;
-- 例:增加 weight 整數列
ALTER TABLE test01_01 ADD weight INT;
ALTER TABLE tbl_name MODIFY col_name new_type;
-- 例:weight 改為 VARCHAR(50)
ALTER TABLE test01_01 MODIFY weight VARCHAR(50);
ALTER TABLE tbl_name DROP col_name;
ALTER TABLE test01_01 DROP weight;
ALTER TABLE tbl_name CHANGE old_col new_col type;
-- 例:weight 改名 wei,類型 INT
ALTER TABLE test01_01 CHANGE weight wei INT;
ALTER TABLE old_name RENAME new_name;
ALTER TABLE test01_01 RENAME test01_04;
DROP TABLE [IF EXISTS] tbl_name [, tbl_name2 ...];
-- 例:刪除 test01_04
DROP TABLE IF EXISTS test01_04;
-- 批量刪除
DROP TABLE IF EXISTS t1, t2, t3;
IF EXISTS 避免不存在報錯pt-online-schema-change 或 MySQL 8.0+ INSTANT DDL 避免鎖表ALTER ... MODIFY 後驗證SHOW TABLE STATUS 監控 Data_free 碎片率,超 20% 考慮 OPTIMIZE TABLE