约束的概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。
分类:
1.主键约束:primary key
2.非空约束:not Null
3.唯一约束:unique
4.外键约束:foreign key
非空约束:not null 某一列的值不能为空
1.加了约束的字段为必填项,不填无法保存到表中
1.创建表时添加约束
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL
);
2.创建表完成后,添加约束
alter table stu change name name varchar(20) not null;
3.删除非空约束
ALTER TABLE stu CHANGE NAME NAME VARCHAR(20);
唯一约束:unique 某一列的值不能重复
1.注意:
唯一约束可以有NULL值,但是只能有一条记录为NULL
2.在创建表时,添加唯一约束
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) UNIQUE
);
3.删除唯一约束
alter table stu drop index name;
4.在表创建完成之后,添加唯一约束
alter table stu modify name varchar(20) unique;
主键约束:primary key 非空且唯一
1.一张表只能有一个字段为主键。
2.主键就是表中记录的唯一标识
1.在创建表时,添加主键
CREATE TABLE stu(
id INT PRIMARY KEY,
NAME VARCHAR(20)
);
CREATE TABLE stu1(
id INT,
NAME VARCHAR(20),
PRIMARY KEY(NAME)
);
2.删除主键
alter table stu drop primary key;
3.创建完表后,添加主键
alter table stu chane name name varchar(20) primary key;
4.自动增长
1.概念:如果某一列是数值类型的,使用 auto_increment 可以来实现值的自动增长
2.在创建表时,添加主键约束,并且完成主键自增长
CREATE TABLE stu(
id INT PRIMARY KEY auto_increment,
NAME VARCHAR(20)
);
3.删除自动增长
alter table stu change id id int;
4.添加自动增长
alter table stu change id id int auto_increment;
外键约束:foreign key,让表与表产生关系,从而保证数据的正确性。
1.在创建表时,添加外键
语法:create table 表名(
''''''
外键列,
constraint 外键名 foreign key (外键字段名称)references 主表名称(主表列名称);
);
CREATE TABLE dep(
department_id INT PRIMARY KEY,
department_name VARCHAR(20)
);
CREATE TABLE stu(
id INT PRIMARY KEY,
NAME VARCHAR(20),
department_id INT,
CONSTRAINT stu_dep_fk FOREIGN KEY (department_id) REFERENCES dep(department_id)
);
2.删除外键
alter table 表名 drop foreign key 外键名称;
3.创建表之后,添加外键
alter table 表名 add constraint 外键名 foreign key (外键字段名称)references 主表名称(主表列名称);
4.级联操作
1.添加级联操作
语法:alter table 表名 add constraint 外键名 foreign key (外键字段名称)references 主表名称(主表列名称) on update cascade on delete cascade;
2.分类
1.级联更新:on update cascade
2.级联删除:on delete cascade