前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Constraints

Constraints

原创
作者头像
Yolo-Yolo
发布2024-11-14 09:59:12
170
发布2024-11-14 09:59:12

SQL 约束(Constraints)是用于确保数据库中数据准确性和可靠性的一种机制。它们定义了表中数据的规则和限制,帮助维护数据的完整性。以下是一些常用的 SQL 约束类型及其详细说明:

1. PRIMARY KEY(主键)

  • 唯一标识表中的每一行。
  • 不能包含 NULL 值。
  • 一个表中只能有一个主键。

2. FOREIGN KEY(外键)

  • 用于建立两个表之间的关系。
  • 外键列的值必须在关联表的主键中存在,或者为 NULL。

3. UNIQUE(唯一)

  • 保证列中的所有值都是不同的。
  • 可以有 NULL 值。

4. NOT NULL(非空)

  • 确保列不能包含 NULL 值。

5. CHECK(检查)

  • 用于确保列中的值满足特定的条件。

6. DEFAULT(默认值)

  • 指定列在没有提供值时的默认值。

SQL CREATE TABLE + CONSTRAINT 语法

以下是创建表时使用约束的语法:

代码语言:javascript
复制
sqlCREATE TABLE table_name
(
    column_name1 data_type(size) CONSTRAINT constraint_name1 constraint_type,
    column_name2 data_type(size) CONSTRAINT constraint_name2 constraint_type,
    column_name3 data_type(size) CONSTRAINT constraint_name3 constraint_type,
    ...
);
  • table_name:新表的名称。
  • column_name:列的名称。
  • data_type:数据类型。
  • size:数据类型的大小(对于某些数据类型是必需的)。
  • CONSTRAINT:定义约束的关键字。
  • constraint_name:约束的名称。
  • constraint_type:约束的类型,如 PRIMARY KEY、FOREIGN KEY 等。

代码示例

假设我们正在创建一个名为 employees 的表,其中包含员工的 ID、姓名和部门 ID。我们将为这个表添加一些约束:

代码语言:javascript
复制
sqlCREATE TABLE employees
(
    employee_id INT CONSTRAINT pk_employee PRIMARY KEY,
    first_name VARCHAR(50) CONSTRAINT nn_first_name NOT NULL,
    last_name VARCHAR(50) CONSTRAINT nn_last_name NOT NULL,
    department_id INT CONSTRAINT fk_department FOREIGN KEY REFERENCES departments department_id
);

在这个例子中:

  • employee_id 是主键,使用 PRIMARY KEY 约束。
  • first_namelast_name 都不能包含 NULL 值,使用 NOT NULL 约束。
  • department_id 是外键,引用了 departments 表中的 department_id,使用 FOREIGN KEY 约束。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. PRIMARY KEY(主键)
  • 2. FOREIGN KEY(外键)
  • 3. UNIQUE(唯一)
  • 4. NOT NULL(非空)
  • 5. CHECK(检查)
  • 6. DEFAULT(默认值)
  • SQL CREATE TABLE + CONSTRAINT 语法
  • 代码示例
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档