首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 表結構管理全攻略:創建、查看、修改、刪除與六大約束完整語法

     編輯:MySQL 資料庫相關知識

基礎 DDL

-- 創建
CREATE TABLE t_dept (
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(20)
);

-- 查看結構
DESC t_dept;              -- 簡略
SHOW CREATE TABLE t_dept\G; -- 完整 DDL

-- 刪除
DROP TABLE t_dept;

結構修改(ALTER TABLE)

操作語法示例
改表名RENAME TO new_nameALTER TABLE t_old RENAME TO t_new;
加欄位(尾部)ADD col_defALTER TABLE t ADD age INT;
加欄位(首部)ADD col_def FIRSTALTER TABLE t ADD id INT FIRST;
加欄位(指定後)ADD col_def AFTER colALTER TABLE t ADD email VARCHAR(50) AFTER name;
刪欄位DROP colALTER TABLE t DROP age;
改類型MODIFY col new_typeALTER TABLE t MODIFY name VARCHAR(50);
改名CHANGE old_col new_col typeALTER TABLE t CHANGE name full_name VARCHAR(50);
改名+改類型CHANGE old_col new_col new_typeALTER TABLE t CHANGE age birth DATE;
調順序MODIFY col type FIRST|AFTER col2ALTER TABLE t MODIFY email VARCHAR(50) FIRST;

口訣:改類型/調順序用 MODIFY,改名(含改類型)用 CHANGE。

六大完整性約束

約束關鍵字建表語法說明
非空NOT NULLcol INT NOT NULL值不可為 NULL
預設值DEFAULTcol INT DEFAULT 0插入時省略則用預設
唯一UNIQUE [KEY]col INT UNIQUE 或 CONSTRAINT uk_col UNIQUE(col)值唯一,允許多 NULL
主鍵PRIMARY KEYcol INT PRIMARY KEY 或 CONSTRAINT pk_col PRIMARY KEY(col)唯一+非空,單表僅一個
自增AUTO_INCREMENTid INT PRIMARY KEY AUTO_INCREMENT整數類型,常配合 PK,僅一列
外鍵FOREIGN KEYCONSTRAINT fk_dept FOREIGN KEY(deptno) REFERENCES t_dept(deptno)引用主表 PK,可為 NULL

多欄位主鍵與約束命名

CREATE TABLE t_score (
    student_id INT,
    course_id INT,
    score DECIMAL(5,2),
    CONSTRAINT pk_score PRIMARY KEY (student_id, course_id),
    CONSTRAINT fk_stu FOREIGN KEY (student_id) REFERENCES t_student(id),
    CONSTRAINT fk_cou FOREIGN KEY (course_id) REFERENCES t_course(id)
);

命名規範建議

  • 表:t_業務名(如 t_order)
  • 索引:idx_表_欄位、uk_表_欄位
  • 約束:pk_表_欄位、fk_表_引用表
  • 視圖:v_業務名、view_業務名
  • 觸發器:trg_表_事件_時機
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved