SQL列类型

列类型的几种基本规则
M:表示最大显示宽度,最大有效显示宽度255
D:适用于浮点和定点类型,表示小数点后面的位数
方括号: [],表示可选部分
如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性



数值类型
//数值类型//
这些类型包括严格数值数据类型(INTEGERSMALLINT、DECIMAL和NUMERIC),
以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。


//字节说明
tinyint      1个字节  范围为+-127,无符号位则0-255
smallint     2个字节  范围为+-32768,无符号位则0-65535
mediumint    3个字节  范围为+-8388607,无符号位则0-16777215
int          4个字节  范围为+-2147483648,无符号位则0-4294967295
bigint       8个字节,范围为+-9223372036854775808,无符号位则18446744073709551615


TINYINT[(M)] [UNSIGNED] [ZEROFILL]
很小的整数。带符号的范围是-128到127。无符号的范围是0到255。

BOOL,BOOLEAN
是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是INT的同义词。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]     //大整数

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
小(单精度)浮点数。
允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。
这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
M是小数纵位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
如果指定UNSIGNED,不允许负值。

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
普通大小(双精度)浮点数。
允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。
这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。
如果指定UNSIGNED,不允许负值



//日期和时间类型
DATE
日期。支持的范围为'1000-01-01''9999-12-31'。
MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符串或数字为DATE列分配值。

DATETIME
日期和时间的组合。
支持的范围是'1000-01-01 00:00:00''9999-12-31 23:59:59'。
MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。

TIMESTAMP[(M)]
时间戳。范围是'1970-01-01 00:00:00'到2037年。
TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。
TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。

TIME
时间。范围是'-838:59:59''838:59:59'。
MySQL以'HH:MM:SS'格式显示TIME值,但允许使用字符串或数字为TIME列分配值。

YEAR[(2|4)]
两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。
MySQL以YYYY 格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。

//存储字节说明
date        3个字节
datetime    8个字节
timestamp   4个字节
time        3个字节
year        1个字节

//字符串类型//
CHAR
VARCHAR  //变长字符串

 

posted @ 2016-11-02 10:55  Xiao|Deng  阅读(1044)  评论(0编辑  收藏  举报