常见的约束
约束:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性。
分类:六大约束
- not null :非空、用于保证字段的值不能为空,姓名,学号等。
- default:默认,用于保证字段有默认值。比如性别。
- primary key:主键,用于保证该字段具有唯一性,并且非空,比如学号,员工编号。
- unique:唯一,用于保证该字段具有唯一性,可以为空,比如座位号。
- check:检查约束(mysql中不支持)
- foreign key :外键用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表添加外键约束,用于引用主表中的值。
添加约束的时机:
1.创建表时
2.修改表时
约束的添加的分类:
列级约束:
1.六大约束语法上都支持,但外键约束没有效果。(默认、非空、检查、主键)
表级约束:
案例:
1.添加列级约束
create table stuinfo(
id int primary key , 主键
stuName varchar(20) not null,非空
gender char(1) check(gender=‘男’ or gender = ‘女’),检查
seat int unique,唯一
age int default 18,
);
show index from 表名(查看索引)
2.添加表级约束
create table stuinfo(
id int ,
stuName varchar(20) ,
gender char(1)),
seat int ,唯一
age int,
);
主键和唯一的对比
1.都能保证唯一性
2.主键不能为null,唯一可以为空
标识列
又称为自增长列
可以不用手动的插入值,系统提供默认的序列值。
特点:
1标识列必须要于主键搭配吗?不一定,但要求是一个key
2一个表可以又几个标识列?最多一个
3标识列的类型只能是数值型
create table tab_identity(
id int primary key auto_increment,
name varchar(20);
);