第十一章 列类型
mysql 支持多种列类型:数值型,日期时间型和字符型。
11.1 列类型概述
11.1.1 数值类型概述
M 最大显示宽度,最大有效显示宽度为255.显示宽度与存储值的范围无关。
BIT[(M)]
位字段类型。M表示每个值的位数,范围为1到64。如果M被省略,默认为1
TINYINT[(M)] [UNSINGED] [ZEROFILL]
很小的整数(一个字节)。带符号数范围为-128到127,无符号数范围为0到255.
BOOL, BOOLEAN
是TINYINT(1)的同义词,zero 为假,非zero 为真。
SAMLLINT[(M)] [UNSINGED] [ZEROFILL]
小的整数(两个字节)。
MEDIUINT[(M)] [UNSINGED] [ZEROFILL]
中等大小的整数(三个字节)。
INT[(M)] [UNSINGED] [ZEROFILL]
普通大小的整数(四个字节)。
INTEGER[(M)] [UNSINGED] [ZEROFILL]
同INT
BIGINT[(M)] [UNSINGED] [ZEROFILL]
大整数(八个字节)。
FLOAT[(M,D)] [UNSINGED] [ZEROFILL]
单精度浮点数。 使用FLOAT会在MYSQL中出问题,因为MYSQL中所有计算都用双精度完成。
DOUBLE[(M,D)] [UNSINGED] [ZEROFILL]
双精度浮点数
11.1.2 日期时间类型概述
DATE
日期。范围 1000-01-01 到 9999-12-31。 mysql 以“YYYY-MM-DD”格式显示。
DATETIME
日期和时间的组合。范围1000-01-01 00:00:00 到 9999-12-31 23:59:59。 以“YYYY-MM-DD HH:MM:SS”格式显示
TIMESTAMP
时间戳。TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。
TIME
时间。 HH-MM-SS
YEAR[(2|4)]
两位或四位格式的年。
11.1.3 字符串类型概述
[NATIONAL]CHAR(M)[BINARY|ASCII|UNICODE]
固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示长度,最长为255。
当查找CHAR值尾部空格被删除。
[NATIONAL]VARCHAR(M)[BINARY]
变长字符串。M为最大列长为65535.
BINARY(M)
类似于CHAR,用了保存二进制字节字符。
TINYBLOB
最大长度为255字节的BLOB列。
TINYTEXT
最大长度为255字节的TEXT列
BLOB
最大长度为65535字节的BLOB列
TEXT
最大长度为65535字节的TEXT列
MEDIUMBLOB
MEDIUMTEXT
LONGBLOB
LONGTEXT
ENUM('value1','value2'...)
枚举类型,用整数表示。只能有一个值的字符串。
SET
一个设置,字符串对象可以有零个或多个值。
11.2 数值类型
同上
11.3 日期时间类型
11.3.1 DATETIME DATE 和 TIMESTAMP类型
11.3.1.1 TIMESTAMP属性
TIMESTAMP 显示格式和DATE相同
可以将时间戳指定为默认值或自定更新值,只能选择一个。
11.3.2 TIME类型
11.3.3 YEAR类型
11.4 STRING类型
11.4.1 CHAR和VARCHAR类型
存储方式:varchar会有一个表示长度的字节(如下表)
值 CHAR(4) 存储需求 VARCHAR(4) 存储需求
'' ' ' 4byte '' 1byte
'ab' 'ab ' 4byte 'ab' 3byte
'abcd' 'abcd' 4byte 'abcd' 5byte
'abcde' 'abcd' 4byte 'abcd' 5byte
11.4.2 BINARY 和 VARBINARY 类型
同CHAE and VARCHAR
11.4.3 BLOB 和 TEXT类型
BLOB是一个二进制大对象,可以容纳可变数量的数据。
BLOB可以视为二级制字符串(VARBINARY),TEXT可视为非二进制字符串(VARCHAR)。
11.4.4 ENUM类型
阅读(400) | 评论(0) | 转发(0) |