数据类型

一、数值型

1. 整型

整数类型 字节 范围
Tinyint 1 有符号:-128~127 无符号:0~255
Smallint 2 有符号:-32768~32767 无符号:0~65535
Mediumint 3 -8388608~-8388607
Int、integer 4 -217483648~2147483647
Bigint 8 -9223372036854775808~9223372036854775807

特点:

  1. 默认有符号,设置无符号,添加unsigned关键字
  2. 如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值
  3. 如果不设置长度,会有默认的长度,使用zerofill关键字会将长度不够的数前填充0

2. 小数:

  1. 浮点数
浮点数类型 字节 范围
float(M,D) 4 ...
double(M,D) 8 ...
  1. 定点数
定点数类型 字节 范围
DEC(M,D) 、 DECIMAL(M,D) M+2 最大取值范围和double相同,给定decimal的有效取值范围由M和D决定

特点:

  1. M和D:M代表有效数字位数,D代表小数点后的位数。
  2. M和D可省略,如果是decimal,则M默认为10,D默认为0,如果时候float和double,会根据插入的数值的精度来决定精度。
  3. 对精度要求较高,考虑使用定点数。

二、字符型

1. 较短的文本

字符串类型 最多字符数 范围
char(M) M M为0~255的整数
varchar(M) M M为0~65535之间的整数

特点:

  1. char的长度固定,varchar的长度可变
  2. char的效率高,varchar的效率低

其他:binary和varbinaey保存较短的二进制、enum保存枚举、set保存集合

2. 较长的文本

  1. text
  2. blob(较长的二进制数据)

三、日期型

日期和时间类型 字节 最小值 最大值
date 4 1000-01-01 9999-12-31
datetime 8 1001-01-01 00:00:00 9999-12-31 23:59:59
timestamp 4 19700101080001 2038年的某个时刻
time 3 -838:59:59 838:59:59
year 1 1901 2155

datetime不受时区影响,timestamp受时区影响

原文地址:https://www.cnblogs.com/ylcc-zyq/p/13139317.html