对于各种数据库中列类型尽管大同小异,但是对于它的列类型还是需要弄清楚的,千万不能凭自己认为的方式去套任何一种数据库,虽然可能对但是你还不了解。下面就对Mysql中各种列类型做一点记录。
Mysql中的列类型有3种基本的类型:数字类型,日期时间类型,字符串类型。
数字类型:
数字类型又包括整数类型和浮点型。
对于整型数据,我们同时可以指定他为无符号类型即UNSIGNED
对于所有的数字类型我们都可以给他指定ZEROFULL属性,这样当一个数据的长度小于指定的长度的时候那么会用0来补齐。
常见的整型类型如下:
名称 所占字节数 取值范围
tinyint 1 -127~128 | 0~2500
samllint 2 -2^15~2^15-1 | 0~2^16
mediuint 3 -2^23~2^23-1 | 0~2^24
int 4 -2^31~2^31-1 | 0~2^32
常见的浮点型如下:
float(M,D) M表示显示宽度,D表示精度
double(M,D) M,D的意义同上
decimal(M,[D]) M,D意义同上,但是decimal类型是以char类型存储的数据,因此其存储范围取决于显示宽度M
日期时间类型:
日期时间类型的话,因为我们一般是以char的方式存储时间戳,所以这种类型一般情况下少用一些,但是还是得了解,最起码知道。
名称 存储方式
date yyyy-mm-dd
time hh:mm:ss 注意:时机取值中时间取值方式为:H:i:s分别代表时、分、秒
datetime yyy-mm-dd hh:mm:ss
year([2|4]) 当指定值为2时则存储方式为:70,如果指定值为4则存储方式为:1970
字符串类型:
字符串类型分为3类:一类为普通字符串即小文本,包括char(固定长度)和varchar(可变长度)两种类型。一般情况下,char类型的速度要快一些,所以一般能确定的字符数据的类型通常都为char类型。
第二类为TEXT和BLOB类型。
BLOB的全称为大二进制对象(binary large objects),他支持任何数据类型,包括图像、声音等。
实际应用中除了TEXT区分大小写而BLOB不区分大小写外,这两种数据类型没什么区别。
第三类包含两种特殊的类型:ENUM和另外一种SET,因为我们常用的是ENUM即枚举,所以我只说这种类型。
枚举类型最大可枚举65535即2^16个元素,但是通常我们不用这么多,一般用于性别枚举,即只含男或者女。