数据类型
2019-03-29 14:33:37 0 举报
AI智能生成
MYSQL的数据类型
作者其他创作
大纲/内容
数值
详情
详情
Tinyint
Smallint
Mediumint
Int/Integer
Bigint
Float
Double
Decimal
日期/时间
date:日期,典型格式为:yyyy-mm-dd
time:时间,典型格式为:hh:mm:ss
datetime:日期和时间:yyyy-mm-dd hh:mm:ss
year:年,存储范围1901-2155,可以用四位数表示,也可以用两位数表示,如果是两位数0-69表示2000-2069,如果是70-99表示1970-1999。注意在存储数据时日期时间需要用单引号包起来
timestamp:时间戳,格式:yyyy-mm-dd hh:mm:ss,注意当表中的数据被修改时,时间戳会自动更新。时间戳字段不可以为空,有默认值,默认值为系统当前日期和时间
字符串
Char(定长)
使用方式char(M),M为最大字符数
Varchar(变长)
使用方式:varchar(M),M为最大字符数
Char和Varchar的区别
1.char所能存储的字符的个数少于varchar,char最多255个字符,varchar最多65535个字符
2.在用char来存储字符时如果真正存储的字符的个数小于M,那么会在末尾用空格补全,在读取该数据时会自动将尾部的空格删除,而varchar不要补空格
3.varchar在存储字符时所需空间比实际再用空间多1-2个字节,这1-2个字节就是用来保存字符所在的实际长度对,如果实际长度小于127,那么只需1个字节,如果实际长度超过127,那么需要2个字节
4.char的读取速度比varchar快,因为char只需按照后面规定的长度进行截取就可以了,而varchar需要根据后面的记录数(即1-2个字节中存储的值)计算长度再截取
5.char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节。
Text(文本)
可以存储较大的文本段,搜索速度较慢,因此如果不是特别大的内容,建议用char、varchar,注:text加默认值时没有效果
Enum(枚举型)
1.格式:变量名 enum(‘字符1’,‘字符2’,‘字符3’….);
2.作用:1.限定能够插入的数据项
2.节省存储空间,因为存储的是字符串对应的编号
2.节省存储空间,因为存储的是字符串对应的编号
3.注意事项
1.枚举类型占1-2个字节,如果值的个数在255个以内,那么占1个字节,如果超过255,但是小于65535,那么占2个字节
2.枚举型的存储原理:实际上,字段上所存储的值不是真正的字符串,而是字符串对应的下标。当系统设定枚举类型的时候, 会给枚举中每个值定义一个下标,这个下标从1开始,如enum(‘男’,‘女’,‘保密’),男的下标为1,女的下标为 2,保密的下标为3
3.如果字段被设置为enum类型,那么在插入数据时,可以插入值列表中值对应的下标
Set(集合型)
集合型,是一种可以同时选中多个数据的数据类型,本质是将指定的项按照对应的二进制位来进行控制,1表示选中,0表示未选中
1.格式:变量名 set(‘字符1’,‘字符2’,‘字符3’…)
2.注意:系统为set提供了多个字节进行保存,但是系统会自动计算来选择具体的存储单元(即自动选择用多少空间来存储)
注:MYSQL中字符串要用单引号包起来
0 条评论
下一页