Mysql支持的数据类型

一、数值类型

numbers

注意事项:
1. int类型里面默认的数据宽度是11,即int(11)
 关于zerofill,在数字位数不够的空间用字符0填充
 例如:

n2

2.整数类型有AUTO_INCREMENT的属性
AUTO_INCREMENT的值一般从1开始,每行增加1,插入NULL到一个AUTO_INCREMENT列时,Mysql插入一个比该列中当前最大值大1的值
一个表中最多只能有一个AUTO_INCREMENT列
使用AUTO_INCREMENT的条件:
该列应该定义为NOT NULL,并且为PRIMARY KEY 或者UNIQUE键

 例如:

3.BIT位数据类型查询方式
bit位数据类型列不能直接查询得出结果,使用bin()显示为二进制格式,或者hex()显示为十六进制格式函数进行读取

 例如:

n3

 

二、日期和时间类型

time

注意事项:
1.经常插入或者跟新日期为当前系统时间通常用TIMESTAMP来表示
但是MySQL规定TIMESTAMP类型字段只能有一列的默认值为current_timestamp,第二个TIMESTAMP字段的默认值为0,即0000-00-00 00:00:00;时间与时区相关

2. DATETIME是DATE和TIME的结合

3.TIMESTAMP 和DATETIME的区别
A.TIMESTAMP支持的范围较小
B.表中第一个TIMESTAMP列自动设置为系统时间;如果列中插入NULL或者不明确的赋值都会自动设置该列的值为当前的日期和时间;超过TIMESTAMP的取值范围时,直接由0000-00-00 00:00:00填补
C.TIMESTAMP的插入和查询都受当地时区的影响,更能反应实际日期;DATETIME则只能反映出插入时当地的失去,其他时区的人查看数据必然会有误差

4.YEAR
有4位格式(允许的值是1901~2155、0000,默认值)的年,有2位格式(允许的值70-69,即1970~2069,Mysql5.5.27以后版本不再支持)的年

三、字符串类型

char

注意事项:
1.varchar和char的不同之处在于存储方式不同
 A. char列的长度固定为创建表时声明的长度,长度可以为0~255;varchar列中的值为可变长字符串,长度可以为0~65535

charst

 B.查询时char列删除了尾部的空格,而varchar则保留了这些空格
例如:

2.BINARY和VARBINARY类型:类似CHAR和VARCHAR类型,不同的是它们包含二进制字符串而不包含非二进制字符串;CHAR(M)、VARCHAR(M)中的M表示字符长度,BINARY(M)和VARBINARY(M)中M表示字节的长度

3.ENUM类型(枚举类型)
对于1~255个成员的枚举需要1个字节存储,对于255~65535个成员,需要2个字节存储,最多允许65535个成员
例如:

enum

 ENUM类型是忽略大小写的,在存储”M” “f”时将它们都转换成大写,插入不存在的ENUM指定的范围内的值时,并没有警告,而是插入了enum(’M’,‘F’)的第一个值“M”,只允许从集合中选取单个值,不能一次取多个

4.SET类型
SET是一个字符串对象,包含0~64个成员,与ENUM的区别在于可以一次选取多个成员
1~8成员的集合,占1个字节
9~16成员的集合,占2个字节
17~24成员的集合,占用3个字节
25~32成员的集合,占用4个字节
33~64成员的集合,占用8个字节
例如:

对于(‘a,d,a’)这样包含重复成员的集合将取一次,写入后的结果为“a,d”
参考文档:http://dev.mysql.com/doc/refman/5.5/en/data-types.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注