萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 數據表 DDL 全解析:創建、查看結構、修改結構、刪除表

表結構全生命周期管理:兩種建表方式(CREATE TABLE 定義列 / CREATE TABLE ... SELECT 複製)、五種查看元數據命令(SHOW/DESCRIBE)、ALTER TABLE 修改列/重命名表、DROP TABLE 安全刪除,含語法、示例與生產避坑指南。

一、創建表

方式 1:顯式定義列(標準)


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
);

方式 2:基於查詢結果建表並複製數據


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)

1. 增加列


ALTER TABLE tbl_name ADD col_name type;
-- 例:增加 weight 整數列
ALTER TABLE test01_01 ADD weight INT;

2. 修改列定義


ALTER TABLE tbl_name MODIFY col_name new_type;
-- 例:weight 改為 VARCHAR(50)
ALTER TABLE test01_01 MODIFY weight VARCHAR(50);

3. 刪除列


ALTER TABLE tbl_name DROP col_name;
ALTER TABLE test01_01 DROP weight;

4. 重命名列


ALTER TABLE tbl_name CHANGE old_col new_col type;
-- 例:weight 改名 wei,類型 INT
ALTER TABLE test01_01 CHANGE weight wei INT;

5. 重命名表


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 避免不存在報錯
  • 刪除不可逆,生產環境需雙人複核、備份確認

五、生產環境最佳實踐

  1. 所有 DDL 先在測試庫驗證,再走變更流程上線
  2. 大表 DDL 使用 pt-online-schema-change 或 MySQL 8.0+ INSTANT DDL 避免鎖表
  3. 修改列類型需評估數據截斷風險,先 ALTER ... MODIFY 後驗證
  4. 重命名表會導致視圖/存儲過程/外鍵失效,需同步修正依賴對象
  5. 定期 SHOW TABLE STATUS 監控 Data_free 碎片率,超 20% 考慮 OPTIMIZE TABLE
copyright © 萬盛學電腦網 all rights reserved