首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL ALTER 命令深度講解:從入門到實戰

     編輯:MySQL 資料庫相關知識

什麼是關係型數據庫

MySQL 屬於關係型數據庫(RDBMS),數據以「表格」形式存儲,由行(記錄)和列(欄位)組成。當需要調整表結構時,必須使用 ALTER TABLE 命令。

基礎環境準備

-- 登入並建立測試表
mysql -u root -p
USE TUTORIALS;
CREATE TABLE testalter_tbl (
    i INT,
    c CHAR(1)
);
SHOW COLUMNS FROM testalter_tbl;

核心操作詳解

1. 刪除欄位

ALTER TABLE testalter_tbl DROP i;
若表僅剩一欄位,無法使用 DROP 刪除。

2. 新增欄位

-- 預設加到末尾
ALTER TABLE testalter_tbl ADD i INT;

-- 指定位置
ALTER TABLE testalter_tbl ADD i INT FIRST;        -- 第一列
ALTER TABLE testalter_tbl ADD i INT AFTER c;      -- c 之後

3. 修改欄位類型與名稱

-- MODIFY:僅修改類型
ALTER TABLE testalter_tbl MODIFY c CHAR(10);

-- CHANGE:修改名稱和類型(舊名 新名 類型)
ALTER TABLE testalter_tbl CHANGE i j BIGINT;
ALTER TABLE testalter_tbl CHANGE j j INT;

4. NOT NULL 與預設值控制

-- 設定 NOT NULL + 預設值
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;

-- 僅修改預設值
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;

-- 刪除預設值
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

5. 修改表存儲引擎

ALTER TABLE testalter_tbl ENGINE = MyISAM;
SHOW TABLE STATUS LIKE 'testalter_tbl'\G

6. 重命名表

ALTER TABLE testalter_tbl RENAME TO alter_tbl;

進階提示

  • ALTER TABLE 也可用於建立/刪除索引,詳見後續章節
  • 大表結構變更會鎖表,生產環境建議使用 pt-online-schema-change 等工具
  • 修改欄位類型前務必評估數據兼容性,避免截斷或溢出
最佳實踐: 變更前先 SHOW CREATE TABLE 備份結構,測試環境驗證無誤再上線。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved