mysql 入门 - 数据类型

最近在学习 node,先学习一下相关的基础,捡起以前的数据库知识,这里记录一下 mysql 的数据类型。

一、常见数值类型

数据类型 占用大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128, 127) (0, 255) 小整数值
INT 或 INTEGER 4 字节 (-2 147 483 648, 2 147 483 647) (0, 4 294 967 295) 大整数值
FLOAT 4 字节 (-3.402 823 466 E+38, -1.175 494 351 E-38), 0, (1.175 494 351 E-38, 3.402 823 466 351 E+38) 0, (1.175 494 351 E-38, 3.402 823 466 E+38) 单精度浮点数值
DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308, -2.225 073 858 507 201 4 E-308), 0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) 0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) 双精度浮点数值
  • 有符号:默认为有符号,从负数到正数的取值范围
  • 无符号(UNSIGNED):没有负数,最低从 0 开始

对于平常开发来说,整数类型其实到 INT 的数值范围已经很大了。

建表时经常看到类似 INT(5) 后面有个 5,它表示显示宽度 (M),M 的值不能大于取值范围长度。
举个例子: 如果 age 字段类型是 INT(5) UNSIGNED ZEROFILL,插入一条数据 age 为 99,最后显示为:00099

UNSIGNED 为无符号, ZEROFILL 的作用是用 0 填充没有数字的位置

二、常见字符串类型

数据类型 占用大小 用途
CHAR 0-255 字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYTEXT 0-255 字节 短文本字符串
TEXT 0-65535 字节 长文本字符串
MEDIUMTEXT 0-16 777 215 字节 中等长度文本数据
LONGTEXT 0-4 294 967 295 字节 极大文本数据

通常情况下,用的比较多的就是 CHAR、VARCHAR、TEXT 了。在 mysql 的 UTF8 编码下:

  • 1 个英文字母(包括大小写)占 1 个字节
  • 1 个汉字占 3 个字节

三、常见日期/时间类型

数据类型 占用大小 范围 格式 用途
DATE 3 字节 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 字节 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间
DATETIME 8 字节 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 字节 1970-01-01 00:00:00/2038 (结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07) YYYYMMDD HHMMSS 混合日期和时间值,时间戳

在开发中,常用的是 DATETIME 和 TIMESTAMP。

以上

随笔标题:mysql 入门 - 数据类型

随笔作者:刘先玉

发布时间:2020年02月03日 - 21:12:59

最后更新:2020年02月03日 - 21:12:59

原文链接:https://liuxianyu.cn/article/mysql-a.html