美文网首页
MySQL数据库的约束

MySQL数据库的约束

作者: 大龙10 | 来源:发表于2023-05-07 12:42 被阅读0次

    一、 MySQL数据类型

    常用的数据类型有:

    • 整型(xxxint)
    • 位类型(bit)
    • 浮点型(float和double、real)
    • 定点数(decimal,numeric)
    • 日期时间类型(date,time,datetime,year)
    • 字符串(char,varchar,xxxtext)
    • 二进制数据(xxxBlob、xxbinary)
    • 枚举(enum)
    • 集合(set)

    二、约束

    1、为什么需要约束

    • 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。
      它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
    • 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。
    • 从以下四个方面考虑:
      实体完整性(Entity Integrity) :例如,同一个表中,不能存在两条完全相同无法区分的记录
      域完整性(Domain Integrity) :例如:年龄范围0-120,性别范围“男/女”
      引用完整性(Referential Integrity) :例如:员工所在部门,在部门表中要能找到这个部门
      用户自定义完整性(User-defined Integrity) :例如:用户名唯一、密码不能为空等

    2、什么是约束

    • 约束是表级的强制规定。
      可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后通过 ALTER TABLE 语句规定约束。
    • 根据约束数据列的限制,约束可分为:
      单列约束:每个约束只约束一列
      多列约束:每个约束可约束多列数据
    • 根据约束的作用范围,约束可分为:
      列级约束:只能作用在一个列上,跟在列的定义后面
      表级约束:可以作用在多个列上,不与列一起,而是单独定义
    • 根据约束起的作用,约束可分为:
      NOT NULL 非空约束,规定某个字段不能为空
      UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
      PRIMARY KEY 主键(非空且唯一)约束
      FOREIGN KEY 外键约束
      CHECK 检查约束
      DEFAULT 默认值约束

    3、如何指定自增约束

    • 特点和要求
      (1)一个表最多只能有一个自增长列
      (2)当需要产生唯一标识符或顺序值时,可设置自增长
      (3)自增长列约束的列必须是键列(主键列,唯一键列)
      (4)自增约束的列的数据类型必须是整数类型
      (5)如果自增列指定了 0 和 null,会在当前最大值的基础上自增;如果自增列手动指定了具体值,直接赋值为具体值。

    create table test
    (
    id int(10) not null auto_increment, -- 表示自增列
    name varchar(20) not null,
    primary key(id)
    )
    auto_increment = 1; -- 表示自增起始大小-- 这样就可以创建一个表test,id为自增列
    -- 执行语句 insert into test (name) values ('名字');
    -- 就可以插入一行数据为: 1 '名字'

    相关文章

      网友评论

          本文标题:MySQL数据库的约束

          本文链接:https://www.haomeiwen.com/subject/apthsdtx.html