MySQL中常用字段类型
MySQL中常用的字段类型
字段类型有如下几种
1)整数类型
2)小数类型
3)字符串类型
4)时间字符串类型
字段类型的作用:MySQL中用来规定实际存储的数据格式
1、整数类型
Mysql中为了数据空间的有效使用,设定了五种整数类型
迷你整数:tinyint,使用1个字节存储整数,最多存储256个整数
短整数:smallint,使用2个字节存储整数
中整型:mediumint,使用3个字节存储整数
标准整型:int,使用4个字节存储整数
大整型:bigint,使用8个字节存储
注意:整数型存储在mysql中分为有符号和无符号
显示宽度
显示宽度是显示整型能表示的最多符号数量
显示宽度能主动设置,但是绝对不会改变类型本身能表示的数据大小
可以通过zerofill来强制让不够宽度的数据补充前置0来达到显示宽度
zerofill默认要求整型为无符号
zerofill通常用来制作一些规范宽度的数据
2、小数类型
浮点型(不精确):float/double
float,使用4个字节存储,精度范围为6-7位有效数据
double,使用8个字节存储,精度范围14-15位有效数字
浮点数超过进度范围就会自动进入四舍五入
定点型(精确):decimal,能够保证精度的小数,不固定存储空间
decimal:默认整数部分为10位,小数部分为0位
decimal(有效位数,小数位数):整数部分为:有效位数-小数位数
定点数的存储模式不是固定长度,所有数据越大占用的存储空间越长
3、字符串类型
定长型:char(L),指定固定长度的存储空间来存储字符串
特点
定长是指定存储长度
定长的长度是字符而不是字节
L的最大值是255
实际存储空间:L字符集*字符集对应字节数
优缺点:定长的访问效率较高,但是空间利用率不高
变长型:varchar(L),根据实际存储的数据变化存储空间
特点
变长型的存储空间是由实际存储数据决定的
变长型的L是指定字符而不是字节
变长需要额外产生1-2个字节,用来记录实际数据的长度
优缺点:变长字符串能够更好的利用存储空间,变长字符串在读取时需要进行长度计算,所以效率没有定长字符串高
本文字符串:text/blob,专门用来存储较长的文本
文本字符串包含两大类
text:普通字符
blob:二进制字符(与text类型)
一般在文本超过255个字符时,都会使用text类型
枚举:一种映射存储方式,比较小的空间存储较多的数据
枚举语法:enum(元素1,元素2,...元素N)
特点
1、枚举是在定义时确定可能出现的问题
2、枚举在定义后数据只能出现定义时其中的一种
集合:set,一种映射存储方式,以较小的空间存储较多的数据
集合语法:set(元素1,元素2,...元素N)
特点
1、确定数据时固定的几种数据组合
2、使用集合穷举相应的元素
3、数据存储只能选择穷举中的元素组合
4、时间日期类型
年:year,MySQL中用来存储年份的类型
MySQL中使用1个字节存储年份
year能够表示的范围是1901-2155(256)
时间戳:timestamp,基于格林威治时间的时间记录
MySQL中时间戳表现形式不是秒数,而是年月日时分秒格式
timestamp使用4个字节存储
timestamp的特点是所对应的记录不论哪个字段被更新,该字段都会更新到当前时间
mysql8以后,取消了timestamp的默认自认更新,如果需要使用,需要额外使用属性:on update current_timestamp
日期:date,用来记录年月日信息
使用3个字节存储数据
存储日期的格式为:YYYY-MM-DD
日期时间:datetime,用来综合存储日期和时间
使用8个字节存储数据
存储格式为:YYYY-MM-DD HH:ll:SS
时间:time,用来记录时间或者时间段
使用3个字节存储数据
数据插入的格式分为两种
时间格式:[H]HH:ll:SS
时间段格式 D HH:ll:SS(D表示天)