目录

  • 参考源
  • SQL check 约束
  • 示例数据
  • create table 添加 check 约束
  • 多个字段添加约束
  • 给 check 约束命名
  • alter table 时的 SQL check 约束
  • 删除 check 约束
    • SQL Server / Oracle / MS Access
    • MySQL
  • 建议

参考源

  • 简单教程

    • https://www.twle.cn/l/yufei/sql/sql-basic-check.html
  • 菜鸟教程
    • https://www.runoob.com/sql/sql-check.html

SQL check 约束

SQL check 约束用于限制列中的值的范围

check 约束既可以用于某一列也可以用于某张表:

  1. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值
  2. 如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制

示例数据

CREATE DATABASE IF NOT EXISTS hardy_db default character set utf8mb4 collate utf8mb4_0900_ai_ci;USE hardy_db;DROP TABLE IF EXISTS lesson;

create table 添加 check 约束

创建表结构时可以使用 check 关键字给表或者字段添加 check 约束

  1. 例如在创建 lession 表时可以给 id 字段加上一个大于 0 的 约束
    MySQL

    CREATE TABLE lesson (id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,name varchar(32) default '',views int(11) NOT NULL default '0',created_at DATETIME,CHECK ( id > 0 )
    );
    

    SQL Server / Oracle / MS Access

    CREATE TABLE lesson (id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT CHECK ( id>0 ),name varchar(32) default '',views int(11) NOT NULL default '0',created_at DATETIME
    );
    

多个字段添加约束

如果想给一个表中多个字段添加约束,直接在check关键字后的括号内添加,每个约束使用 and连接

CREATE TABLE lesson (id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,name varchar(32) default '',views int(11) NOT NULL default '0',created_at DATETIME,CHECK ( id >0  AND views >= 0 );
);

给 check 约束命名

CREATE TABLE lesson (id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,name varchar(32) default '',views int(11) NOT NULL default '0',created_at DATETIME,CONSTRAINT chk_lesson_id CHECK ( id > 0 )
);

alter table 时的 SQL check 约束

ALTER TABLE lesson ADD CHECK (id>0);

命名

ALTER TABLE lesson ADD CONSTRAINT chk_lesson CHECK (id > 0 AND views >= 0);

删除 check 约束

如果想要删除 check 约束,可以使用 alter table ... drop 关键字

SQL Server / Oracle / MS Access

ALTER TABLE lesson DROP CONSTRAINT chk_lesson_id;

MySQL

ALTER TABLE lesson DROP CHECK chk_lesson_id

建议

虽然各个数据库系统都可以添加 check 约束,但不推荐这么做,因为这会影响数据插入和更新的速度

SQL学习之check约束相关推荐

  1. SQL语法之 CHECK 约束

    SQL学习 学习SQL语法 SQL语法 SQL学习 SQL语法之 CHECK 约束 SQL CHECK Constraint on CREATE TABLE SQL CHECK Constraint ...

  2. sql学习-Constraints(约束)(primary key、 foreign key、check、default)

    CONSTRAINTS 约束 介绍 SQL 约束用于规定表中的数据规则. 如果存在违反约束的数据行为,行为会被约束终止. 约束可以在创建表时规定(通过 CREATE TABLE 语句): 或者在表创建 ...

  3. oracle check 日期大于,sql – 出生日期的CHECK约束?

    检查约束必须是确定性的.也就是说,特定行必须始终满足约束,否则它必须始终无法满足约束.但是,由于返回值不断变化,因此SYSDATE本质上是不确定的.因此,您无法定义调用SYSDATE或任何其他用户定义 ...

  4. 五、SQL–索引/约束④(check约束)

    CHECK约束会: 检查输入到记录中的值是否满足一个条件,如果不满足这个条件则对数据库做的修改不会成功. 如,一个人的年龄是不可能为负数的,一个人的入学日期不可能早于出生日期,出厂月份不可能大于12. ...

  5. mysql代码check约束_CHECK约束(示例代码)

    CHECK约束会检查输入到记录中的值是否满足一个条件,如果不满足这个条件则对数据库做的修改不会成功.比如,一个人的年龄是不可能为负数的,一个人的入学日期不可能早于出生日期,出厂月份不可能大于12.可以 ...

  6. Java面向对象系列[v1.0.0][SQL语法之数据库约束]

    数据库约束 所有关系型数据库都支持对数据表使用约束,在表面上是强制执行的数据校验规则,通过约束可以更好的的保证数据表里数据的完整性 大部分数据库支持5中完整性约束 NOT NULL:非空约束,指定某列 ...

  7. 在SQL和ERWIN中用自定义类型、规则和默认值实现check约束从而保证数据的完整性...

    ========================================================= /*创建一个名为list的规则,这条规则表明变量只能取0和1两个值*/ CREATE ...

  8. SQL研习录(24)——CHECK约束

    SQL研习录(24)--CHECK约束 版权声明 一.CHECK约束 1.基本语法 版权声明 本文原创作者:清风不渡 博客地址:https://blog.csdn.net/WXKKang 一.CHEC ...

  9. SQL CHECK 约束

    SQL CHECK 约束 CHECK 约束用于限制列中的值得范围. 如果对单个定于的CHECK 约束,那么该列只允许特定的值. 如果对一个表定于CHECK 约束,那么此约束会基于行中其他列的值在特定的 ...

最新文章

  1. 漫谈Google Percolator分布式事务
  2. 归来吧,haproxy
  3. python经典案例-Python3经典100例(①)
  4. 重庆三峡学院计算机应用技术,重庆三峡学院 数学与计算机学院 刘福明老师简介 联系方式 手机电话 邮箱...
  5. Spring Boot——Spring Session Redis整合Spring Security时错误【RedisConnectionFactory is required】解决方案
  6. 从bsp redirect到ui5_ui5
  7. rabbitmqBat常用指令
  8. Go语言实战-nginx日志处理
  9. Python数据分析《黑客帝国》-一切都不是偶然
  10. [工具]TS 视频合并工具
  11. 时间的几种格式以及它们之间的相互转换 (js)
  12. linux上的smartsvn图形客户端,linux 下svn图形客户端smartsvn 安装
  13. 安卓TV应用 Hello Word - 怎样新建一个Android TV 项目
  14. 校园网使用家用无线路由器
  15. GDOI2021赛后总结高一赛季总结
  16. 你所不知的Redis三个特殊类型
  17. Day28 49. 丑数
  18. 2021全国电设(F题)openmv的图像识别之数字识别
  19. 学会如何从皮肤看身体状况
  20. Spring Security使用(三) 安全框架内使用QQ登录以及不加安全框架使用QQ登录

热门文章

  1. com.github.abel533.mapper插件使用报错,求助!!!
  2. Spring boot自定义拦截器和拦截器重定向配置简单介绍~!
  3. 算法导论笔记:12二叉搜索树
  4. Shopee大规模毁约offer,今年的大厂装都不装了
  5. Android实战技巧之四十 Android5 1 1源代码编译与烧写
  6. PY爬取2020年电影票房排行
  7. 安装QT5 出现错误 unkown type name ‘QApplication’ unkown type name ‘MainWindow’
  8. 虚拟机装的XP,无法上网,因为没有安装网卡驱动,怎么解决
  9. 一看就懂的JS抽象语法树
  10. 创业第一步做什么?——走出自己的“舒适区”