• MySQL (三)数据类型与约束


    一 数据类型和约束

    根据不同的场景,需要不同的数据类型保存不同的数据,常用的数值类型、字符类型、时间日期类型
    1 数值类型

    备注:较为常用的数值类型 INT/INTEGER:表示整数;DOUBLE:表示浮点数;DECIMAL:设置自定义精度

    2 日期和时间类型
    表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
    每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

    注:TIMESTAMP结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

    3 字符串类型

    注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
    CHAR 和 VARCHAR 类型类似,前者为固定长度,后者根据内容变长。
    结论:

    • 经常变化的字段用VARCHAR
    • 固定长度的用CHAR,优先用 VARCHAR
    • 超过 255 字符的只能用VARCHAR 或者 TEXT
    • 能用 VARCHAR 的地方不用TEXT

    4 约束

    • 主键primary key:物理上存储的顺序,主建约束,相当于唯一和非空约束组合
    • 非空not null:此字段不允许填写空值
    • 惟一unique:此字段的值不允许重复,可以为空
    • 默认default:当不填写此值时会使用默认值,如果填写时以填写为准
    • 外键foreign key:对关系字段进行约束,用于限制两个表的关系,保证从表该字段的值来自于主表相关联的字段的值
    • 自增约束AUTO_INCREMENT:标注当前字段数据默认 +1 一般配合主键使用,通过关键字AUTO_INCREMENT 添加
    • 无符号unsigned:主要用于数值类型,无符号代表为正数,只能在表示数值类型后写。

    5 数据库设计范式

    • 字段不可分; 强调的是列的原子性,通俗理解即一个字段只存储一项信息
    • 有主键,非主键字段依赖主键; 任意一个字段都只依赖表中的同一个字段;当存在多个主键的时候,才可能会发生不符合第二范式的情况。
    • 非主键字段不能相互依赖; 每列都与主键有直接关系,不存在传递依赖
  • 相关阅读:
    JEECG与帆软报表集成
    各种数据库的锁表和解锁操作
    sql server数据库查询超时报错
    java项目部署后的文件路径获取
    js解决跨站点脚本编制问题
    java递归算法实现拼装树形JSON数据
    FreeMarker中的list集合前后台代码
    去除list集合中重复项的几种方法
    Java中Properties类的操作
    mysql 容灾 灾备 备份
  • 原文地址:https://www.cnblogs.com/duxiangjie/p/14205047.html
Copyright © 2020-2023  润新知