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

MySQL 表結構變更全攻略:添加、修改、刪除列與數據增刪改操作

     編輯:MySQL 綜合教學

一、表結構變更 (DDL)

核心命令:ALTER TABLE,支持列操作、約束管理、重命名等。

1. 基礎查看與重命名

-- 查看表結構
DESC 表名;
-- 或
SHOW COLUMNS FROM 表名;

-- 修改表名
ALTER TABLE t_book RENAME TO bbb;

2. 列操作語法速查表

操作MySQL 語法說明
添加列ALTER TABLE 表名 ADD COLUMN 列名 類型 [約束];支持 FIRST/AFTER col 指定位置
刪除列ALTER TABLE 表名 DROP COLUMN 列名;數據同步丟失,謹慎操作
修改列名 + 類型ALTER TABLE 表名 CHANGE 舊列名 新列名 新類型 [約束];MySQL 專有,需重新指定完整類型
僅修改列類型/約束ALTER TABLE 表名 MODIFY 列名 新類型 [約束];保持列名不變
修改列名ALTER TABLE 表名 RENAME COLUMN 舊列名 TO 新列名;MySQL 8.0+ 支持,更簡潔

3. 跨數據庫修改列名對照

-- MySQL (舊版)
ALTER TABLE bbb CHANGE nnnnn hh int;

-- MySQL 8.0+ / MariaDB / PostgreSQL / Oracle (標準語法)
ALTER TABLE bbb RENAME COLUMN nnnnn TO hh;

-- SQL Server
EXEC sp_rename 't_student.name', 'nn', 'COLUMN';

二、數據操作 (DML)

1. UPDATE 修改記錄

UPDATE 表名 SET 列名 = 新值 [, 列名2 = 新值2 ...] WHERE 條件;
  • WHERE 可選:省略則更新全表(極度危險)
  • 示例:UPDATE pet SET sex='f' WHERE name='Whistler';

2. DELETE 刪除記錄

DELETE FROM 表名 WHERE 條件;
  • WHERE 可選:省略則清空全表(不可逆,極度危險)
  • 刪除特定行:DELETE FROM pet WHERE name='Whistler';
  • 清空全表(保留結構):DELETE FROM pet; 或 TRUNCATE TABLE pet; (更快、不記錄日誌、重置自增 ID)

三、最佳實踐建議

  1. 變更前必備份:mysqldump -d db_name table_name > structure_backup.sql
  2. 大表結構變更:使用 pt-online-schema-change 或 gh-ost 避免鎖表阻塞
  3. 生產環境:嚴禁無 WHERE 的 UPDATE/DELETE,建議先 SELECT 驗證影響行數
  4. 字符集變更:ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4; 會同步轉換列字符集
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved