• P09 约束


    系统:Win10
    Java:1.8.0_333
    IDEA:2020.3.4
    MySQL:8.0.30
    Gitee:https://gitee.com/lijinjiang01/JavaWeb

    1.概念 & 分类

    1.1 约束的概念

    约束是作用于表中列上的规则,用于限制加入表的数据
    约束的存在保证了数据库中数据的正确性、有效性和完整性

    1.2 约束的分类

    约束名称描述关键字
    非空约束保证列中所有数据不能有 null 值NOT NULL
    唯一约束保证列中所有数据各不相同UNIQUE
    主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
    检查约束保证列中的值满足某一条件CHECK
    默认约束保存数据时,未指定值则采用默认值DEFAULT
    外键约束外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY

    提示:MySQL 不支持检查约束

    2.非空约束

    概念:非空约束用于保证列中所有数据不能有 NULL 值
    语法:

    1. 创建表时添加非空约束
    -- 创建表时添加非空约束
    CREATE TABLE (
        列名 数据类型 NOT NULL,
        ...
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 建完表后添加非空约束
    -- 建完表后添加非空约束
    ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
    
    • 1
    • 2
    1. 删除约束
    ALTER TABLE 表名 MODIFY 字段名 数据类型;
    
    • 1

    3.唯一约束

    概念:唯一约束用于保证列中所有数据各不相同
    语法:

    1. 创建表时添加唯一约束
    -- 创建表时添加唯一约束
    CREATE TABLE (
        列名 数据类型 UNIQUE [AUTO_INCREMENT],
        -- AUTO_INCREMENT:当不指定值时自动增长
        ...
    );
    CREATE TABLE (
      列名 数据类型,
      ...
      [CONSTRAINT] [约束名称] UNIQUE(列名)  
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    1. 建完表后添加唯一约束
    -- 建完表后添加唯一约束
    ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;
    
    • 1
    • 2
    1. 删除约束
    ALTER TABLE 表名 DROP INDEX 字段名;
    
    • 1

    4.主键约束

    概念:主键是一行数据的唯一标识,要求非空且唯一
    一张表只能有一个主键
    语法:

    1. 创建表时添加主键约束
    -- 创建表时添加主键约束
    CREATE TABLE (
        列名 数据类型 PRIMARY KEY [AUTO_INCREMENT],
        ...
    );
    CREATE TABLE (
      列名 数据类型,
      ...
      [CONSTRAINT] [约束名称] PRIMARY KEY(列名)  
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. 建完表后添加主键约束
    -- 建完表后添加主键约束
    ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
    
    • 1
    • 2
    1. 删除约束
    ALTER TABLE 表名 DROP PRIMARY KEY;
    
    • 1

    5.默认约束

    概念:保存数据时,未指定值则采用默认值
    语法:

    1. 创建表时添加默认约束
    -- 创建表时添加默认约束
    CREATE TABLE (
        列名 数据类型 DEFAULT 默认值,
        ...
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 建完表后添加默认约束
    -- 建完表后添加默认约束
    ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;
    
    • 1
    • 2
    1. 删除约束
    ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;
    
    • 1

    6.外键约束

    概念:外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性
    语法:

    1. 创建表时添加外键约束
    -- 创建表时添加外键约束
    CREATE TABLE (
      列名 数据类型,
      ...
      [CONSTRAINT] [外键名称] FOREIGN KEY (外键列名) REFERENCES 主表(主表列名)
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 建完表后添加外键约束
    -- 建完表后添加外键约束
    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
    
    • 1
    • 2
    1. 删除约束
    ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
    
    • 1
  • 相关阅读:
    Ansible上通过roles简化playbook演示介绍
    计算机毕业设计 旅游出行指南系统 Vue+SpringBoot+MySQL
    k3s 上的 kube-ovn 轻度体验
    【NET全栈开发】几分钟搞个前端后端分离APIcurd 增删改查项目
    脚手架安装
    架构师日常(二)
    java毕业设计Car易达租车系统mybatis+源码+调试部署+系统+数据库+lw
    AI绘画关键词:小龙女
    Ax=y,Ax=0以及非线性方程组的最小二乘解
    GitHub配置SSH key
  • 原文地址:https://blog.csdn.net/qq_35132089/article/details/126964973