美文网首页MySQL 入门教程
9《MySQL 教程》MySQL 的数据类型(2)

9《MySQL 教程》MySQL 的数据类型(2)

作者: 木子教程 | 来源:发表于2022-03-19 00:19 被阅读0次

这一小节我们继续学习 MySQL 数据库的数据类型上一小节学习了整数类型和浮点类型,本小节介绍日期时间类型和字符串类型。

1.日期和时间类型

类型 大小 格式 范围
date 3字节 YYYY-MM-DD 1000-01-01 ~ 9999-12-31
time 3-6字节 HH::MM:SS[.微秒] -838:59:59 ~ 838:59:59
year 1字节 YYYY 1901 ~ 2155
datetime 5-8字节 YYYY-MM-DD HH:MM:SS[.微秒值] 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 UTC
timestamp 4-7字节 YYYY-MM-DD HH:MM:SS[.微秒值] 1970-01-01 00:00:00 ~ 2038-01-19 03:14:07 UTC

1.1 date

date 类型为日期类型,存储空间 3个字节,格式为 “YYYY-MM-DD”,例如 “2020-03-16”,日期的范围 “1000-01-01 ~ 9999-12-31”,通常只想用来存储如 “2020-02-02” 这种格式的日期字段时,可以选择使用 date 类型。

1.2 time

time 类型为时间类型,存储空间 3 ~ 6个字节,格式为 “HH::MM:SS[.微秒]” ,例如 “04:31:22.33”,范围 “-838:59:59 ~ 838:59:59”,通常只想用来存储如 “04:31:22.33” 这种格式的时间字段时,可以选择使用 time 类型。

1.3 year

year 类型为日期类型,存储空间 1 个字节 ,例如 “2020”,范围 “1901 ~ 2155”,通常只想用来存储如 “2020” 这种格式的日期字段时,可以选择使用 year 类型。

1.4 datetime

datetime 类型为精确时间的日期类型,存储空间为 5 ~ 8 个字节,格式为 “YYYY-MM-DD HH:MM:SS[.微秒值]”,例如 “2020-02-02 02:02:02.02”,范围 “1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 UTC”,通常只想用来存储如 “2020-02-02 02:02:02.02” 这种格式的日期字段时,可以选择使用 datetime 类型。

1.5 timestamp

timestamp 类型保存了从1970年01月01日午夜以来的秒数,它和 UNIX 时间戳相同,存储空间 4 ~ 7 个字节,范围 “1970-01-01 00:00:00 ~ 2038-01-19 03:14:07 UTC”,timestamp 显示的值依赖于时区,和 datetime 相比,前者提供的值与时区有关系,后者则保留文本表示的日期和时间。

2.字符串类型

类型 范围 说明
char 1~255个字节 固定长度
varchar 字段存储所占字节数不能超过65535字节 可变长度
tinytext 最大长度255字节 可变长度
text 最大长度65535个字节 可变长度
mediumtext 最大长度16777215个字节 可变长度
longtext 最大长度4294967295个字节 可变长度

2.1 char

char 类型为定长字符串类型,适合存储很短的字符串,或者所有值都接近同一个长度,例如存储密码 md5 值,因为它是一个定长的值,对于经常变更的数据,char 比 varchar 更好,因为定长的 char 不容易产生碎片。

2.2 varchar

varchar 类型用于存储可变长度字符串,是最常见的字符串数据类型,对于短长度的字符串,它比定长的更为节省空间,varchar 节省空间对性能有帮助,varchar 类型的字符串有如下特点 :

  • 字符串列的最大长度比平均长度大;
  • 列的更新少,碎片问题较小;
  • 使用了如 “UTF-8” 字符集,每个字符都使用不同的字节数来存储。

2.3 text

text 数据类型家族包括 : tinytexttextmediumtextlongtext。 MySQL 把每个 text 值当做一个独立的对象处理。若 text 家族的值太大时,InnoDB 存储引擎会额外使用存储区域来进行存储,通常存储文章这样比较长的内容字段时,可选择 text 家族类型。

3.枚举值类型

类型 范围 说明
enum 几何数最大65535 枚举值类型,只能插入列表中指定的值

3.1 enum

enum 类型为枚举值类型,有时可以使用枚举值替代字符串,枚举列可以把一些不重复的字符串存储为一个预定义的集合。 MySQL 在存储枚举时非常紧凑,会根据列表值的数量压缩到 1 ~ 2 个字节,例如 ENUM (‘黄色’,‘黑色’,‘蓝色’,‘紫色’),枚举值类型字段的需求也可以使用 tinyint 类型来替代。

4.二进制类型

类型 范围 说明
tinyblob 最大长度255字节 可变长度
blob 最大长度65535个字节 可变长度
mediumblob 最大长度16777215个字节 可变长度
longblob 最大长度4294967295个字节 可变长度

4.1 blob

blob 数据类型家族包括 :tinybobblobmediumbloblongblob。和 text 家族一样,MySQL 把每个 text 值当做一个独立的对象处理。若 blob 家族的值太大时,InnoDB 存储引擎会额外使用存储区域来进行存储,blob 类型存储的是二进制数据,没有排序规则或字符集。

相关文章

  • 9《MySQL 教程》MySQL 的数据类型(2)

    这一小节我们继续学习 MySQL 数据库的数据类型上一小节学习了整数类型和浮点类型,本小节介绍日期时间类型和字符串...

  • HIVE搭建

    安装mysql centos7安装mariaDB安装mysql教程1安装mysql教程2安装教程3安装mysql教...

  • centos 7 安装mysql 8.0及设置

    MySQL 8安装教程:参考一下文章 MySQL 8安装教程1 或者 MySQL 8安装教程2 完成MySQL安装...

  • sql学习笔记2-数据记录操作

    1、mysql数据类型 可参考菜鸟教程,链接如下:https://www.runoob.com/mysql/mys...

  • MySQL基础必知必会

    MySQL 教程--检视阅读 准备:Windows 上安装 MySQL 教程地址,PHP语言基础 教程地址2 教程...

  • MySQL应用技术3 — MVCC

    MySQL应用技术1 — MySQL架构简介MySQL应用技术2 — 事务简介MySQL应用技术4 — 数据类型选...

  • SQL常用数据类型

    完整数据类型参考:MySQL 数据类型 | 菜鸟教程 1.常用数据类型: 2.字符串类型 3.日期和时间类型: 注...

  • 019LNMP架构wordpress blog搭建教程

    LNMP架构wordpress 个人blog搭建教程 1.mysql安装 请参考mysql安装教程(rpm) 2....

  • sql快速入门教程1简介

    sql快速入门教程1简介 sql教程2数据库和SQL简介 sql教程3 MySQL介绍 sql教程4 MySQL ...

  • sql教程3 MySQL介绍

    sql快速入门教程1简介 sql教程2数据库和SQL简介 sql教程3 MySQL介绍 sql教程4 MySQL ...

网友评论

    本文标题:9《MySQL 教程》MySQL 的数据类型(2)

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