【mysql基础系列之三】字段类型
2018-03-19 21:50
211 查看
mysql数据基本类型:整型、小数型、日期类型、字符串、set。
1、依次占空间大小:1字节、2字节、3字节、4字节、8字节。L表示数据长度,也可以不写。
2、在数据类型后面还可以添加关键字
unsigned:表示无符号设置
zerofill:表示长度不足用0补满
2、定点型:decimal(整数长度M, 小数长度D)
注意:(1) 在浮点型中,float占4字节,精确度7位左右。double占8字节,精确度15位左右。插入符合有效位数但超过精确度的数据时会丢失精度。
(2) 在定点型中,M不能大于65,D不能大于30。大概9位数字时分配一个字节。小数和整数分开存储。
1、依次占空间大小:4字节、3字节、8字节、4字节、1字节。
2、year 可以插入2位数 或者 4位数。插入两位是需要注意临界值69 和 70之间的区别。
3、time表示时间段。范围-838:59:59~838:59:59。插入该字段时还可以写作:天数 HH:mm:ss。
4、时间戳特性:记录发生变化时,自动更新。
1、varchar额外开销用于保存数据所占空间长度。通常数据库采用utf8,一个字符占3个字节。如果数据本身小于127个字符,额外开销1字节。大于127个字符,额外占用2个字节。
2、字符数超过255,建议使用 文本类型text。
3、enum存储原理:实际上字段所存储的值并不是真正的字符串,而是字符串所对应的下标:当系统设定枚举类型的时候,会给枚举中每个元素定义一个下标,这个下标从1开始。故插入enum类型数据时,可以插入值或者是对应下标。
4、mysql特性:类型自动转换,当数据碰到“+-*/”时,系统就会自动将数据转换成数值,而普通字符串转换成数值为0。可以使用查询语句:select 字段名+0 from 表名;
5、set:集合类型。它可以将多个数据选项同时保存的数据类型,本质是将制定的项按照对应的二进制位来进行控制:1表示选中,0表示未被选中。一个字节8位,故只能对应8个选项。set提供的存储大小为:1字节,2字节,3字节,8字节。基本语法:set('值1','值2','值3'...);。
6、mysql长度记录:mysql规定行总长度不能超过65535个字节。varchar能存储的理论值为65535个字符,而一个字符在不同的字符集中可能占多个字节(utf8占3个字节,gbk占2个字节)。
(1) utf8字符集中,最多能存储65535/3-2 = 21844个字符。(2为varchar额外占用字节)
(2) gbk字符集中,最多能存储65535/2-2 + 1 = 32766个字符。(1为余数)
整型
tinyint(L) 、smallint(L)、mediumint(L)、int(L)、bigint(L)1、依次占空间大小:1字节、2字节、3字节、4字节、8字节。L表示数据长度,也可以不写。
2、在数据类型后面还可以添加关键字
unsigned:表示无符号设置
zerofill:表示长度不足用0补满
小数型
1、浮点型:float(有效数字长度L, 小数长度D)、double(有效数字长度L, 小数长度D)2、定点型:decimal(整数长度M, 小数长度D)
注意:(1) 在浮点型中,float占4字节,精确度7位左右。double占8字节,精确度15位左右。插入符合有效位数但超过精确度的数据时会丢失精度。
(2) 在定点型中,M不能大于65,D不能大于30。大概9位数字时分配一个字节。小数和整数分开存储。
日期类型
date、time、datetime、timestamp、year1、依次占空间大小:4字节、3字节、8字节、4字节、1字节。
2、year 可以插入2位数 或者 4位数。插入两位是需要注意临界值69 和 70之间的区别。
3、time表示时间段。范围-838:59:59~838:59:59。插入该字段时还可以写作:天数 HH:mm:ss。
4、时间戳特性:记录发生变化时,自动更新。
字符串
char(字符数量0-255)、varchar(字符数0-65535)、text、enum(值1,值2...)、set1、varchar额外开销用于保存数据所占空间长度。通常数据库采用utf8,一个字符占3个字节。如果数据本身小于127个字符,额外开销1字节。大于127个字符,额外占用2个字节。
2、字符数超过255,建议使用 文本类型text。
3、enum存储原理:实际上字段所存储的值并不是真正的字符串,而是字符串所对应的下标:当系统设定枚举类型的时候,会给枚举中每个元素定义一个下标,这个下标从1开始。故插入enum类型数据时,可以插入值或者是对应下标。
4、mysql特性:类型自动转换,当数据碰到“+-*/”时,系统就会自动将数据转换成数值,而普通字符串转换成数值为0。可以使用查询语句:select 字段名+0 from 表名;
5、set:集合类型。它可以将多个数据选项同时保存的数据类型,本质是将制定的项按照对应的二进制位来进行控制:1表示选中,0表示未被选中。一个字节8位,故只能对应8个选项。set提供的存储大小为:1字节,2字节,3字节,8字节。基本语法:set('值1','值2','值3'...);。
6、mysql长度记录:mysql规定行总长度不能超过65535个字节。varchar能存储的理论值为65535个字符,而一个字符在不同的字符集中可能占多个字节(utf8占3个字节,gbk占2个字节)。
(1) utf8字符集中,最多能存储65535/3-2 = 21844个字符。(2为varchar额外占用字节)
(2) gbk字符集中,最多能存储65535/2-2 + 1 = 32766个字符。(1为余数)
相关文章推荐
- mysql 开发基础系列4 字符数据类型
- mysql 开发基础系列3 日期数据类型
- mysql 开发基础系列12 选择合适的数据类型(上)
- mysql 开发基础系列13 选择合适的数据类型(下)
- 【mysql基础系列之四】字段属性
- MySQL基础之字段数据类型
- MySQL学习系列2:数据类型宽度/查看字段长度
- MySQL系列(二):字段类型
- mysql 开发基础系列2 整型数据类型
- Mysql 字段数据类型、长度
- 别在细节上栽跟头------------mysql 字段类型详解
- MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令
- MySQL数据类型及字段小结
- mysql 字段类型和长度区别
- MySql基础知识、存储引擎与常用数据类型
- Python基础系列----语法、数据类型、变量、编码
- MySQL之选择字段数据类型
- 小白学习mysql之优化基础(EXPLAIN的连接类型)
- MySQL中BLOB字段类型介绍
- mysql-修改字段类型和修改字段名称