首页 > 数据库 >【SQL数据库技术开发】第34课时-数据库SQL CHECK 约束

【SQL数据库技术开发】第34课时-数据库SQL CHECK 约束

时间:2024-09-09 08:57:56浏览次数:7  
标签:约束 varchar 数据库 34 SQL Id CHECK 255

SQL CHECK 约束


SQL CHECK 约束

CHECK 约束用于限制列中的值的范围。

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。


CREATE TABLE 时的 SQL CHECK 约束

下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 CHECK 约束。CHECK 约束规定 "P_Id" 列必须只包含大于 0 的整数。

MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

如需命名 CHECK 约束,并定义多个列的 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)


ALTER TABLE 时的 SQL CHECK 约束

当表已被创建时,如需在 "P_Id" 列创建 CHECK 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (P_Id>0)

如需命名 CHECK 约束,并定义多个列的 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')


撤销 CHECK 约束

如需撤销 CHECK 约束,请使用下面的 SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person

标签:约束,varchar,数据库,34,SQL,Id,CHECK,255
From: https://blog.csdn.net/xzs51job/article/details/142042398

相关文章

  • 【SQL数据库技术开发】第41课时-数据库SQL Date 函数
    SQL Date 函数SQL日期(Dates)当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要您的数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间部分,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的......
  • 多连接数据库管理工具Navicat Premium 16 for Mac
    NavicatPremium16forMac是一款功能强大且易于使用的多连接数据库管理工具。软件下载地址一、主要功能无缝数据迁移:数据传输、数据同步和结构同步功能可助力轻松、快速地迁移数据,降低开销。提供跨各种数据库管理系统(DBMS)传输数据的详细分步指导。可比较和同步数据库,在......
  • UNIQUE VISION Programming Contest 2023 Christmas (AtCoder Beginner Contest 334)
    A-ChristmasPresent题目大意给定两个正整数\(B,G\)(\(1\leB,G\le1000\)且\(B\neG\)),判断哪个更大。分析模拟即可。代码#include<cstdio>usingnamespacestd;intmain(){ intb,g; scanf("%d%d",&b,&g); puts(b>g?"Bat":&qu......
  • [MySQL表的增删改查-进阶]
    ......
  • MySQL---1、初始MySQL数据库
    一、什么是数据库(一)数据库简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合(二)数据库管理系统......
  • MySQL索引学习记录(创建、删除、优缺点、底层结构、生失效原则等等)
    1.认识索引1.什么是索引MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。将数据......
  • 高校就业管理系统|全套源码+文章lw+毕业设计+课程设计+数据库+ppt
    高校就业管理系统|全套源码+文章lw+毕业设计+课程设计+数据库+ppt中文摘要本论文主要讲述了基于SSM框架及MySQL数据库实现的就业管理系统的设计和开发过程。本论文中所讲的就业管理系统是通过所学的知识创办一个非商业性的网站平台,使所有想要就业信息查看的高校毕业生们与......
  • 租赁|基于SpringBoot的网上租赁系统(源码+数据库+论文)
    基于SpringBoot的网上租赁系统目录一、摘要二、相关技术三、系统设计                 3.1整体功能设计图                 3.2功能具体细节设计   四、数据库设计  五、核心代码   六、论文参考 七、源码获取:一、......
  • 代码随想录算法训练营,9月7日 | 150. 逆波兰表达式求值,239. 滑动窗口最大值,347.前 K 个
    150.逆波兰表达式求值题目链接:150.逆波兰表达式求值文档讲解︰代码随想录(programmercarl.com)视频讲解︰逆波兰表达式求值日期:2024-09-07想法:用栈解决,遇到运算符取前两个数字计算(表达式总是成立的,不用做额外的判定)Java代码如下:classSolution{publicintevalRPN(Stri......
  • MySQL面试笔试题(基础题)
     1、取得每个部门最高薪水的人员的名称selectenamefromempe,(selectdeptno,max(sal)max_salfromempgroupbydeptno)each_dept_max_salwheree.deptno=each_dept_max_sal.deptnoande.sal=each_dept_max_sal.max_sal;2、哪些人的薪水在部门的平均薪水之上select......