MySQL初级-14-数据类型

本文最后更新于:2020年7月27日 中午

mysql Ver 14.14 Distrib 5.5.62

14.1 数值型

14.1.1 整型

整数类型字节范围
TINYINT1有符号:-128 ~ 127
无符号:0 ~ 255
SMALLINT2有符号:-32768 ~ 32767
无符号:0 ~ 65535
MEDIUMINT3有符号:-8388608 ~ 8388607
无符号:0 ~ 1677215
INT、INTEGER4有符号:-2147483648 ~ 2147483647
无符号:0 ~ 4294967295
BIGINT8有符号:-9223372036854775808 ~ 9223372036854775807
无符号:0 ~ 9223372036854775807*2+1

特点:

  1. 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加UNSIGNED关键字。
  2. 如果插入的数值超出了整型的范围,会报错,内容为OUT OF RANGE异常。
  3. 如果不设置长度,长度会有默认值。
  4. 长度代表了显示IDE最大宽度,如果不够会用0在左边填充,但必须搭配ZEROFILL使用。

14.1.2 小数

浮点数类型字节范围
FLOAT(M,D)4±1.75494351E-38 ~ ±3.402823466E+38
DOUBLE(M,D)8±2.2250738585072014E-308 ~ ±1.7976931348623157E+308
定点数类型字节范围
DEC(M,D)
DECIMAL(M,D)
M+2最大取值范围与double相同, 给定decimal的有效取值范围由M和D决定

特点:

  1. M:整数部位+小数部位。

    D:小数部位。

    如果超过范围,则插入临界值。

  2. M和D都可以省略

    如果是DECIMAL,则M默认为10,D默认为0。

    如果是FLOAT或DOUBLE,则会根据插入的数值的精度来决定M和D。

  3. 定点型的精确度较高,如果要求插入数值的精度较高,则优先考虑使用。

14.2 字符型

类型说明
CHAR定长字符串
VARCHAR变长字符串
BINARY定长二级制字符串
VARBINARY变长二进制字符串
ENUM枚举类型,要求插入的值必须是列表中的值
SET集合
TEXT长文本数据
BLOB二进制形式的长文本数据

特点:

  1. CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
  2. BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值。
  3. BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
  4. 有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

14.3 日期型

类型字节范围格式用途
DATE31000-01-01 ~ 9999-12-31YYYY-MM-DD日期值
DATETIME81000-01-01 00:00:00 ~ 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00 ~ 2038
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
YYYYMMDD HHMMSS混合日期、时间值和时间戳
TIME3-838:59:59 ~ 838:59:59HH:MM:SS时间值或持续时间
YEAR11901 ~ 2155YYYY年份值

 目录