• 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.主键可以自动增长,普通非空唯一字段不能自动增长。

     

  • 相关阅读:
    RabbitMq、ActiveMq、ZeroMq 和 kafka 比较
    Mysql:The table‘xxxx’is full
    忘记了MariaDB root密码的解决办法
    在CentOS 7 MySQL / MariaDB
    SQL批量删除与批量插入
    org.springframework.web.servlet.PageNotFound No mapping found for HTTP request with URI [/AssetRepair/assetRepairController/test.do] in DispatcherServlet with name 'assetrepair'
    <spring:message> 标签
    Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
    实现JMS规范的ActiveMQ
    常见消息队列协议总结
  • 原文地址:https://www.cnblogs.com/mengjialian/p/12523010.html
Copyright © 2020-2023  润新知