• SQLite进阶-10.约束


    约束

    约束是作用于数据表中列上的规则,用于限制表中数据的类型。约束的存在保证了数据库中数据的精确性和可靠性。
    约束可以是列级或表级,列级约束作用于单一的列,而表级约束作用于整张数据表。

    SQLite中常见的约束:

    • NOT NULL 约束:确保某列不能有NULL值。
    • DEFAULT 约束:当某列没有插入值时,为该列提供默认值。
    • UNIQUE 约束:确保某列中的所有值是不同的。
    • PRIMARY KEY 约束:唯一标识数据库表中的数据。
    • FOREIGN KEY 约束:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
    • CHECK 约束:确保某列中的所有值满足一定条件。

    NOT NULL 约束

    默认情况下,列可以保存 NULL 值。如果您不想某列有 NULL 值,那么需要在该列上定义此约束,指定在该列上不允许 NULL 值。

    NULL 与没有数据是不一样的,它代表着未知的数据。

    -- 实例
    CREATE TABLE link_men (
        ID INT PRIMARY KEY      NOT NULL;
        NAME           TEXT     NOT NULL
    )
    
    

    DEFAULT 约束

    DEFAULT 约束在 INSERT INTO 语句没有提供一个特定的值时,为列提供一个默认值。

    -- 实例
    CREATE TABLE link_men(
        ID INT PRIMARY KEY      NOT NULL;
        NAME           TEXT     NOT NULL;
        ADDRESS        TEXT     NOT NULL;
        SALARY         REAL     DEFAULT 8000.00
    )
    

    UNIQUE 约束

    UNIQUE 约束防止在一个特定的列存在两个记录具有相同的值。

    -- 实例
    CREATE TABLE link_men(
        ID INT PRIMARY KEY      NOT NULL;
        NAME           TEXT     NOT NULL;
        AGE            INT      NOT NULL UNIQUE;
        ADDRESS        TEXT;
        SALARY        REAL DEFAULT 8000.00
    )
    
    

    PRIMAY KEY 约束

    PRIMARY KEY 约束唯一标识数据库表中的每条记录。
    主键必须包含唯一的值。
    主键列不能包含 NULL 值。
    每个表都应该有一个主键,并且每个表只能有一个主键。

    -- 实例
    CREATE TABLE link_men(
        ID INT PRIMARY KEY      NOT NULL;
        NAME           TEXT     NOT NULL;
        AGE            INT      NOT NULL UNIQUE;
        ADDRESS        TEXT;
        SALARY       , REAL DEFAULT 8000.00
    )
    
    

    FOREIGN KEY 约束

    一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

    -- 实例
    CREATE TABLE link_men (
        ID INT PRIMARY KEY     NOT NULL;
        NAME           TEXT    NOT NULL;
        AGE            INT     NOT NULL UNIQUE;
        ADDRESS        TEXT;
        SALARY         REAL DEFAULT 8000.00;
        FOREIGN KEY (P_ID) REFERENCES persons(P_ID);
    )
    

    CHECK 约束

    CHECK 约束启用输入一条记录要检查值的条件。如果条件值为 false,则记录违反了约束,且不能输入到表。

    CREATE TABLE link_men(
       ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        TEXT,
       SALARY         REAL    CHECK(SALARY > 0)
    );
    
  • 相关阅读:
    Julia
    《风控策略笔记》之风控审批策略(三)--量化指标与策略调优
    《风控策略笔记》之风控审批策略(二)--决策引擎与策略调优
    《风控策略笔记》之风控审批策略(一)--前言与审批策略架构搭建和数据源
    schannel: next InitializeSecurityContext failed: SEC_E_ILLEGAL_MESSAGE错误
    从 kswapd0 进程CPU占用过高 到计算机内存详解
    pandas窗口函数--rolling
    请求行与相应行
    URI与URN与URL详解
    mysql索引详解
  • 原文地址:https://www.cnblogs.com/haitao130v/p/11334389.html
Copyright © 2020-2023  润新知