MySQL支持多种数据类型,大致可以分为三类:数值、字符串(字符)、日期/时间。

数值类型

  • 严格数值数据类型(INTEGER、SMALLINT、TINYINT、MEDIUMINT 和 BIGINT),默认都是有符号的。
  • 近似数值数据类型(FLOAT、REAL和DOUBLE)
  • 定点数类型(DECIMAL)

关键字INT是INTEGER的同义词,关键字DEC是 DECIMAL的同义词.

严格数值数据类型

类型名称 说明 存储需求字节 有符号数取值范围 无符号数取值范围
TINYINT 十分小的整数 1 128~127 0~255
SMALLINT 小的整数 2 32768~32767 0~65535
MEDIUMINT 中等大小的整数 3 -8388608~8388607 0~16777215
INT (INTEGER) 标准的整数(常用) 4 -2147483648~2147483647 0~4294967295
BIGINT 大整数 8 9223372036854775808~9223372036854775807 0~18446744073709551615

INT(M)中的M指示最大显示宽度,最大有效显示宽度是4,需要注意的是,显示宽度与存储大小或类型包含的值的范围无关

近似数值数据类型

类型名称 存储需求/字节 有符号的取值范围 无符号的取值范围
FLOAT 4 -3.402823466E+38~-1.175494351E-38 0和1.175494351E-38~3.402823466E+38
DOUBLE 8 -1.7976931348623157E+308~ -2.2250738585072014E-308 0和2.2250738585072014E-308~ 1.7976931348623157E+308

FLOAT 为单精度浮点数类型,DOUBLE为双精度浮点数类型。

浮点数类型可以用(M,D)来表示,其中M称为精度,表示总共的位数,D称为标度,表示小数的位数。

定点数类型

定点数类型也可以用(M,D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数。

DECIMAL 的默认D值为0,M值为10。

DECIMAL类型不同于FLOAT和DECIMAL, DECIMAL实际是以字符串存储的

金融计算的时候,一般使用DECIMAL。

字符串类型

MySQL 支持两类字符串数据:文本字符串和二进制字符串。

文本字符串可以进行区分或不区分大小写的串比较,也可以进行模式匹配查找。

CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM 、 SET

类型名称 说明 存储需求
CHAR (M) 固定长度非二进制字符串 M字节,1<=M<=255
VARCHAR(M) 变长非二进制字符串
(常用,常用变量)
L+1字节,在此L<=M和1<=M<=255
TINYTEXT 非常小的非二进制字符串 2^8-1   L+1字节,在此L<28
TEXT 小的非二进制字符串
(常用,保存大文本)
2^16-1  L+2字节,在此L<216
MEDIUMTEXT 中等大小的非二进制字符串 L+3字节,在此L<224
LONGTEXT 大的非二进制字符串 L+4字节,在此L<232
ENUM 枚举类型,只能有一个枚举字符串值 1或2字节,取决于枚举值的数目(最大值65535)
SET 一个集合,字符串对象可以有零个或多个SET成员 1,2,3,4,或8字节,取决于集合成员的数量(最多64个成员)

日期和时间类型

DATETIME、DATA、TIMESTAMP、TIME、YEAR

类型名称 说明 日期格式 日期范围 存储需求/字节
YEAR YYYY 1901~2155 1
TIME 时间 HH:MM:SS -838:59:59-838:59:59 3
DATE 日期 YYYY-MM-DD 1000-01-019999-12-31 3
DATETIME 最常用的时间格式 YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:009999-12-3123:59:59 8
TIMESTAMP 时间戳 YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:001~2038-01-19 03:14:07 4

null

没有值,未知

注意:不要使用null进行计算,结果为null

字段属性

unsigned

  • 无符号的整数
  • 声明了该列不能存储负数

zerofill

  • 0填充的
  • 不足的位数,使用0来填充。长度3,写入1,自动填充为001

主键

自增

通常用来设计唯一的主键,必须是整数类型

非空

not null

非空,但可以录入空字符串

default

  • 默认值

每个表都应该存在5个字段:

id 主键

version 乐观锁

is_delete 伪删除

gmt_create 创建时间

gmt_update 修改时间

 

作者 admin

百度广告效果展示