📜  SQL |约束(1)

📅  最后修改于: 2023-12-03 15:35:05.605000             🧑  作者: Mango

SQL约束

在SQL中,约束是指用于限定表中数据的规则。这些规则可以是列的数据类型、主键、唯一性、检查约束和外键。本文将会讲解这些不同类型的约束以及如何在SQL中应用它们。

数据类型

在创建表时,必须为每个列指定数据类型,以确保只有正确类型的数据可以存储在表中。以下是一些通用的数据类型:

  • INT:整数类型
  • FLOAT:浮点类型
  • CHAR:字符类型
  • VARCHAR:可变长度字符类型
  • DATE:日期类型

例如,以下代码片段创建一个具有两个列的表,其中一个列具有整数类型,另一个列具有文本类型。

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);

在此示例中,我们使用INT数据类型创建主键列,并使用VARCHAR创建存储名称的列。我们还使用NOT NULL约束确保name列中的每个行都包含值。

主键约束

主键约束用于定义表中唯一标识每个行的列。主键列的值不能重复,且不能为NULL。以下是使用主键约束创建表的示例:

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);

在此示例中,我们使用PRIMARY KEY约束定义了id列。这意味着每个行都有唯一的ID号,并且id列不能为NULL。

唯一性约束

唯一性约束用于确保表中的列值唯一。与主键约束不同,唯一性约束允许NULL值。以下是创建唯一性约束的示例:

CREATE TABLE users (
    id INT PRIMARY KEY,
    email VARCHAR(50) UNIQUE,
    name VARCHAR(50) NOT NULL
);

在此示例中,我们在email列上定义了UNIQUE约束,确保每个行的值都是唯一的。该约束允许NULL值。

检查约束

检查约束用于确保添加到表中的每个行都符合指定的条件。以下是使用检查约束的示例。

CREATE TABLE users (
    id INT PRIMARY KEY,
    email VARCHAR(50) UNIQUE,
    age INT CHECK(age >= 18),
    name VARCHAR(50) NOT NULL
);

在此示例中,我们使用CHECK约束检查年龄列是否 >=18。

外键约束

外键约束用于确保引用其他表的表中的列值始终有效。以下是使用外键约束的示例。

CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT,
    amount FLOAT,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

在此示例中,我们使用FOREIGN KEY约束与REFERENCES子句定义了user_id列。这表示该列是外键,它引用了users表中的id列。

结论

SQL约束用于限制表中的数据,这能够使表保持一致性和完整性。可以使用数据类型、主键、唯一性、检查和外键约束。了解这些约束的使用可以帮助我们打造更加规范有效的SQL数据库。

参考文献