MySQL常用数据类型

常用数据类型

概述

  • MySQL 数据库的表是一个二维表,由一个或多个数据列构成,每个列都要求有名称和数据类型。
  • 数据类型是一个标签,是便于 SQL 了解每个列期望存储什么类型的数据的指南,它也标识了 SQL 如何与存储的数据进行交互。
  • MySQL 支持多种数据类型,大致可以分为三类:数值、日期/时间和字符串类型。

数值

类型 大小 描述
tinyint 1字节 十分小的整数值
smallint 2字节 较小的整数值
mediumint 3字节 中等大小的整数值
int 4字节 标准大小的整数值
bigint 8字节 较大的整数值
float 4字节 单精度浮点数
double 8字节 双精度浮点数
decimal 对decimal(M, D),如果M > D,为M+2字节;否则为D+2 字符串形式的浮点数

声明整型数据列时,可以为它指定显示宽度(长度),例如 int(5) 指定显示宽度为5个字符;如果没有给它指定显示宽度,MySQL 会为它指定一个默认值。显示宽度只用于显示,并不会限制取值范围和占用空间

浮点类型和定点类型都可以用(M, D)来表示,其中M称为精度,表示总共的位数(存储的有效位数);D称为标度,表示小数的位数

floatdouble在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),decimal 如果不指定精度,默认为(10,0)

字符串

类型 大小 描述
char 0 ~ 255字节 定长字符串
varchar 0 ~ 65535字节 变长字符串
tinytext 0 ~ 255字节 短文本字符串
text 0 ~ 65535字节 长文本数据

char值的长度固定为创建表时声明的长度,分配的存储空间和声明的长度一样多。存储char值时,将在其右边填充空格以达到指定长度;检索char值时,一般会删除尾部的空格

varchar类型的字符串长度可变,在存储时不会被填充。若字符串本身以空格结尾,在存储和检索时也不会删除尾部空格

时间日期

类型 大小 显示格式 存储范围 描述
year 1字节 YYYY 1901 ~ 2155 年份值
date 3字节 YYYY-MM-DD 1000-01-01 ~ 9999-12-31 日期值
time 3字节 hh:mm:ss或hhh:mm:ss -838:59:59 ~ 838:59:59 时间值
datetime 8字节 YYYY-MM-DD hh:mm:ss 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 日期时间的混合表示
timestamp 4字节 YYYY-MM-DD hh:mm:ss UTC 1970-01-01 00:00:01 ~ 2038-01-19 03:14:01 时间戳

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的 MySQL 不能表示的值时使用"零"值(0000-00-00 or 0000-00-00 00:00:00

datetime在存储日期数据时,按实际输入的格式存储,即输入什么就存储什么,与时区无关;而timestamp值的存储是以 UTC(世界标准时间)格式保存的,存储时对当前时区进行转换,检索时再转换回当前时区,即查询时,根据当前时区的不同,显示的时间值是不同的

posted @ 2023-05-25 01:33  TNTksals  阅读(61)  评论(0编辑  收藏  举报