首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 學習筆記(六):修改數據表結構(上)

     編輯:MySQL 綜合教學

MySQL 學習筆記(六):修改數據表結構(上)

ALTER TABLE 是修改表結構的核心命令,支援增刪改列、調整順序、修改屬性等操作。本文聚焦列級變更。

一、添加單列

ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name];
  • FIRST:插入為第一列
  • AFTER col_name:插入在指定列之後

示例:在 username 後添加 email VARCHAR(100)

ALTER TABLE t_user ADD COLUMN email VARCHAR(100) AFTER username;

添加單列

二、添加多列

ALTER TABLE tbl_name ADD [COLUMN] (col_def1, col_def2, ...);

示例:一次性添加 phone、address

ALTER TABLE t_user ADD COLUMN (phone CHAR(11), address VARCHAR(200));

添加多列

三、刪除列

ALTER TABLE tbl_name DROP [COLUMN] col_name;

示例:刪除 address

ALTER TABLE t_user DROP COLUMN address;

刪除列

四、修改列(刪除舊列 + 添加新列)

MySQL 不直接支援 RENAME COLUMN(8.0+ 支援),傳統做法是 CHANGE 或 MODIFY,也可通過「刪除+添加」實現結構調整。

-- 將 email 刪除,改為 email_new VARCHAR(150) 放在 username 後
ALTER TABLE t_user DROP COLUMN email, ADD COLUMN email_new VARCHAR(150) AFTER username;

刪除並添加列

五、常用修改列屬性語法(補充)

-- 修改列類型/默認值/註釋,保留列名
ALTER TABLE tbl_name MODIFY COLUMN col_name new_definition;

-- 修改列名 + 類型/屬性
ALTER TABLE tbl_name CHANGE COLUMN old_name new_name new_definition;

-- 修改列順序
ALTER TABLE tbl_name MODIFY COLUMN col_name col_definition AFTER other_col;

六、注意事項

  • 大表 ALTER TABLE 會鎖表、拷貝數據,耗時長,建議:
    — 使用 pt-online-schema-change(Percona Toolkit)在線變更
    — 低峰期執行
    — 評估 ALGORITHM=INPLACE vs COPY 模式
  • 外鍵關聯表修改父表主鍵類型需先刪除外鍵
  • 修改後檢查 SHOW CREATE TABLE tbl_name 確認結構

掌握 ADD/DROP/MODIFY/CHANGE 四大子句,應對 90% 表結構變更場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved