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

MySQL 表結構管理基礎:建立、修改、刪除表的核心語法與操作圖解

     編輯:MySQL 綜合教學

核心 DDL 語法速查

建立表 (CREATE TABLE)

CREATE TABLE `table_name` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
    `name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '名稱',
    `status` TINYINT NOT NULL DEFAULT 1 COMMENT '狀態:1啟用 0停用',
    `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
    `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
    PRIMARY KEY (`id`),
    KEY `idx_status` (`status`),
    KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='表描述';

修改表 (ALTER TABLE)

操作語法範例備註
新增欄位ALTER TABLE t ADD COLUMN col VARCHAR(32) NOT NULL DEFAULT '' AFTER name;AFTER 指定位置
修改欄位ALTER TABLE t MODIFY COLUMN col VARCHAR(64) NOT NULL DEFAULT '';類型、預設值、註解可同步修改
重命名欄位ALTER TABLE t CHANGE old_col new_col VARCHAR(64) NOT NULL DEFAULT '';需重複完整定義
刪除欄位ALTER TABLE t DROP COLUMN col;數據不可恢復
新增索引ALTER TABLE t ADD INDEX idx_col (col);線上 DDL (5.6+) 無鎖
刪除索引ALTER TABLE t DROP INDEX idx_col;
修改表名ALTER TABLE t RENAME TO new_t;元數據操作,極快
修改引擎ALTER TABLE t ENGINE=InnoDB;重建表,大表慎用
修改字符集ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4;含數據轉換,大表慎用

刪除表 (DROP TABLE)

DROP TABLE [IF EXISTS] `table_name`;
-- 連帶刪除索引、觸發器、約束、權限,數據永久消失

清空表 (TRUNCATE TABLE)

TRUNCATE TABLE `table_name`;
-- 等同於 DROP + CREATE,重置 AUTO_INCREMENT,不可回滾,速度極快

圖解:phpMyAdmin 圖形化操作對應

phpMyAdmin 表結構操作介面

上圖展示 phpMyAdmin 「結構」頁籤的核心操作區:

  • 新增欄位:底部「新增 1 個欄位」輸入框
  • 修改/刪除:每列右側「修改」「刪除」圖示
  • 索引管理:下方「索引」區塊的「新增索引」「刪除」
  • 表選項:右側可修改引擎、字符集、自增起始值、表註解

生產環境操作鐵律

  1. 大表 DDL 必須用線上工具: pt-online-schema-change (Percona) 或 gh-ost (GitHub),避免長時間鎖表
  2. 變更前必備: 完整備份、回滾腳本、驗證腳本
  3. 低峰期執行: 並監控 SHOW PROCESSLIST、磁碟 IO、Replication Lag
  4. 字符集統一 utf8mb4: 支援 Emoji、避免編碼亂碼
  5. 所有表必備: 明確主鍵、created_at/updated_at、合理索引、表/欄位註解

常見陷阱避坑

  • MODIFY 不指定 NOT NULL 導致原 NOT NULL 列變可空
  • CHANGE 忘記帶上完整類型定義導致資料截斷
  • 刪除被外鍵引用的欄位/索引報錯,需先刪外鍵
  • TRUNCATE 觸發器不會執行,若依賴觸發器請用 DELETE
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved