mysql常用的数据类型
数值类型、字符串类型、日期和时间类型、二进制类型(不常用)、空间数据类型(不常用)
一、数值类型(默认为有符号)9种
tinyint, samllint, mediumint, int, bigint,bit
float, double, decimal
tinyint: 1字节 2-7~27-1(-128,127) 小整数值
samllint:2字节 2-15~215-1(-32 768,32 767) 大整数值
mediumint:3字节 2-23~223-1(-8 388 608,8 388 607) 大整数值
int:4字节 2-31~231-1 (-2 147 483 648,2 147 483 647) 大整数值
bigint:8字节 2-63~263-1 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) 极大整数值
存储过程中,如果值得范围大于数据类型的范围,就会被截断,在数据类型的范围内,最接近值得一端。MySQL 会在不合规定的值插入表前自动修改为 0。
float:(单精度浮点)4字节
double:(双精度浮点)8字节
decimal:DECIMAL(M,D)可变;依赖于m 和d
设置长度即为设置显示的宽度,若宽度的值大于数据类型的范围,则在最高位补0,最终的显示宽度就是设置的长度
二、字符串类型 12种
char:0-255字节 定长字符串
varchar:0-255字节 变长字符串
tinyblog:0-255字节 二进制字符串
tinytext:0-255字节 短文本字符串
blog:0-65535字节 二进制短文本数据
text:0-65535字节 短文本数据
mediumblog:0-16777215字节 二进制中等文本数据
dediumtext:0-16 777 215字节 中等长度文本数据
longblog:0-4 294 967 295字节 二进制极大文本数据
longtext:0-4 294 967 295字节 极大文本数据
varbinary(M):0-M个字节 定长字节符串,值的长度+1个字节
binary(M):0-M字节 定长字节符串
定长的数据类型值若没有达到所定长度,则用空格填补
三、时间类型
year:1字节 1901/2155 YYYY 年份值
time:3字节 -838:59:59~838:59:59 HH:MM:SS 时间值或持续时间
timestamp:4字节 1970-01-01 00:00:00/2037 YYYYMMDD HHMMSS 混合日期和时间值,时间戳
date:4字节 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
datetime:8字节 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
四、符合类型
enum:值为在所定义的值范围内的某一个值,只能插入值范围内所定义的值。可以通过所以来获取对应的值,默认从1开始。值为字符串或对应数字索引为 0 的行表示有错误的记录。
set:值为所定义的值范围内的一个子集。子集中内值互不重复。空字符串或二进制值为 0 的行表示有错误的记录。
五、空间数据类型
单值类型:point,linestring,polygon,geometry
集合类型:mutilpoint,mutillinestring,multipolygon,geometrycollection