mysql数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。选择合适的数据字段的类型是数据库的优化重要的一步。
合适的数据类型可以提高数据库存储空间利用率,一定程度上提高数据查询效率.
1.整形
使用:
CREATE TABLE test(id INT,num TINYINT UNSIGNED)
2.浮点型
浮点数并不一定等于小数,浮点数是相对于定点数来说的,因为浮点数的存储机制,导致其精度较低,但表示的范围很广。使用时需要注意有效位数
定点数DECIMAL
在定点数中,小数点的位置是固定的。一般用来存储精确度要求比较高的数字,例如:钱数
浮点数
浮点数由符号位、阶码、尾数组成。
3.字符串
选择合适长度的类型可以减少磁盘IO.提高效率
在utf8中每个字使用3个bytes存储
utf8mb64中使用4个bytes进行存储
不常用的包括:
char可以改变大小例:char(20)
如果列中的值不够20位,则会自动用空格补全.特点:浪费空间、读取速度
varchar :可以指定最大存储空间,实际添加数据的过程中,占用的大小会根据数据的长度确定.同时会预留1-2个字节
text: 数据占用空间不可以指定.在mysql中实际指挥存储前768字节在数据页中,剩下的会存储在数据表之外的地方.不会因为数据过多导致的数据表变大
4.枚举 集合
enum 枚举: 从列出来的数据当中选一个(性别)
set 集合: 从列出来的数据当中选多个(自动去重)
create table t6(
id int,
name varchar(10),
money float(6,3),
sex enum('男性','女性'),
hobby set('读书','跑步','美食')
);
5. 时间
详见另外一篇 mysql必知必会文章的内容
License:
CC BY 4.0