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),
    ...
);
AI 代码解读

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

CREATE TABLE table_name
(
    column1 data_type,
    column2 data_type,
    ...
    CHECK (综合条件)
);
AI 代码解读
  • 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)
);
AI 代码解读

在这个例子中:

  • P_Id 列被定义了一个 CHECK 约束,确保 P_Id 的值必须大于0。
  • Age 列也被定义了一个 CHECK 约束,确保年龄在18到100岁之间。
目录
打赏
0
5
5
3
1190
分享
相关文章
问题:ERROR 1819 (HY000) Your password does not satisfy the current policy requirements
问题:ERROR 1819 (HY000) Your password does not satisfy the current policy requirements
71 0
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements问题处理
【5月更文挑战第8天】ERROR 1819 (HY000): Your password does not satisfy the current policy requirements问题处理
1453 2
【已解决】WARNING: Ignoring invalid distribution xxx
【已解决】WARNING: Ignoring invalid distribution xxx
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
116 2
WARNING: Re-reading the partition table failed with error 22: Invalid argument
在划分磁盘分区时,遇到错误“WARNING: Re-reading the partition table failed with error 22: Invalid argument” 如下所示: [root@DB-Server u02]# fdisk -l   Disk /dev/sda: 500.
2572 0