一、常用约束
- 主键(primary key):值不能重复
- 自增(auto_increment):代表值自动增长
- 非空(not null):此字段不允许写空值
- 唯一(unique):此字段不允许重复
- 默认值(default):当不填写会使用默认值,如果填写以填写值为准
二、创建带约束字段的语法格式
语法
create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
);
/* 例子:创建表b字段如下
id :数据类型为整数,主键自增
name:数据类型为字符串,长度为10
age:数据类型为整数 */
create table b (
id int primary key auto_increment,
name varchar(10),
age int );
三、常用约束如何使用
主键:
primary key:值不能重复
- 数据值不能重复
例子:
插入一条数据
又插入一条名字是小7的记录,但是id没变报错了,因为我们创建数据类型的时候说了,是主键,不能有重复的
把id改为2,再次插入,运行正常
自增:
auto_increment:代表值自动增长
- 系统可以帮你记录值,如果制定插入id后,再次自增,会根据指定插入id后开始自增长
例子:
只插入name,age字段,查询出的结果id=3,这就是自增,不需要手动记录id
如果制定插入id后,再次自增,会根据指定插入id后开始自增长
delete与truncate删除区别
这里再次说明一下,首先用delete删除了表中数据
格式一:delete from 表名;
格式二:delete from 表名 where 条件;
例子:
再次插入数据这里可以看到,id是从9开始记录的
再次用truncate删除
格式:truncate table 表名;
插入数据
这里自增长是从1开始的,这就是delete&truncate区别
truncate与delete区别
- 在速度上 truncate > delete
- 如果删除部分数据用delete,注意带where
- 自增长字段从1开始增长,删除用truncate
非空
not null:此字段不允许写空值
- 这个字段必须要有值,没有值插入会失败
语法
create table 表名(
字段名 数据类型 not null
);
例子:创建表b,字段要求
id 数据类型 int,
name 数据类型varchar 长度(10)not null,
age 数据类型 int
create table b(
id int,
name varchar (10) not null,
age int);
例子:
插入一条数据
insert into b values (1,'小七',25);
只插入id,age字段
insert into b (id ,age) values (2,37);
唯一
unique:此字段不允许重复
语法
create table 表名(
字段名 数据类型 unique
);
例子:创建表c,字段要求
id 数据类型 int unique,
age 数据类型 int
create table c(
id int unique,
age int);
例子: 插入一条id为1记录
再次插入id为1的记录;报错,提示已经有id=1的字段
默认值
default:当不填写会使用默认值,如果填写以填写值为准
- 当一个字段有默认值约束,插入数据,指定了值,那么默认值无效;如果没有指定值,会使用默认值
语法
create table 表名(
字段名 数据类型 default 值,
);
例子:创建表e,字段要求
id 数据类型 int ,
name 数据类型 varchar(10),
age 数据类型 int default 18);
create table e(
id int unique,
name varchar(10),
age int default 18);
例子:
insert into e values (1,"王五",25);
insert into e (id , name) values (3,"李四");
没有插入年龄,这是年龄会走默认值