您的位置:首页 > 数据库 > MySQL

mysql数据类型分析

2016-08-03 18:44 295 查看
CHAR, VARCHAR, TEXT

CHAR 定长字符串,占用空间大,速度快
VARCHAR 变长字符串,占用空间小,速度慢
CHAR后面的空格会被去掉,VARCHAR不会去掉
TEXT 不能有默认值
数据检索的效率 CHAR > VARCHAR > TEXT
ENUM()

枚举的每一个元素都有一个序号
自动去掉元素后面的空格
插入数据时value必须是枚举中的一个,除了NULL
只能从列表中选取一个值
SET()

可以从列表中选取多个值,多个值之间用逗号分隔
以二进制数值保存在表中

YEAR:

保存年份 1901-2155
可以保存数值形式,也可以保存这符串形式
当输入两位数字或两位字符串的时候会自动在前面加20或19
当插入一个数字0时,保存为0000
当插入一个字符串0时,保存为2000
TIME:

由天数:小时:分钟:秒组成
INSERT tablename VALUES(‘1 12:12:12’); 存成 36:12:12
INSERT tablename VALUES(‘11:11’); 存成11:11:00
INSERT tablename VALUES(‘1234’); 存成00:12:34
INSERT tablename VALUES(‘12’); 存成00:00:12
INSERT tablename VALUES(‘0’); 存成00:00:00
DATE:

1000-0101 ~ 9999-12-31
INSERT tablename VALUES(‘12-6-7’); 2012-06-07
INSERT tablename VALUES(‘12/6/7’); 2012-06-07
INSERT tablename VALUES(‘120607’); 2012-06-07
INSERT tablename VALUES(‘12@6/7’); 2012-06-07
一般时间用整型保存时间戳

浮点类型:

当插入数据小数位太多时,float, double 会自动四舍五入; DECIMAL会产生一个warning.
DECIMAL内部以字符串形式保存
当数值以字符串形式插入时,float, double保存结果可能不对, 但DECIMAL不会错
精度要求高时,应当使用DECIMAL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: