MySQL约束调用
约束:是用来限制字段值的范围的,保证数据的完整性,有效性,合法
约束的分类:
1、非空约束:not null(特点:不能为空,默认为空)
2、唯一约束:unique(特点:唯一)
3、主键约束:primary key(特点:唯一,不能为空)
4、外键约束:foreign key(特点:建立表与表之间的联系的)
5、默认约束:default(特点:没有指定具体的数据的时候,使用默认值)
主键约束(主键值设置为自增之后--》如果遇到 插入失败 删除一行数据等操作的时候主键值已经被使用了
# 主键约束
# 开发中通常会使用主键作为唯一标识符,方便数据的查询和修改(一般都设置一个主键约束)
use db2;
# TODO: 创建一个新的表(通过查询到的结果)
create table db2.student as select * from db1.stu;
# 添加主键约束的两种形式
# 1、alter table 表名 add constraint 主键约束名称 primary key(主键字段);
# 2、create table 表名(id varchar(8) primary key)
# 删除主键约束
# alter table 表名 drop primary key;
# TODO:设置主键自增
# 开发过程中,主键列应该交给MySQL来自增
# 创建表的时候,设置主键自增
create table db2.student2(
id int auto_increment primary key,
name varchar(20) not null
);
# 设置主键自增的时候,主键值不需要程序员自己填写,如果填写了就覆盖原有MySQL系统现有的主键值
# 可以在创建表的时候设置Auto_increment的起始值
对于主键约束和唯一约束来说
(主键约束在一个表中只允许出现一个)
(唯一约束可以赋给多个列名)
唯一约束(对于null不受约束--》即是说设置了唯一约束还是可以有多个null值)
# 唯一约束
create table db2.student3(
id int auto_increment primary key,
name varchar(20) unique
);
insert into student3 (name) value ('张三'),('李四');
# insert into student3 (name) value ('张三'),('李四');
非空约束
# 非空约束(not null)
# 确保该字段不能为空
create table db2.student4(
id int auto_increment primary key,
name varchar(20) not null
);
# TODO:主键约束VS非空约束+唯一约束
# 区别:
# 主键约束只能存在一个,非空约束+唯一约束可以存在多个
# 主键约束允许设置自增,非空约束+唯一约束不允许设置自增
默认值约束(用于设置修改操作时间)update student5 set date_time=now() where id=1;
# 默认值约束
# 语法:建表时设置默认值
create table db2.student5(
id int auto_increment primary key,
name varchar(20) not null,
college varchar(20) default 'XXX学院',
date_time datetime default now()
);
浙公网安备 33010602011771号