MENU

字段数据类型 | 初学MySQLの学习笔记 No.2

2023 年 12 月 20 日 • 阅读: 155 • 学习时间

::huaji:huaji1::MySql的数据类型是真的多,之前学ACCESS的时候才几个
MySql一看都十几个了

整数类型

类型

类型用途占用范围(有符号)范围(无符号)
BIGINT大整数8字节-9223372036854775808,92233720368547758070,18446744073709551615
INT\INTEGER标准整数4字节-2147483648,21474836470,4294967295
MEDIUMINT中整数3字节-8388608,83886070,16777215
SMALLINT小整数2字节-32768,327670,65535
TINYINT迷你整数1字节-128,1270,255

MySql中提供的整数类型很多,但是其实都差不多,主要区别在字节数和范围上
这时候就会遇到一个问题
为什么要弄这么多整型,直接一个INT不就挺好
目的就是为了最大程度的使用硬盘空间,同时还可以提高查询的速度
通常情况下INT和TINYINT用的最多(毕竟大部分情况下不缺这么点字节,弄大点还能避免很多意想不到的问题)
无符号需要在字段类型后面加上unsigned,比如age TINYINT UNSIGNED表示一个无符号的年龄字段

另外,有的时候可以见到诸如int(X)这样的表达方式
这里使用到的是显示宽度,首先什么是显示宽度?
表示存储值的长度不满X的情况下,显示为X个字符长度,如果满足X,则显示完整的数据
在MySQL中所有的整数类型都支持显示宽度,但仅仅对显示有所影响,并不会影响其占用的大小

浮点类型

类型

类型用途占用
FLOAT单精度浮点数4字节
DOUBLE/REAL双精度浮点数8字节
DECIMAL/NUMERIC高精度小数对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

字符串类型

字符串类型主要的就是VARCHAR、CHAR和TEXT

VARCHAR和CHAR的对比

特性VARCHARCHAR
长度定长,固定字符数,最大255个字符,数据长度不足声明值时,在尾部自动填充空格长度可变,可设置最大存储字符数,最大不超过行大小(默认65535)
前缀1~2字节,看列长度是否可能超过255字节
有否尾部空格长度不足默认用空格填满,检索和获取时会自动去除不会自动填充空格输入值就包含空格,则会存储,检索和获取数据都会体现
超长处理超长部分如果是空格自动截断,如果是字符,严格模式下会报错超长部分如果是空格自动截断,并生成警告,如果是字符,严格模式下会报错
存储开销数据值的字节和+补位空格数数据值的字节和+长度标识字节数

TEXT类型细分

类型占用用途
TINYTEXT255个字符短文本字符串
TEXT65535个字符长文本数据
MEDIUMTEXT16777215个字符中等长度文本数据
LONGTEXT4294967295个字符极大文本数据

添加新评论

已有 2 条评论
  1. 试问存一个精确到秒的时间戳要用什么数据类型?存一个QQ号要用什么数据类型?存一篇新闻用什么数据类型?::huaji:huaji4::

    1. @小丁::huaji:huaji10:: 万能TEXT(雾