MySQL 检查约束(CHECK)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现,根据用户实际的完整性要求来定义。它可以分别对列或表实施 CHECK 约束。

选取设置检查约束的字段

检查约束使用 CHECK 关键字,具体的语法格式如下:

CHECK <表达式>

其中:<表达式>指的就是 SQL 表达式,用于指定需要检查的限定条件。

若将 CHECK 约束子句置于表中某个列的定义之后,则这种约束也称为基于列的 CHECK 约束。

在更新表数据的时候,系统会检查更新后的数据行是否满足 CHECK 约束中的限定条件。MySQL 可以使用简单的表达式来实现 CHECK 约束,也允许使用复杂的表达式作为限定条件,例如在限定条件中加入子查询。

注意:若将 CHECK 约束子句置于所有列的定义以及主键约束和外键定义之后,则这种约束也称为基于表的 CHECK 约束。该约束可以同时对表中多个列设置限定条件。

在创建表时设置检查约束

创建表时设置检查约束的语法规则如下:

CHECK(<检查约束>)

【实例 1】在 test_db 数据库中创建 tb_emp7 数据表,已经为大家精心准备了大数据的系统学习资料,从Linux-Hadoop-spark-......,需要的小伙伴可以点击要求 salary 字段值大于 0 且小于 10000,输入的 SQL 语句和运行结果如下所示。

  mysql> CREATE TABLE tb_emp7      -> (      -> id INT(11) PRIMARY KEY,      -> name VARCHAR(25),      -> deptId INT(11),      -> salary FLOAT,      -> CHECK(salary>0 AND salary<100),      -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id)      -> );  Query OK, 0 rows affected (0.37 sec)

在修改表时添加检查约束

修改表时设置检查约束的语法规则如下:

ALTER TABLE tb_emp7 ADD CONSTRAINT <检查约束名> CHECK(<检查约束>)

【实例 2】修改 tb_dept 数据表,要求 id 字段值大于 0,输入的 SQL 语句和运行结果如下所示。

  mysql> ALTER TABLE tb_emp7      -> ADD CONSTRAINT check_id      -> CHECK(id>0);  Query OK, 0 rows affected (0.19 sec)  Records: 0  Duplicates: 0  Warnings: 0

删除检查约束

修改表时删除检查约束的语法规则如下:

ALTER TABLE <数据表名> DROP CONSTRAINT <检查约束名>;

MySQL检查约束(CHECK)相关推荐

  1. mysql的check约束怎么设置_MySQL检查约束(CHECK)

    MySQL 检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,可以通过 CREATE TABLE 或 ALTER TABLE 语句实现.设置检查约束时要根据实际情况进行设置,这样能够减少 ...

  2. mysql查看check约束_关于MYSQL 检查check约束

    MYSQL 目前版本貌似不支持 SQL标准的 检查约束(check): SQL如: ALTER TABLE emp ADD CONSTRAINT ck_emp_sex CHECK (sex ='男' ...

  3. 6、检查约束(CHECK)

    MySQL 检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,可以通过 CREATE TABLE 或 ALTER TABLE 语句实现.设置检查约束时要根据实际情况进行设置,这样能够减少 ...

  4. 数据库元数据数据字典查询_7_列出给定表的检查约束

    列出给定表的检查约束 需求描述 需求:查询出给定的表emp的检查约束(check)信息. 解决方法:通过各个数据库里提供的与检查约束(check)相关的数据字典进行查询. 注: 数据库数据集SQL脚本 ...

  5. MySQL的约束——外键约束

    约束: MySQL的约束的概述: 概念: 约束是作用于表中字段上的规则,用于限制存储在表中的数据 目的: 保证数据库中数据的正确,有效和完整性 分类 1.非空约束 NOT NULL 限制该字段的数据不 ...

  6. mysql基础约束详解

    -- ======================================约束的示例================================== -- -- 约束作用于表结构,用于限制 ...

  7. 数据的完整性(正确性和准确性):分类-实体完整性:主键约束、唯一约束、自动增长列。域完整性-非空约束、默认值约束、检查约束。引用完整性-一对一、一对多、多对多

    文章目录 1 数据的完整性作用 2 完整性的分类 2.1 实体完整性 2.1.1 主键约束 primary key 2.1.2 唯一约束 unique 2.1.3 自动增长列 auto_increme ...

  8. MySQL 8.0 新特性之检查约束(CHECK)

    文章目录 MySQL 8.0.15 之前 MySQL 8.0.16 之后 列级检查约束 表级检查约束 强制选项 检查约束限制 总结 大家好,我是只谈技术不剪发的 Tony 老师.这次我们来介绍一个 M ...

  9. mysql 创建表check如何使用_MySQL怎么使用check约束

    在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式(用于限制列中的值的范围). 在一些情况下,我们需要字段在指定范围的输入, 例如:性别只能输入 '男'或者'女',余 ...

最新文章

  1. IOS —— KVO的一个小封装
  2. ul li列表元素浮动导致border没有底边解决办法
  3. Exception in thread “main“ java.lang.NoSuchMethodError: scala.collection.mut
  4. javawed商店商品结算_微信小商店搭建
  5. 启动TOMCAT报错 java.util.zip.ZipException: invalid LOC header (bad signature)
  6. oracle的in集合,oracle中in与not in集合中有空值问题
  7. 反射注解知识点复习(第一次)
  8. 睡眠伤害计算机硬件吗,电脑高手告诉您,电脑不关机只睡眠到底伤不伤硬盘?...
  9. 登录邮恰显示服务器登录失败,邮洽邮箱收不到邮件是什么原因?
  10. C++ 类(继承中的构造和析构)
  11. windows防火墙自动开启的原因
  12. ICP备案教程-图文详细流程适合新手小白(Chinar出品)
  13. 即刻报名|飞桨黑客马拉松第三期盛夏登场,等你挑战
  14. ALSA子系统(七)------simple_card添加虚拟声卡
  15. 内网穿透、反向代理(ngrok服务器搭建)
  16. 关于虚拟串口驱动专业版 Eltima Virtual Serial Port Driver Pro 注册原理
  17. Spark中RDD是什么?
  18. GNSS文献阅读的一些专业词汇
  19. 圈1到圈50打不出来,直接复制
  20. 【网易公开日】《梦幻西游》手游服务器如何实现200万玩家同时在线?(技术篇)

热门文章

  1. DayDayUp:寒门女孩考入北大→换角度看待表达《感谢贫穷》—关于吃苦与穷~~~Python之wordcloud词云图可视化
  2. ML之Kmeans:利用自定义Kmeans函数实现对多个坐标点(自定义四个点)进行自动(最多迭代10次)分类
  3. 自动微分(Automatic Differentiation)
  4. centos6.7一键装机
  5. 面向对象编程(OOP)和面向过程编程
  6. python之web开发“三剑客”
  7. 2.13生成可控的随机数据集合 模拟色子
  8. 【转】Xcode7.1环境下上架iOS App到AppStore 流程 -- 不错!!
  9. 前端之JavaScript第一天学习(1)-JavaScript 简介
  10. Objective-C学习笔记_命令行参数获取