• SQL——约束


    环境

      DBMS:MySQL 8.0.17

      工具:Navicat Premium 11.2.16

    概述

      约束是指对当前字段的数据的限制条件。常见的约束有:非空约束、default约束、唯一约束、check约束、主键约束和外键约束。

    非空约束

      定义了非空约束的字段的数据不能取空值。

    default约束

      定义了default约束的字段的数据没有被赋值或被赋予空值时会取默认值。

    唯一约束

      若唯一约束只有一个字段,则该字段的值必须唯一。

      若唯一约束包含多个字段,则所有字段值的组合必须唯一。

    check约束

      定义了check约束的字段的数据取值必须满足check约束中定义的条件。

    主键约束

      定义了主键约束的一个或多个字段组合成一个主键。

      一个基本表中最多只能有一个主键。

      主键的值必须唯一且不能取空值。也就是说:

    • 若主键只有一个字段,则该字段的值必须唯一且不能取空值。
    • 若主键包含多个字段,则每个字段的值不能取空值,所有字段值的组合必须唯一。

    外键约束

      定义了外键约束的字段成为外键。

      外键必须关联一个字段,而且该字段必须具有唯一约束或主键约束,而外键的数据类型必须与该字段的数据类型相同。

      外键的取值要么为空值,要么为关联字段中的一个值。

    定义约束

      约束的定义有两种方式:

      列级约束是在对列进行定义时添加约束。列级约束无法定义多个字段的约束。

      表级约束是在对表进行定义时为表中的字段添加约束。表级约束无法定义非空约束、default约束和check约束。

      MySQL中check约束不起作用,而且外键约束只有通过表级约束定义才能生效。

      所以,通常情况下:

    • 非空约束、default约束使用列级约束定义。
    • 外键约束使用表级约束定义。
      FOREIGN KEY(<列名>) REFERENCES <表名>(<列名>);
    • 定义单个字段的唯一约束或主键约束使用列级约束定义。
    • 定义多个字段组合的唯一约束或主键约束使用表级约束定义。
      UNIQUE | PRIMARY KEY(<列1>,<列2>,...)

      创建基本表class,包含字段clno(主键)、clname(非空、唯一):

      

      创建基本表student,其中包含字段sno(主键、自增)、sname(非空、唯一)、sage、ssex(默认值为“男”)、shobby、clno(关联class表的clno):

      

  • 相关阅读:
    SBIT
    Linux 系统中进程5中常见状态
    centos yum command
    About DNS
    【从零开始学BPM,Day1】工作流管理平台架构学习
    打破陈规抓痛点,H3 BPM10.0挑战不可能
    H3 BPM让天下没有难用的流程之产品概述
    《中国BPM品牌竞争力指数》完整版
    H3 BPM的品牌制胜之道
    《中国BPM品牌竞争力指数》报告出炉,H3 BPM持续领跑
  • 原文地址:https://www.cnblogs.com/lqkStudy/p/11470560.html
Copyright © 2020-2023  润新知