第二章:数据库---字段约束

一、常用约束

  1. 主键(primary key):值不能重复
  2. 自增(auto_increment):代表值自动增长
  3. 非空(not null):此字段不允许写空值
  4. 唯一(unique):此字段不允许重复
  5. 默认值(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区别

  1. 在速度上 truncate > delete
  2. 如果删除部分数据用delete,注意带where
  3. 自增长字段从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,"李四");

没有插入年龄,这是年龄会走默认值

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值