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

MySQL 修改表結構 ALTER TABLE 全命令速查:增刪改列、索引、主鍵、編碼、改名、移庫

     編輯:MySQL 綜合教學

MySQL 修改表結構 ALTER TABLE 全命令速查:增刪改列、索引、主鍵、編碼、改名、移庫

基準表:

CREATE TABLE `person` (
  `number` INT(11) DEFAULT NULL,
  `name` VARCHAR(255) DEFAULT NULL,
  `birthday` DATE DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

列操作

-- 刪除列
ALTER TABLE person DROP COLUMN birthday;

-- 新增列
ALTER TABLE person ADD COLUMN birthday DATETIME;

-- 修改列類型/屬性(不改名)
ALTER TABLE person MODIFY number BIGINT NOT NULL;

-- 修改列名+類型
ALTER TABLE person CHANGE number id BIGINT;

主鍵操作

ALTER TABLE person ADD PRIMARY KEY (id);
ALTER TABLE person DROP PRIMARY KEY;

索引操作

-- 唯一索引
ALTER TABLE person ADD UNIQUE name_unique_index (`name`);

-- 普通索引
ALTER TABLE person ADD INDEX birthday_index (`birthday`);

-- 刪除索引
ALTER TABLE person DROP INDEX birthday_index;
ALTER TABLE person DROP INDEX name_unique_index;

非唯一索引啟用/禁用(MyISAM 專用,大量導入優化)

ALTER TABLE person DISABLE KEYS;  -- 停止更新非唯一索引
ALTER TABLE person ENABLE KEYS;   -- 重建索引

字符集操作

-- 表默認字符集 + 所有字符列轉換
ALTER TABLE person CONVERT TO CHARACTER SET utf8mb4;

-- 單列轉換
ALTER TABLE person CHANGE name name VARCHAR(255) CHARACTER SET utf8mb4;

-- 僅修改表默認字符集(不影響現有列)
ALTER TABLE person DEFAULT CHARACTER SET utf8mb4;

改表名 / 移庫

RENAME TABLE person TO person_other;
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved