📜  sql constarint - SQL (1)

📅  最后修改于: 2023-12-03 14:47:34.774000             🧑  作者: Mango

SQL Constraint - SQL 约束

在关系型数据库系统中,SQL(Structured Query Language)约束是用于保持数据完整性和一致性的规则。约束规定了数据库表中的数据必须满足的条件。当数据违反约束条件时,系统将阻止对表的更新或插入操作。

常见的 SQL 约束有以下几种类型:

  1. 主键约束(Primary Key Constraint):确保表中的某一列或一组列唯一标识每一行数据的值。主键约束会自动创建索引,以提高查询性能。

    CREATE TABLE employees (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        age INT
    );
    
  2. 外键约束(Foreign Key Constraint):用于建立表之间的关联关系。外键约束将一个表的字段与另一个表的主键或唯一键进行关联,保证数据的完整性和一致性。

    CREATE TABLE orders (
        order_id INT PRIMARY KEY,
        product_id INT,
        customer_id INT,
        FOREIGN KEY (product_id) REFERENCES products(id),
        FOREIGN KEY (customer_id) REFERENCES customers(id)
    );
    
  3. 唯一约束(Unique Constraint):确保表中的某一列或一组列的值是唯一的,允许包含空值。一个表可以有多个唯一约束。

    CREATE TABLE students (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        email VARCHAR(100) UNIQUE
    );
    
  4. 非空约束(Not Null Constraint):确保表中的某一列的值不为空。

    CREATE TABLE books (
        id INT PRIMARY KEY,
        title VARCHAR(100) NOT NULL,
        author VARCHAR(100) NOT NULL
    );
    
  5. 检查约束(Check Constraint):定义了列中允许的值的范围或条件。检查约束可以是简单的比较操作,也可以是复杂的表达式。

    CREATE TABLE products (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        price DECIMAL(10,2),
        CHECK (price > 0)
    );
    
  6. 默认约束(Default Constraint):为表中的某一列指定默认值。

    CREATE TABLE employees (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        joining_date DATE DEFAULT CURRENT_DATE
    );
    

以上是 SQL 中常见的约束类型,通过使用这些约束,我们可以保证数据库的数据完整性和一致性。