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

MySQL 數據表操作語句大全:建表、結構查看、修改、刪除、外鍵關聯與關聯表安全刪除實戰

     編輯:MySQL 綜合教學

MySQL 數據表操作語句大全:建表、結構查看、修改、刪除、外鍵關聯與關聯表安全刪除實戰

從創建表到結構變更、外鍵管理、關聯表安全刪除,本文匯總 MySQL DDL/DML 高頻語句標準語法、完整性約束條件、實戰示例與避坑提示,作為開發、DBA 日常操作速查手冊。

一、 創建表

CREATE TABLE [IF NOT EXISTS] table_name (
    column_name data_type [integrity_constraints],
    ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

完整性約束條件

約束作用示例
PRIMARY KEY主鍵,唯一標識,非空id BIGINT PRIMARY KEY AUTO_INCREMENT
FOREIGN KEY外鍵,關聯父表主鍵FOREIGN KEY (dept_id) REFERENCES dept(id)
NOT NULL非空name VARCHAR(32) NOT NULL
UNIQUE唯一email VARCHAR(128) UNIQUE
AUTO_INCREMENT自增id INT AUTO_INCREMENT
DEFAULT默認值status TINYINT DEFAULT 1

示例

CREATE TABLE example (
    id INT,
    name VARCHAR(20),
    sex BOOLEAN
);

二、 查看表結構

DESC table_name;              -- 簡要:Field, Type, Null, Key, Default, Extra
SHOW CREATE TABLE table_name\G -- 完整 DDL:含引擎、字符集、索引、註釋、外鍵定義

三、 修改表結構

操作語法示例
修改表名ALTER TABLE old_name RENAME [TO] new_name;ALTER TABLE user RENAME TO users;
修改列類型ALTER TABLE tbl MODIFY col new_type;ALTER TABLE users MODIFY name VARCHAR(64);
修改列名+類型ALTER TABLE tbl CHANGE old_col new_col new_type;ALTER TABLE users CHANGE name username VARCHAR(64);
新增列ALTER TABLE tbl ADD col type [constraints] [FIRST | AFTER col2];ALTER TABLE users ADD age TINYINT AFTER username;
刪除列ALTER TABLE tbl DROP col;ALTER TABLE users DROP age;

四、 關聯表外鍵管理與安全刪除

1. 刪除外鍵約束(保留表數據)

-- 查看外鍵名
SHOW CREATE TABLE child_table\G
-- 刪除外鍵
ALTER TABLE child_table DROP FOREIGN KEY fk_name;

2. 刪除無關聯的普通表

DROP TABLE table_name;

警告:數據永久丟失,操作前必備份。

3. 刪除被關聯的父表(核心難點)

場景:parent (id PK) ← child (pid FK 引用 parent.id)。
直接 DROP TABLE parent 報錯:Cannot drop table 'parent' referenced by a foreign key constraint。

方案一:級聯刪除(影響子表數據)

  1. DROP TABLE child;
  2. DROP TABLE parent;

缺點:子表其他業務數據連帶丟失。

方案二:先斷關聯再刪父表(保留子表數據,推薦)

  1. 刪除子表外鍵:ALTER TABLE child DROP FOREIGN KEY fk_name;
  2. 驗證:SHOW CREATE TABLE child\G 確認外鍵消失。
  3. 刪除父表:DROP TABLE parent;

優點:子表數據完整保留,僅移除引用約束。

五、 實戰避坑清單

  1. 建表必指定 ENGINE=InnoDB、CHARSET=utf8mb4、COMMENT。
  2. 主鍵優先 BIGINT UNSIGNED AUTO_INCREMENT。
  3. 業務關鍵列 NOT NULL DEFAULT '' 或 0,拒絕 NULL。
  4. ALTER TABLE 大表必用在線變更工具,避免長時間鎖表。
  5. 外鍵名顯式命名 CONSTRAINT fk_child_parent FOREIGN KEY...,便於管理。
  6. 刪除父表前,務必確認業務是否允許子表變為「孤兒數據」。

規範的表操作習慣,是數據庫穩定運行的基石。

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