mysql教程 check_Check

Check

1. 定义

慕课解释:Check约束用于限制字段值的范围;Check既可以定义在单个字段上,也可以在定义在表上对特定字段进行约束。

2. 前言

本小节,我们将一起学习SQL Check。

前面的小节中,我们谈到了诸多数据类型和约束;如果说数据类型是对数据的第一层约束,那么Check便是数据的第二层约束,Check 可以在数据库层面上筛选掉不符合约束的数据。

3. 创建时约束

Check 可以直接在创建数据表时给字段加上约束。

3.1 例1 字段上约束

请书写 SQL 语句,新建imooc_user表,共有 id,username,age 三个字段,且为 age 字段添加上 Check 约束,规定所有 age 必须大于0。

分析:

使用 Create 指令新建数据表,并通过 Check 给 age 加上>0的约束。

语句:

整理可得语句如下:

创建成功后,若插入的数据不满足条件,插入会失败,如下:

insert into imooc_user values(2,'pedro',0);

(3819, "Check constraint 'imooc_user_chk_1' is violated.")

3.2 例2 数据表上约束

Check 不仅可以作用在字段上,还可以直接在数据表上。

请书写 SQL 语句,新建imooc_user表,共有 id,username,age 三个字段,且为 age 字段添加上 Check 约束,规定所有 age 必须大于0且小于1000。

分析:

同例1。

语句:

整理可得语句如下:

4. Alter 时更改约束

数据表还可以在修改时添加Check约束或者删除约束。

4.1 例3 Alter 添加约束

请书写SQL语句,为imooc_user表的 username 字段添加上 Check 约束,规定 username 只能为peter。

分析:

使用 Alter 指令修改 imooc_user 表,并为 username 字段添加上约束。

语句:

整理可得语句如下:

4.2 例4 Alter 删除约束

请书写 SQL 语句,删除imooc_user表的 username 字段约束。

分析:

使用 Alter 指令修改 imooc_user 表,删除掉 username 字段上的约束。

语句:

(MySQL下)整理可得语句如下:

如果是 PostgreSQL 会有些许不同,语句如下:

5. 小结

Check 虽然可以约束字段,但是会影响数据插入和更新的速度,降低数据库性能,因此一般都不推荐使用 Check。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值