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

《MySQL必知必會》學習筆記:建表、修改表結構與刪除重命名全攻略

     編輯:MySQL 綜合教學

《MySQL必知必會》學習筆記:建表、修改表結構與刪除重命名全攻略

本文整理自《MySQL必知必會》關於「創建和操作表」章節,系統梳理 CREATE TABLE、ALTER TABLE、DROP TABLE、RENAME TABLE 的語法、約束條件(NULL、主鍵、自增、預設值)與實戰陷阱,附完整 SQL 範例與執行截圖。

一、表創建基礎

1.1 最小建表語法

CREATE TABLE student (
    id INT(10) NOT NULL,
    name VARCHAR(10) NOT NULL,
    score INT(10) NULL
);

建立基本 student 表

1.2 自增主鍵:AUTO_INCREMENT 必須搭配 PRIMARY KEY

CREATE TABLE student4 (
    id INT(10) NOT NULL AUTO_INCREMENT,
    name VARCHAR(10) NOT NULL,
    score INT(10) NULL,
    PRIMARY KEY (id)
);

錯誤示範:若只加 AUTO_INCREMENT 不設主鍵,MySQL 報錯:

AUTO_INCREMENT 需主鍵錯誤

1.3 IF NOT EXISTS 防重複建表

CREATE TABLE IF NOT EXISTS student (...);

表名存在時直接跳過,不檢查結構是否相同。

二、關鍵約束詳解

關鍵字作用注意事項
NOT NULL插入時必須提供值預設為 NULL(可省略)
NULL允許不提供值別與空字串 '' 混淆
PRIMARY KEY唯一標識每行值不可重複、不可為 NULL;可單欄或複合欄位
AUTO_INCREMENT自動遞增需為主鍵;插入可省略該欄,或指定唯一值後續從最大值遞增
DEFAULT預設值插入時省略該欄自動填充

2.1 NULL 與空字串區別

  • NULL = 無值(未知)
  • '' = 空字串(已知且為空)
  • NOT NULL 欄位可插入 '',但不可插入 NULL

2.2 主鍵特性

-- 單欄主鍵:值唯一
-- 複合主鍵:組合唯一
-- 主鍵欄位隱含 NOT NULL

重複主鍵插入報錯:

主鍵重複報錯

2.3 AUTO_INCREMENT 行為

INSERT INTO student4 (name, score) VALUES ('Tom', 90);  -- id 自動給 1
INSERT INTO student4 (id, name, score) VALUES (5, 'Jerry', 85);  -- 指定 id=5
INSERT INTO student4 (name, score) VALUES ('Kate', 88);  -- id 自動給 6(最大值+1)

AUTO_INCREMENT 示範

2.4 DEFAULT 使用

CREATE TABLE student5 (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(10) NOT NULL,
    sex VARCHAR(10) NOT NULL DEFAULT 'male',
    score INT NULL
);

DEFAULT 示範

三、修改表結構 ALTER TABLE

原則:設計階段規劃好結構,上線後盡量少改動。

3.1 新增欄位

ALTER TABLE human_information ADD tel VARCHAR(10);

新增欄位

3.2 刪除欄位

ALTER TABLE human_information DROP COLUMN tel;

刪除欄位

3.3 事後加主鍵

ALTER TABLE customers ADD PRIMARY KEY (cust_id);

加主鍵

3.4 設定外鍵

ALTER TABLE orders
ADD CONSTRAINT fk_orders_customers
FOREIGN KEY (cust_id) REFERENCES customers(cust_id);

設定外鍵 外鍵練習

四、刪除表 DROP TABLE

4.1 清空資料 vs 刪除表

指令效果
DELETE FROM student WHERE name='z';刪除符合條件的行
DELETE FROM student;刪除所有資料,表結構保留
TRUNCATE TABLE student;快速清空所有資料,表結構保留(不記錄日誌、不可回滾)
DROP TABLE student;徹底刪除表(結構+資料+索引+權限)

警告:執行 DROP TABLE 前務必完整備份。

DROP TABLE

五、重命名表 RENAME TABLE

RENAME TABLE student TO student_rename;

重命名表

六、綜合速查:標準建表範本

CREATE TABLE student (
    id INT(10) NOT NULL AUTO_INCREMENT,
    name VARCHAR(10) NOT NULL,
    sex VARCHAR(10) NOT NULL DEFAULT 'male',
    score INT(10) NULL,
    PRIMARY KEY (id)
);

七、常用 ALTER 操作總表

操作SQL 範例
新增欄位ALTER TABLE student ADD mathScore INT(10);
刪除欄位ALTER TABLE student DROP COLUMN mathScore;
加主鍵ALTER TABLE student ADD PRIMARY KEY (id);
加外鍵ALTER TABLE orders ADD CONSTRAINT fk_orders_customers FOREIGN KEY (id) REFERENCES customers (id);
刪除表DROP TABLE student;
重命名RENAME TABLE student TO new_student;

掌握上述 DDL 操作,即可靈活應對開發初期的結構調整與上線後的演進需求,建議在測試環境充分驗證後再套用至生產庫。

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