zoukankan      html  css  js  c++  java
  • MySql的约束

    数据库约束的作用

    对表中的数据进行进一步的限制,保证数据的正确性有效性完整性

    约束种类

    • PRIMARY KEY: 主键约束

    主键的作用

      通过主键可以唯一的确定一条记录。

    主键的特点

      非空,唯一。

    • UNIQUE: 唯一约束

    唯一约束的作用

      使该字段的值不重复。

    唯一约束的特点

          字段值不重复。

    • NOT NULL: 非空约束

    非空约束的作用

      该字段的值不能为空。

    非空约束的特点

      字段的值不能为空。

    • DEFAULT: 默认值约束

    默认值约束的作用

      如果不指定该字段的值就用默认值。

    默认值约束的特点

      指定默认值。

    • FOREIGN KEY: 外键约束

        什么是外键约束

    一张表的某个字段,引用另一张表的主键

    主表: 主键所在的表,约束别人的表,将数据给别人用 副表/从表: 外键所在的表,被约束的表,使用别人的数据

    创建外键

      

    CREATE TABLE 表名 (
        字段名 字段类型,
        字段名 字段类型,
        CONSTRAINT [外键名] FOREIGN KEY(外键的字段名) REFERENCE 主表(主键)
    );

      已有表添加外键约束:ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名)

        外键的联级

          当引用外键约束的时候,如果从表有使用主表的数据(如id),主表的id不能直接进行删除或者修改的操作,需要先把从表的引用的数据更新或者删除后

        才能操作。

          在修改和删除主表的主键时,同时更新或删除副表的外键值,称为级联操作 ON UPDATE CASCADE -- 级联更新,主表更新时,从表跟着更新 ON DELETE CASCADE -- 级联删除,主表删除是,从表跟着删除。

        如:

    CREATE TABLE employee (
        id INT PRIMARY KEY AUTO_INCREMENT,
        NAME VARCHAR(30),
        age INT,
        dep_id INT,
        -- 添加外键约束,并且添加级联更新和级联删除
        CONSTRAINT employee_dep_fk FOREIGN KEY (dep_id) REFERENCES department(id) ON UPDATE CASCADE ON DELETE CASCADE
    );

     

    扩展:

    主键唯一,非空,普通的字段我们也可以添加唯一和非空.有区别吗?

    1.一个表只能有一个主键,一个表可以让多个字段添加非空和唯一。

    2.主键可以自动增长,普通非空唯一字段不能自动增长。

     

  • 相关阅读:
    js识别键盘操作
    抽奖活动 算法设计
    Eureka 配置项说明
    manjaro 更新chrome报签名错误
    manjaro系统上使用asdf安装php注意事项
    Failed to load config "react-app" to extend from.
    YarnV2 install
    银河麒麟安装达梦数据库失败Unable to load native library: libnsl.so.1: cannot open shared object file: No such file or directory
    Net5中使用Swagger
    编译Windows 版本的Redis 6.x
  • 原文地址:https://www.cnblogs.com/mengjialian/p/12523010.html
Copyright © 2011-2022 走看看