小米 Redmi K50 標準版國際認證通過:搭載驍龍 870,主打輕薄,4500mAh+67W 快充
阿新 • • 發佈:2022-03-11
一、概念
對錶中的資料進行限定,保證資料的正確性、有效性和完整性
二、分類
- 主鍵約束:primary key
- 非空約束:not null,值不能為 null
- 唯一約束:unique,值不能重複
- 外來鍵約束:foreign key,讓表與表產生聯絡,從而保證資料正確性
三、主鍵約束
1、新增約束(建立表時)
create table stu(
id int primary key, -- 給id新增主鍵約束
name varchar(20)
);
2、新增約束(建立完表後)
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
3、刪除約束
錯誤:
ALTER TABLE stu modify id int ;
正確:
ALTER TABLE stu DROP PRIMARY KEY;
4、自動增長
(1)概念
如果某一列是數值型別的,使用 auto_increment 可以來完成值的自動增長
(2)實現
- 新增主鍵約束,並讓主鍵自動增長
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;
5、注意
- 主鍵約束非空且唯一
- 一張表只能有一個欄位為主鍵
- 主鍵就是表中記錄的唯一標識
四、非空約束
1、新增約束(建立表時)
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL -- name為非空
);
2、新增約束(建立完表後)
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
3、刪除約束
ALTER TABLE stu MODIFY NAME VARCHAR (20);
五、唯一約束
1、新增約束(建立表時)
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE -- 添加了唯一約束
);
2、新增約束(建立完表後)
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
3、刪除約束
ALTER TABLE stu DROP INDEX phone_number;
六、外來鍵約束
1、新增約束(建立表時)
create table 表名(
....
外來鍵列
constraint 外來鍵名稱 foreign key (外來鍵列名稱) references 主表名稱(主表列名稱)
);
2、新增約束(建立完表後)
ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名稱 FOREIGN KEY (外來鍵欄位名稱) REFERENCES 主表名稱(主表列名稱);
3、刪除約束
ALTER TABLE 表名 DROP FOREIGN KEY 外來鍵名稱;
4、級聯操作
(1)新增級聯操作
ALTER TABLE 表名 ADD CONSTRAINT 外來鍵名稱
FOREIGN KEY (外來鍵欄位名稱) REFERENCES 主表名稱(主表列名稱) ON UPDATE CASCADE ON DELETE CASCADE ;
(2)級聯更新
ON UPDATE CASCADE
(3)級聯刪除
ON DELETE CASCADE