MySQL是一種關係型資料庫管理系統,約束是確保數據完整性和一致性的重要機制之一。本文將從MySQL的約束種類、條件、類型、設置、常見示例等多個方面詳細介紹MySQL約束有哪些。
一、MySQL約束種類
MySQL提供了多種類型的約束,包括:
1. 主鍵約束 (PRIMARY KEY): 主鍵是一種唯一的索引,通常用於標識表中的每一行數據。主鍵約束可以保證每行數據都有唯一的標識,避免了數據衝突的問題。例如:
CREATE TABLE student (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT(3) NOT NULL
);
2. 唯一約束(UNIQUE): 唯一約束用於保證在特定的表列中數據的唯一性。例如:
CREATE TABLE student (
id INT(11) NOT NULL,
name VARCHAR(50) NOT NULL UNIQUE,
age INT(3) NOT NULL
);
3. 外鍵約束(FOREIGN KEY): 外鍵約束用於保持關係型資料庫表之間的關聯關係。例如:
CREATE TABLE course (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
cid INT(11) NOT NULL,
FOREIGN KEY (cid) REFERENCES student(id)
);
二、MySQL約束條件
約束條件是用於控制表中數據的一致性和完整性的規則。MySQL支持以下約束條件:
1. NOT NULL:保證表中列不包含NULL值。例如:
CREATE TABLE student (
id INT(11) NOT NULL,
name VARCHAR(50) NOT NULL,
age INT(3) NOT NULL
);
2. DEFAULT:默認值約束,對於未提供值的列設置默認值。例如:
CREATE TABLE student (
id INT(11) NOT NULL DEFAULT 0,
name VARCHAR(50) NOT NULL DEFAULT 'No Name',
age INT(3) NOT NULL DEFAULT 18
);
三、MySQL約束類型
MySQL支持以下約束類型:
1. 表級約束:對表中的數據整體進行約束控制,可以在表創建之後或表上已存在的數據上執行。例如:
ALTER TABLE student ADD CONSTRAINT pk_id PRIMARY KEY(id);
2. 列級約束:對表中的數據列進行約束控制,只有在列添加時才能定義。例如:
CREATE TABLE student (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL UNIQUE,
age INT(3) NOT NULL CHECK (age >= 18)
);
四、MySQL設置約束名
MySQL約束名是指將約束命名的規則或慣例。要給約束定義名稱,可以使用以下語法:
CREATE TABLE student (
id INT(11) NOT NULL PRIMARY KEY CONSTRAINT pk_student_id,
name VARCHAR(50) NOT NULL UNIQUE CONSTRAINT uk_student_name,
age INT(3) NOT NULL CHECK (age >= 18) CONSTRAINT check_student_age
);
五、MySQL常見的約束
MySQL的主鍵、外鍵和唯一鍵是最常見的約束類型。這裡分別給出代碼示例:
1. 主鍵約束
CREATE TABLE student (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT(3) NOT NULL
);
2. 唯一約束
CREATE TABLE student (
id INT(11) NOT NULL,
name VARCHAR(50) NOT NULL UNIQUE,
age INT(3) NOT NULL
);
3. 外鍵約束
CREATE TABLE course (
id INT(11) NOT NULL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
cid INT(11) NOT NULL,
FOREIGN KEY (cid) REFERENCES student(id)
);
小結
MySQL約束是一種保證數據完整性和一致性的重要機制。本文從多個方面詳細介紹了MySQL約束的種類、條件、類型、設置方法和常見示例。通過深入了解MySQL約束,可以更好地保護資料庫中的數據。
原創文章,作者:LTAC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134539.html