约束
1、约束概念
概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
约束的分类:
- 主键约束:primary key
- 非空约束:not null
- 唯一约束:unique
- 外键约束:foreign key
2、非空约束
not null, 某一列的值不能为空
2.1 创建表时添加约束
CREATE TABLE stu(
id int,
name VARCHAR(20) NOT NULL -- NAME 为非空
);
2.2 创建表后,添加非空约束
-- 创建表后,添加非空约束
ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;
2.3 删除name的非空约束
alter table stu modify name varchar(20);
3、唯一约束
unique,某一列的值不能重复
注意:
- 唯一约束可以有null值,但是只能有一个null
3.1 创建表时添加约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE -- 手机号
);
3.2 创建表后,添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
3.3 删除唯一约束
-- 删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
4、主键约束
主键约束:表示非空且唯一
注意:
- 一张表只能有一个主键
- 主键就是一张表中记录的唯一标识
4.1 创建表时,添加主键约束
CREATE TABLE stu(
id INT PRIMARY KEY,
NAME VARCHAR(20)
);
4.2 删除主键
ALTER TABLE stu DROP PRIMARY KEY;
4.3 创建表后,添加主键
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
4.4 自动增长
如果某一列是数值类型的,使用auto_increment可以完成值得自动增长。
自动增长的数据只跟上一个数据有关。
在创建表时添加主键约束,并完成自动增长
CREATE TABLE stu( id INT PRIMARY KEY auto_increment, -- 给id添加主键约束 NAME VARCHAR(20) );
删除自动增长
ALTER TABLE stu MODIFY id INT;
添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
5、外键约束
5.1 创建表时添加外键
语法:
create table 表名(
...
外键列
constraint 外键名称 foreign key 外键列名称 reference 主表名称(主表列名称)
);
5.2 删除外键
alter table 表名 drop foreign key 外键名;
5.3 添加外键
alter table 表名 add constraint 外键名称 foreign key 外键列名称 reference 主表名称(主表列名称)
5.4 级联操作
添加级联的操作
alter table 表名 add constraint 外键名称 foreign key 外键列名称 reference 主表名称(主表列名称) on update cascade on delete cascade;
级联的更新
添加外键的时候设置级联
alter table 表名 add constraint 外键名称 foreign key 外键列名称 reference 主表名称(主表列名称) on update cascade;
级联的删除
alter table 表名 add constraint 外键名称 foreign key 外键列名称 reference 主表名称(主表列名称) on update cascade on delete cascade;
版权声明:本文为qq_43536350原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。