對表中的資料進行限定, 保證資料的正确性、有效性和完整性。
一. 非空限制
NOT NULL
, 值不能為null(對于字元串類型要設定非空, 防止空指針異常)
- 添加非空限制的兩種方式
- 建立表時, 添加非空限制
CREATE TABLE stu(
id INT,
name VARCHAR(20) NOT NULL -- 添加了NOT NULL非空限制
);
-
建立完表後, 添加非空限制
ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;
-
删除name的非空限制
ALTER TABLE stu MODIFY name VARCHAR(20);
二. 唯一限制
unique, 某一列的值不能重複
Tips: 唯一限制可以有NULL值, 且NUlLL可以重複
- 添加唯一限制的兩種方式
- 建立表示, 給某字段添加唯一限制
CREATE TABLE stu(
id INT,
phone_number VARCHAR(11) UNIQUE -- 添加唯一限制
);
-
建立表之後, 添加唯一限制
ALTER TABLE stu MODIFY phone_number VARCHAR(11) UNIQUE;
-
删除唯一限制
ALTER TABLE stu DROP INDEX phone_number;
唯一限制, 也叫唯一索引, 是以與删除非空限制的方式是不同的.
三. 主鍵限制
主鍵(primary key) : 非空且唯一.
- 一張表隻能有一個字段為主鍵.
- 主鍵就是表中記錄的唯一辨別
- 添加主鍵限制的兩種方式
- 建立表時, 添加主鍵限制
CREATE TABLE stu(
id INT PRIMARY KEY, -- 添加主鍵限制
phone_number VARCHAR(11)
);
-
建立完标後, 添加主鍵
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
-
删除主鍵限制
ALTER TABLE stu DROP PRIMARY KEY;
3.1 自動增長
在添加主鍵時, 通常會配合自動增長一起使用.
- 概念 : 如果某一列是數值類型, 使用
可以完成值的自動增長auto_increment
- 在建立表時, 添加主鍵限制, 并完成主鍵自增長.
create table stu(
id int primary key auto_increment, --給id添加主鍵限制,并自增長
name varchar(20)
);
添加自動增長的第二種方式
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
-
删除自動增長
ALTER TABLE stu MODIFY id INT;
四. 外鍵限制
foreign key, 讓表與表産生關系, 進而保證資料的正确性.
- 添加外鍵的兩種方式
- 建立表示添加外鍵
create table 表名(
...
外鍵列
constraint 外鍵名稱 foreign key (外鍵列名稱) references 主鍵名稱(主表列名稱)
)
Tips : constraint : 強制,限制, 限制
references 參考; 标記
-
建立表之後, 添加外鍵
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段名稱) REFERENCES 主鍵名稱(主表列名稱);
-
删除外鍵
ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱;
4.1 級聯操作
-
添加級聯操作
文法 :
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱) ON UPDATA CASCADE ON DELETE CASCADE;
- 分類 :
- 級聯更新 :
ON UPDATE CASCADE
- 級聯删除 :
ON DELETE CASCADE