MySQL主键约束、非空约束、唯一约束、外键约束
-
概念:对表中的数据进行约束(限定),保证数据的正确性、有效性和完整性
-
分类:
- 主键约束:primary key
- 非空约束:not null
- 唯一约束:unique
- 外键约束:foreign key
-
primary key:主键约束
-
含义:唯一且非空
-
一张表仅能有一个字段为主键
-
主键是表中记录的唯一标识
-
在创建表时,添加主键
CREATE TABLE student( s_id int primary key, --给s_id添加主键约束 name varchar(20) );
-
创建完表后,添加主键
ALTER TABLE student MODIFY id INT PRIMARY KEY;
-
删除主键约束
ALTER TABLE student DROP PRIMARY KEY;
-
-
not null:非空约束
- 添加列数据不能为NULL
-
在创建表时,添加非空约束
CREATE TABLE student( s_id int, name varchar(20) NOT NULL --name添加非空约束 );
-
创建完表后,添加非空约束
ALTER TABLE student MODIFY name VARCHAR(20) NOT NULL;
-
删除主键约束
ALTER TABLE student MODIFY name VARCHAR(20);
-
unique:唯一约束
- 添加列数据不能重复
- 可以有NULL值,但是只能有一个
-
在创建表时,添加唯一约束
CREATE TABLE student( s_id int, phone varchar(20) NUIQUE --phone添加非空约束 );
-
创建完表后,添加唯一约束
ALTER TABLE student MODIFY phone VARCHAR(20) UNIQUE;
-
删除唯一约束
ALTER TABLE student DROP INDEX phone;
-
foreign key:外键约束
-
在创建表时,添加外键约束
CREATE TABLE 表名( ... 外键列, CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCE 外表名称(外表列名称); );
-
创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERCES 外表名称(外表列名称);
-
删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
-
级联操作
-
添加级联操作
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERCES 外表名称(外表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
-
级联更新:ON UPDATE CASCADE
-
级联删除:ON DELETE CASCADE
-
-
网友评论