Mysql常用的约束条件

Mysql约束

1.基本介绍:

约束用于确保数据库的数据满足特定的商业规则。

在mysql中,约束包括: not null、unique、primary key、foreign key、default、check六种.

2.primary key(主键)

用于唯一的标示表行的数据,当定义主键约束后,此列不能重复

字段名 字段类型 primary key

primary key(主键)-细节说明:

① primary key不能重复而且不能为null。

一张表最多只能有一个主键但可以是复合主键

③ 主键的指定方式有两种:

​ a.直接在字段名后指定:字段名 primakry key

​ b.在表定义最后写primary key(列名);

④ 使用 desc 表名,可以看到primary key的情况.

⑤ 提醒:在实际开发中,每个表往往都会设计一个主键.

3.not null(非空)

如果在列上定义了not null,那么当插入数据时,必须为列提供数据,值不能为空

字段名 字段类型 not null

4.default(默认)

默认约束,保证字段总会有值,即使没有插入值,都会有默认值

字段名 字段类型 default 默认值

一般搭配 not null 使用

`name` VARCHAR(32) NOT NULL DEFAULT '' -- 默认值为一个空字符串

5.unique(唯一)

当定义了唯一约束后,该列值不能重复的。

字段名 字段类型 unique

unique细节:

如果没有指定not null,则unique字段可以有多个null

一张表可以有多个unique字段

注:unique not null 约等于 primary key

6.foreign key(外键)

用于定义主表和从表之间的关系: 外键约束要定义在从表上主表必须具**有主键约束 **或是 unique约束当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null (学生/班级图示)

FOREIGN KEY (本表字段名) REFERENCES
生表名(主键名或unique字段名)

foreign key(外键)–细节说明:

① 外键指向的表的字段必须是 primary key 或者是 unique

表的引擎必须是innodb,这样的表才支持外键

③ 外键字段的类型要和主键字段的类型必须一致(长度可以不同)

外键字段的值,必须在主键字段中出现过,或者为null [前提是外键字段允许为null]

一旦建立主外键的关系,数据不能随意删除了

外键示意图

请添加图片描述

7.check

用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal列值在1000 ~ 2000之间,如果不再1000 ~ 2000之间就会提示出错。

提示: oracle 和 sql server 均支持check ,但是 mysql5.7 及旧版本不支持check , 只做语法校验,但不会生效。

基本语法:

列名 类型 check (check条件)
user表
id, name, sex(man,woman), sal(大于100 小于900)

在mysql中实现check的功能,一般是在程序中控制,或者通过触发器完成

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值