CHECK

简介: 【11月更文挑战第15天】

SQL CHECK 约束详解

CHECK 约束在 SQL 中用于限制列中的数据值,确保它们满足特定的条件。这个约束可以应用于单个列或整个表。对于单个列,CHECK 约束限制列只能包含满足特定条件的值。对于整个表,CHECK 约束可以基于行中其他列的值来限制特定列的值。

特点和使用场景

  • 数据验证CHECK 约束用于验证数据,确保数据符合业务规则或逻辑。
  • 复杂条件:可以定义复杂的条件来限制数据值,例如年龄必须在18到65之间,或者折扣率必须在0到100之间。
  • 跨列约束:可以基于多个列的值来定义约束条件。

SQL CHECK 约束语法

在创建表时,可以为特定列或整个表定义 CHECK 约束:

CREATE TABLE table_name
(
    column1 data_type CHECK (condition1),
    column2 data_type CHECK (condition2),
    ...
);

或者,为整个表定义一个 CHECK 约束:

CREATE TABLE table_name
(
    column1 data_type,
    column2 data_type,
    ...
    CHECK (综合条件)
);
  • table_name:新表的名称。
  • column1, column2:列的名称。
  • data_type:列的数据类型。
  • CHECK (condition):定义约束条件。

代码示例

假设我们正在创建一个名为 Persons 的表,其中包含人的 ID、年龄和职业状态。我们希望确保 P_Id 列只包含大于0的整数,并且年龄在18到100之间。

CREATE TABLE Persons
(
    P_Id int CHECK (P_Id > 0),
    Age int CHECK (Age BETWEEN 18 AND 100),
    Profession varchar(255)
);

在这个例子中:

  • P_Id 列被定义了一个 CHECK 约束,确保 P_Id 的值必须大于0。
  • Age 列也被定义了一个 CHECK 约束,确保年龄在18到100岁之间。
目录
相关文章
|
3月前
|
网络安全
出现“Host key verification failed”错误--解决
遇到“Host key verification failed”错误,通常是因为远程主机密钥发生变化,与本地保存的信息不符。这种情况可能是远程主机系统更改或重装等原因导致的。解决方法是根据提示使用`ssh-keygen -f "/root/.ssh/known_hosts" -R "[10.61.0.152]:29022"`命令移除旧的密钥信息,然后重新尝试连接。
723 5
|
5月前
|
Linux 开发工具
You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofi
linux配置环境变量操作失误出现:/usr/libexec/grepconf.sh: line 5: grep: command not found 的解决办法
187 2
|
6月前
|
Java
【ERROR】‘<>‘ operator is not allowed for source level below 1.7
【ERROR】‘<>‘ operator is not allowed for source level below 1.7
70 0
|
7月前
|
应用服务中间件 Python 容器
ERROR [ntContainer#0-1] o.s.a.r.l.SimpleMessageListenerContainer 1917: Failed to check/redeclare aut
ERROR [ntContainer#0-1] o.s.a.r.l.SimpleMessageListenerContainer 1917: Failed to check/redeclare aut
263 0
|
网络安全 Docker 容器
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
127 0
|
程序员 Go API
译|Don’t just check errors, handle them gracefully(一)
译|Don’t just check errors, handle them gracefully
83 0
|
Java Go API
译|Don’t just check errors, handle them gracefully(二)
译|Don’t just check errors, handle them gracefully(二)
100 0
|
Java Android开发
is not allowed for source level below 1.7 的解决办法
is not allowed for source level below 1.7 的解决办法
200 0
|
C语言
[Error] ‘for‘ loop initial declarations are only allowed in C99 or C11 mode 解决方法
[Error] ‘for’ loop initial declarations are only allowed in C99 or C11 mode [Note] use option -std=c99,-std=gnu99,-std=c11 or-std=gnu11 to compile your code
1514 0
[Error] ‘for‘ loop initial declarations are only allowed in C99 or C11 mode 解决方法
|
关系型数据库 网络虚拟化