概念
对表中的数据进行限定,保证数据的正确性、有效性和完整性。
分类
1.主键约束:primary key
2.非空约束:not null
3.唯一约束:unique
4.外键约束:foreign key
非空约束
1.创建表时添加非空约束
CREATE TABLE stu(
id INT,
name VARCHAR(20) NOT NULL --name 非空
);
2.创建完表后,添加非空约束
ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;
3.删除name的非空约束
ALTER TABLE stu MODIFY name VARCHAR(20);
唯一约束:unique,值不能重复
1.创建表时添加唯一约束
CREATE TABLE stu(
id INT UNIQUE ,
phone_name VARCHAR(20) UNIQUE --添加了唯一约束
);
⚠️注意:
mysql中,唯一约束限定的列的值可以有多个null。
id phone_name
1 155
2 156
3 null
4 null
2.创建完表后,添加唯一约束
ALTER TABLE stu MODIFY phone_name VARCHAR(20) UNIQUE;
3.删除name的唯一约束
ALTER TABLE stu DROP INDEX phone_name ;
主键约束:primary key
⚠️注意:
1.非空且唯一
2.一张表只能有一个字段为主键
3.主键就是表中的唯一标识
1.创建表时添加主键约束
CREATE TABLE stu(
id INT PRIMARY KEY ,
phone_name VARCHAR(20)
);
2.创建完表后,添加主键约束
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
3.删除name的主键约束
ALTER TABLE stu DROP PRIMARY KEY;
4.自动增长
概念:如果某一列是数值类型的,使用auto_increment 可以完成值的自动增长。一般和主键一起使用。
1 创建自动增长
CREATE TABLE stu(
id INT PRIMARY KEY AUTO_INCREMENT
);
2.添加自动增长
ALTER TABLE stu MODIFY INT AUTO_INCREMENT
3.删除自动增长
ALTER TABLE stu MODIFY INT