我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL(32)MySQL 检查约束(CHECK)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL(32)MySQL 检查约束(CHECK)

MySQL 检查约束(CHECK)

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

选取设置检查约束的字段

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

CHECK <表达式>

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

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

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

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

在创建表时设置检查约束

一般情况下,如果系统的表结构已经设计完成,那么在创建表时就可以为字段设置检查约束了。

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

CHECK(<检查约束>)

例 1在 test_db 数据库中创建 tb_emp7 数据表,要求 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_emp7 数据表,要求 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 <检查约束名>;

例 3删除 tb_emp7 表中的 check_id 检查约束,SQL 语句和运行结果如下所示:

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

来源地址:https://blog.csdn.net/m0_54144956/article/details/130666268

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL(32)MySQL 检查约束(CHECK)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql中check约束怎么用

mysql 中的 check 约束用于限制表中数据值的范围,使用语法:alter table table_name add constraint constraint_name check (column_name expression)。
mysql中check约束怎么用
2024-04-26

mysql中检查约束怎么写

在MySQL中,可以使用CREATE TABLE语句中的约束来检查约束。以下是一些常见的约束及其写法:1. NOT NULL约束:确保列中的值不为空。例如:CREATE TABLE table_name (column_name datat
2023-10-20

MySQL使用触发器如何实现CHECK检查约束的功能

MySQL触发器可实现与CHECK检查约束类似的功能,限制数据插入和更新。创建插入和更新触发器,在插入或更新前检查数据是否满足条件。如果条件不满足,则回滚操作并返回错误消息。触发器提供灵活性、可重用性和可调试性,但可能存在性能开销、维护复杂性和并发问题。对于简单的检查条件,明确定义检查约束更有效率。
MySQL使用触发器如何实现CHECK检查约束的功能
2024-04-02

Mysql中的CHECK约束特性详解

功能说明在mysql 8.0.16以前, CREATE TABLE允许从语法层面输入下列CHECK约束,但实际没有效果:CHECK (expr)在 MySQL 8.0.16,CREATE TABLE添加了针对所有存储引擎的表和列的CH
2022-08-08

【⑫MySQL | 约束(二)】外键 | 默认值 | 检查约束 — 综合案例

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL外键 | 默认值 | 检查约束 以及综合案例的分享✨ 目录 前言6. 外键约束(FOREIGN KEY,FK)7. 默认值约束和检查约束8. 综合实战总结
2023-08-21

mysql中怎么使用check约束性别

在MySQL中,可以使用ENUM数据类型来定义性别字段,并通过CHECK约束来限制字段的取值范围,从而实现性别的约束。以下是一个示例:CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(
mysql中怎么使用check约束性别
2024-04-09

PostgreSQL检查约束中怎么设置列约束和表约束

这篇文章主要介绍PostgreSQL检查约束中怎么设置列约束和表约束,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、什么是检查约束?设置某个字段里的数值必须满足约束表达式的条件。检查约束是最常见的约束类型,形式为“
2023-06-14

MySQL 约束

概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。分类:主键约束:primary key非空约束:not null唯一约束:unique外键约束:foreign key非空约束:not null,值不能为null创建表时添加约束CREATE TA
MySQL 约束
2016-01-17

MySQL约束

约束约束(constraint)概述为什么要约束为了保证数据完整性什么是约束对表中字段的(强制)限制约束的分类角度一:字段个数单类约束,多列约束角度二:约束的作用范围 / 定义位置列级约束:将此约束声明在字段的后面表级约束:在表中所有字段声明完,在所有字段的后
MySQL约束
2017-07-27

MySQL 8.0新特性 — 检查性约束的使用简介

前言在MySQL 8.0版本中,引入了一个非常有用的新特性 — 检查性约束,它可以提高对非法或不合理数据写入的控制能力;接下来我们就来详细了解一下。 检查性约束创建、删除与查看(1)可以在建表时,创建检查性约束mysql> CREATE T
2022-05-31

MySQL 表约束

约束概述对数据表中数据的限制条件叫表的约束,目的是为了保证表中记录的完整和有效。例如非空、唯一等。查看约束1 通过查看建表语句 查看表中的约束show create table tb_name;2 通过检查约束表 查看约束select * from infor
MySQL 表约束
2015-05-19

mysql中check约束不起作用的原因有哪些

数据类型不匹配:如果check约束中的条件与对应字段的数据类型不匹配,那么该约束将不起作用。索引问题:如果check约束中的条件与表中的索引有冲突,那么该约束可能不会起作用。数据导入问题:如果在插入或更新数据时,没有触发check约束的条件
mysql中check约束不起作用的原因有哪些
2024-04-09

编程热搜

目录