赞
踩
约束时作用于表中字段上的规则,用于限制存储在表中的数据。他能保证数据库中数据的正确、有效性和完整性。
约束 | 描述 | 关键字 |
---|---|---|
非空约束 | 限制该字段的数据不能为null | NOT NULL |
唯一约束 | 保证该字段的所有数据都是唯一、不重复的 | UNIQUE |
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一 | PRIMARY KEY |
默认约束 | 保存数据时,如果未指定该字段的值,则采用默认值 | DEFAULT |
检查约束(8.0.1版本后) | 保证字段值满足某一个条件 | CHECK |
外键约束 | 用来让两张表的数据之间建立连接,保证数据的一致性和完整性 | FOREIGN KEY |
自动增长 | 在新记录插入表中时,该字段的值会自动增加,常用于生成唯一的标识(如主键) | AUTO_INCREMENT |
约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。
分析,需要用到以下约束关键字:
约束条件 | 关键字 |
---|---|
主键 | PRIMARY KEY |
自动增长 | AUTO_INCREMENT |
不为空 | NOT NULL |
唯一 | UNIQUE |
逻辑条件 | CHECK |
默认值 | DEFAULT |
建表语句:
create table user(
id int primary key auto_increment comment '主键',
name varchar(10) not null unique comment '姓名',
age int check ( age > 0 && age <= 120 ) comment '年龄',
status char(1) default '1' comment '状态',
gender char(1) comment '性别'
) comment '用户表';
提示说&&
要被废弃了,以后最好用and
关键字替代:
多了user
表:
insert into user(id, name,age,status,gender) values (10, 'Tom1',19,'1','男'),(20, 'Tom2',25,'0','男');
insert into user(name,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,'0','男');
报错了,说user.name
有唯一约束:
insert into user(name,age,status,gender) values ('Tom3',19,'1','男'),('Tom4',25,'0','男');
为啥新插入的两条数据,id是23、24?它貌似会把之前报错的自增计数也给算了,有点奇葩啊
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。