MySQL数据类型

39次阅读
没有评论

共计 1360 个字符,预计需要花费 4 分钟才能阅读完成。

整数类型

  • tinyint:1 个字节(微小整数)
  • smallint:2 个字节(小整数)
  • mediumint:3 个字节(中等大小整数)
  • int(integer):4 个字节(普通大小整数)
  • bigint:8 个字节(大整数)

浮点数类型

  • float:4 个字节,单精度(最多 5 位小数)
  • double:8 个字节,双精度(最多 16 位小数)

定点数类型

decimal:定点数类型,底层实际上采用字符串形式存储数字。语法:decimal(m, d),例如:decimal(3, 2) 表示 3 个有效数字,2 个小数(有效数字最多 65 个,小数位最多 30 个)。

日期时间类型

  • year:1 个字节,只存储年,格式 YYYY
  • time:3 个字节,只存储时间,格式 HH:MM:SS / HHMMSS
  • date:3 个字节,只存储年月日,格式:YYYY-MM-DD
  • datetime:8 个字节,存储年月日 + 时分秒,格式:YYYY-MM-DD HH:MM:SS(范围从公元 1000 年~ 公元 9999 年)
  • timestamp:4 个字节,存储年月日 + 时分秒,格式:YYYY-MM-DD HH:MM:SS(范围从公元 1970 年~ 公元 2038 年,TIMESTAMP 会受时区影响)或者格式为 YYYYMMDDHHMMSS(采用这种格式不需要使用单引号,当然想使用单引号也可以)

字符类型

  • char(m)
    • m 表示列长,范围是 0~255 个字符。保存时,在右侧填充空格以达到指定长度。例如,char(4) 定义了一个固定长度的字符串列,包含的字符个数最大为 4。当插入字符长度大于 4,则报错(除非超过 4 个长度之后都是空格字符,则空格字符会自动被删除用来保证插入的成功)
    • 在 InnoDB 中存储 char(m) 类型数据时,如果数据实际占用空间不到 m 字节,则会使用空格填充到 m,是将数据填充到 m 字节,而不是 m 字符。如果存储数据虽然字符数不到 m,但占用空间已经超过 m 字节,则 InnoDB 不会再填充空格
  • varchar(m)
    m 长度 65535 字节。例如,varchar(50) 定义了一个最大长度为 50 的字符串,如果插入字符串只有 10 个,则实际存储的字符串为 10 个字符和一个字符串结束字符。varchar 最大实际长度由最长行大小和使用字符集确定,而实际占用空间为字符串实际长度加 1

    • 如果字段可存储的最大空间超过 65535,则在 SQL Mode 严格模式下,SQL 会报错,在非严格模式下,MySQL 会自动将类型转换为 Text
    • VARCHAR 类型不会自动截断插入数据中尾部空格,也不会往字段尾部里填充空格
  • text 类型
    • tinytext 表示长度为 255 字符的 text 列
    • text 表示长度为 65535 字符的 text 列
    • mediumtext 表示长度为 16777215 字符的 text 列
    • longtext 表示长度为 4294967295 或 4GB 字符的 text 列
  • enum 类型
    语法:< 字段名 > enum(‘ 值 1 ’, ‘ 值 2 ’, …)。该字段插入值时,只能是指定的枚举值
  • set 类型
    语法:< 字段名 > set(‘ 值 1 ’, ‘ 值 2 ’, …)。该字段插入值时,只能是指定的值。注意:值不可重复

二进制类型

BLOB 类型:二进制大对象,可以存储图片、声音、视频等文件:

  • blob:小的,最大长度 65535 个字节
  • mediumblob:中等,最大长度 16777215 个字节
  • longblob:大的,最大长度 4GB 的字节
正文完
 0
三毛笔记
版权声明:本站原创文章,由 三毛笔记 于2024-02-22发表,共计1360字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)