约束:对表中的数据进行限定,保证数据的正确性、有效性
分类:
- 主键约束:primary key
- 非空约束:not null
- 唯一约束:unique
- 外键约束:foreign key
- 非空约束: not null
* 在创建表时添加非空约束
CREATE TABLE student (
id INT,
NAME VARCHAR (20) NOT NULL -- name为非空
) ;
* 创建表完成后,添加非空约束
ALTER TABLE 表名 MODIFY <字段名称> <字段类型> NOT NULL;
* 删除非空约束
ALTER TABLE student MODIFY <字段名称> <字段类型>;
- 唯一约束:unique,值不能重复
* 在创建表时添加唯一约束:
CREATE TABLE stu(
id INT UNIQUE,
phone_number VARCHAR(20) UNIQUE -- 添加了唯一约束
);
* 在创建表完成后添加唯一约束:
ALTER TABLE 表名 MODIFY <字段名称> <字段类型> unique
* 删除唯一约束:
alter table 表名 drop index 字段名称;
- 主键约束:primary key
- 注意:
- 含义:非空且唯一
- 一张表只能有一个字段为主键
- 主键就是表中记录的唯一标识
* 在创建表时,添加主键约束
create table 表名(
id int primary key, -- 给id添加主键约束
name varchar(20)
);
* 在创建完成表后,添加主键约束:
alter table 表名 modify 字段名称 字段类型 primary key;
* 删除主键
alter table modify drop primary key; -- 不用之地某一字段,因为一个表中只有一个主键
- 自动增长:
- 如果某一数列是数值类型,使用auto_increment 可以完成 值的自动增长
* 在创建表时添加主键约束,并完成主键自增长
create table 表名(
id int primary key auto_increment,
name varchar(20)
);
* 在创建完成表后,添加主键并且完成自动增长
alter table 表名 modify 字段名称 字段类型 auto_increment;
* 删除自增长
alter table 表名 modify 字段名称 字段类型; -- 将自增长删除而不会删除主键
- 外键约束:foreign key 让表与表产生关系,从而保证数据的正确性
* 在创建表时,添加外键约束
create table 表名 (
...
外键列
constraint 外键列名称 foreign key (外键字段名称)references 主表名称(主表列名称)
);
* 创建完成表后,添加外键约束:
alter table 表名 add constraint 外键名称 foreign key (外键字段名称) references 主表名称(主表列名称);
* 删除外键约束
alter table drop foreign key 外键名称;
- 级联操作:
- 添加级联操作:
- 语法:
alter table 表名 add constraint 外键名称 foreign key(外键字段名称)references 主表名称(主表列名称) on update cascade on delete cascade - 分类:
- 级联更新: on update cascade
- 级联删除: on delete cascade
- 语法: