mysql数据类型不写(),MySQL的数据类型

MySQL的数据主要分成三类:数字类型、字符串类型、日期和时间类型。

整形数据类型

数据类型

取值范围

大小(字节)

TINYINT

-127~127/0~255

1

BIT

-127~127/0~255

1

BOOL

-127~127/0~255

1

SMALLINT

-32768~32767/0~65535

2

MEDIUMINT

-8388608~8388607/0~16777215

3

INT

太大不写了

4

BIGINT

太大不写了

8

关键字INT是INTEGER的同义词。

关于TINYINT、BIT、BOOL为什么同时存在,和int(11)的意义,参见《mysql int(3)与int(11)的区别》。

浮点型数据类型

FLOAT占4字节,DOUBLE占8字节。

还有DECIMAL类型。

对于DECIMAL(M,D),如果M>D,占M+2个字节,否则占D+2个字节。例如salary DECIMAL(5,2),5代表十进制数字的数目,2代表在小数点后的数字位数,这里,salary列可以存储的值范围是从-999.99到999.99(似乎还有另外的地方来存符号?)。如果溢出,截短为最大值或最小值。关键字DEC是DECIMAL的同义词。

常规字符串类型

ENUM和SET类型

类型

最大值

说明

ENUM(“value1”,…)

65535

该类型的列只可以容纳所列值之一或者为NULL

SET(“value1”,…)

2^个数-1

该类型的列可以容纳一组值或者为NULL

例如:

CREATE TABLE t(c set('a','b','c'));

a,b,c的权值分别为1,2,4,'a,b'就是3,该列取值范围为[0,7],0就是NULL,其他不合理的值都自动变为NULL。INSERT INTO t VALUES('a,b');等价于INSERT INTO t VALUES(3);。

CREATE TABLE t(c enum('a','b','c'));

a,b,c的权值分别为1,2,3,该列取值范围为[0,3],0就是NULL,其他不合理的值自动变为NULL。INSERT INTO t VALUES('b');等价于INSERT INTO t VALUES(2);。

日期和时间类型

如果赋予类型一个不合法的值,将会被0代替。

类型

取值范围

说明

DATE

1000-01-01~9999-12-31

YYYY-MM-DD

TIME

-838:58:59~835:59:59

HH:MM:SS

DATETIME

1000-01-01 00:00:00——9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

TIMESTAMP

1970-01-01 00:00:00——2037年的某个时间

专有的自动更新特性,格式同DATETIME类型

YEAR(M)

1901~2155

可指定两位数字和四位数字的格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值