MySQL数据类型
发现自从学了oracle之后,真有点不会用MySql了,特别是对于数据类型的操作,所以今天就来复习一下MySQL的数据类型。在Oracle中,貌似没有int类型,有个varchar2的类型,什么乱七八糟的类型都把自己搞混了,个人感觉Oracle不太好用,很多MySQL直接使用的过程在Oracle中都用不了,难道是Oracle的编辑器太恶心了?
一.数值类型
1.int类型
tinyint:1字节,范围0-255
smallint:2字节,范围0-65535
mediumint:3字节,范围:8位数字
int(integer):4字节,范围:10位数字
bigint:8字节,范围:够用了
指定一个字段的类型为 INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。
2.float、double、decimal
与整数一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。比如语句 FLOAT(7,3) 规定显示的值不会超过 7 位数字,小数点后面带有 3 位数字。对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,再插入它。DECIMAL 数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。精度在这里指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的位数。比如语句 DECIMAL(7,3) 规定了存储的值不会超过 7 位数字,并且小数点后不超过 3 位。
二.字符串类型
1.char
固定长度字符串,必须带范围指示器,范围0-255,比定长大的截断,比定长小的用空格填补,用binary修饰可方便比较。
2.varchar
可变长字符串类型,必须带范围指示器,范围0-255,短于指示器不会被空格填补,长于指示器会被截断。
3.text和blob(范围0-65535)
text多用于长文本数据
blob多用于二进制形式的长文本数据
三.日期和时间类型
date YYYY-MM-DD
time HH:MM:SS
year YYYY
以上类型可描述为带连接号分隔符的字符串或者不带分隔符的整型序列,赋值时刻为字符串或者整型序列。
datetime YYYY-MM-DD HH:MM:SS
四.符合类型(ENUM和SET)
1.enum类型:只允许在集合中取一个值,大小写会自动转换
例:sex enum('男','女') 不能枚举整型 最多包含65536个元素
2.set类型:集合中取任意数量的值
最多包含64项元素。
详细介绍网址:http://blog.csdn.net/jiemushe1814/article/details/4716069