• Mysql--约束


    一、 约束的含义和分类
    1.1约束的含义:是一种限制,用于限制表中的数据,保证数据的完整性和一致性。
    1.2约束的分类:
    ①not null:非空,保证字段不能为空。违反约束不会报错,但是会有警告,适用于说有的类型。
    ②default:默认约束,当数据插入的时候,指定的字段如果没有数据插入,即插入默认值。
    ③primary key:主键,保证字段具有唯一性,并且非空,等价于唯一+非空的组合。
    ④unique:唯一,用于保证字段的唯一性,可以为空。
    ⑤check:检查约束,mysql不支持。
    ⑥foreign key:外键约束,用于约束两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表的添加的外键约束,用于引用主表中某列的值。
    1.3添加约束
    列级约束:语法上六大约束都支持,但是外键约束没有效果。【mysql不支持检查约束】
    表级约束:除了非空和默认,其他都支持。
    添加时机:创建表时、修改表时。
    二、 唯一约束和主键约束比较、外键解析
    1.主键唯一键的比较

    2.外键解析
    ①在从表设置外键关系
    ②从表的外键列的类型和主表的关联列类型要求一致或者兼容
    ③主表的关联列必须是一个key,主键或者是唯一键
    ④插入数据的时候,先插入主表,然后插入从表
    ⑤删除数据的时候,先删除从表,再删除主表
    三、 创建表时添加约束
    语法概述:
    Create table 表名(
    字段名 字段类型 列级约束,
    字段名 字段类型,
    表级约束
    )
    1.添加列级约束
    ①在字段类型之后直接添加,可以有多个直接加空格隔开
    ②支持:默认、主键、唯一、非空


    列级约束不能将外键约束添加成功。
    2.添加表级约束
    【constraint 约束名】 添加约束名字,是可选的。



    ①主键的命名失效,主键名字只能是primary
    ②外键添加成功,别名也成功添加
    ③check 检查约束,mysql不支持
    3.约束的通用写法


    四、修改表时添加约束
    1.添加列级约束
    alter table 表名 modify column 字段名 字段类型 新约束
    2.添加表级约束a
    alter table 表名 add [constraint 约束名] 约束类型(字段名) [外键的引用]



    [1]添加非空约束
    alter table userchen modify column userchen varchar(20) not null;

    [2]添加默认约束

    [3]添加主键

    [4]添加唯一约束

    [5]添加外键【表级约束】

    五、删除约束
    [1]删除非空约束

    [2]删除默认约束

    [3]删除主键

    [4]删除唯一键

    [5]删除外键

    六、级联删除


    情况一、当删除父类数据时,对应从表的数据也将被删除


    情况二、级联删除置null

  • 相关阅读:
    用sed删除文件中指定行
    传输文件到docker容器
    RAID技术全解图解-RAID0、RAID1、RAID5、RAID100
    Best PDF Document Viewers for Linux Systems
    nvidia docker install
    cuda apt install
    Ubuntu16_18建立返回桌面、显示桌面的快捷图标的特殊方法
    Linux Shell sort排序常用命令
    linux cut用法
    DispatcherServlet的作用
  • 原文地址:https://www.cnblogs.com/rootcz/p/9379526.html
Copyright © 2020-2023  润新知