zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    洛谷P3768 简单的数学题 【莫比乌斯反演 + 杜教筛】
    13.1.2 拷贝赋值运算符、析构函数、三/五法则、阻止拷贝
    拷贝构造函数和深拷贝例子
    拷贝构造函数和深拷贝例子
    动态数组、allocator 类
    智能指针和异常、 weak_ptr、unique_ptr
    12.动态内存和智能指针、 直接管理内存、shared_ptr和new结合使用
    8.2 文件输入输出
    7.3 类的其他特性 笔记
    8.1.1 IO
  • 原文地址:https://www.cnblogs.com/rootcz/p/9379526.html
Copyright © 2011-2022 走看看