mysql之 约束
一切笔记学习皆来自黑马学习的。。勿喷
-
概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性
-
分类:
1. 主键约束:primary key
2. 非空约束:not null
3. 唯一约束:unique
4. 外键约束:foreign key -
非空约束 :not null,值不能为null
创建表时添加约束
例子
create table stu(
id int,
name varchar(20) not null -- name为非空
);
此时name值不能为空,为空添加数据会报错
删除name的非空约束
-- 删除name的非空约束(其实就是修改表结构)
ALTER TABLE stu MODIFY NAME VARCHAR(20);
修改表结构后,name值可为空,因为没有约束了
创建表结束后,添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
- 唯一约束: unique,值不能重复
创建表时添加唯一约束
create table stu(
id int ,
phone_number varchar(20) unique -- 添加了唯一约束
);
添加唯一约束后,唯一约束中的内容不可重复
注:值可为空------唯一约束限定的列的值可以有多个null
- 删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
- 创建表后,添加唯一约束
ALTER TABLE stu DROP INDEX phone_number varchar(20) UNIQUES;
- 主键约束 :primary key
- 注意:
1. 含义:非空切唯一
2. 一张表只能有一个字段为主键
3. 主键就是表中记录的唯一标识 - 在创建表时,添加主键约束
create table stu( id int primary key, -- 给id添加主键约束 name varchar(20) );
- 注意:
删除主键
alter table stu drop primary key;
表创建完后,添加主键
alter table stu modify id int primary key;
- 自动增长:
概念:如果某一列是数值类型的,使用auto_increment 可以来完成值的自动增长
create table stu(
id int auto_increment, --给id添加主键约束
name varchar(20)
);
- 删除自增长
alter table stu modify id int ;
- 添加自动增长
alter table stu modify id int auto_increment;