MySQL列类型和其属性

1、数值类型:

整型:整型有正负,但加上UNSIGNED关键字后定义出无符号类型,则只有正数,eg:tinyint unsigned的取值范围为(0~255);

tinyint1字节,范围(-128~127)
smallint2字节,范围(-32768~32767)
mediumint3字节,范围(-8388608~8388607)
int4字节,范围(-2147483648~2147483647)
bigint5字节,范围(+-9.22*10的18次方)

浮点型:

float(m,d)4字节,单精度浮点型,m为总位数,d为小数位数
double(m,d)8字节,双精度浮点型,m为总位数,d为小数位数
decimal(m,d)存储为字符串的浮点数

2、日期与时间类型

date3字节,日期,格式:2017-03-24
time3字节,时间,格式:17:53:35
datetime8字节,日期时间,格式:2017-03-24 17:53:35
timestamp4字节,时间戳,自动存储记录的修改时间,格式同datetime
year1字节,年份

3、字符串类型

char(n)固定长度,最多255个字符,实际占用空间n
varchar(n)可变长度,最多65535个字符,实际占用空间m(实际存储长度)+1
tinytext可变长度,最多255个字符
text可变长度,最多65535个字符
mediumtext可变长度,最多存储2的24次方-1个字符
longtext可变长度,最多存储2的32次方-1个字符

4、其他类型

enum(member1,member2,member3....)枚举,最多包含65535个成员
set(member1,member2....member64)set类型,最多包含64个成员

列类型属性

1、AUTO_INCREMENT:作用于主键,自增

2、binary:只用char和varchar值,当为列指定了该属性,将以区分大小的方式排序

3、default:无法作用与BLOB和TEXT值,为列定义该属性后,在没有值的情况下为该列插入一个默认值

4、index:为该列创建一个普通索引

6、not null:防止向该列插入null值,比较重要的列建议都设置此属性

7、null:当该列指定为null时,该列可以为空

8、primary key:设置该列为主键

9、unique:确保该列所有值都不相同,除了null可以重复,一边用在eamil等列

10、zerofill:可用于任何数值类型的列,作用是用0填充字段剩余的空间


书山有路勤为径 学海无涯苦作舟