3、表字段说明:
3.1、数字:
3.1.1、整型:
说明:
整型如果指定了AUTO_INCREMENT,则列必须为PRIMARY KEY 或UNIQUE 索引;如果指定了UNSIGNED属性,则相应的整数类型不允许取负值;如果指定了ZEROFILL 属性,则用前导零填充数值类型值以达到列的显示宽度。


3.1.1.1、tinyint[(M)]
说明:非常小的整数
允许的属性:AUTO_INCREMENT, UNSIGNED, ZEROFILL
取值范围:-128 到127,或者如果为UNSIGNED,则0到255
缺省值:如果列可为NULL;则为NULL;如果列为NOT NULL,则为0
存储需求:1字节


3.1.1.2、smallint[(M)]
说明:小整数
允许的属性:AUTO_INCREMENT, UNSIGNED, ZEROFILL
取值范围:-32768 到32767,或者如果为UNSIGNED,则0到65535
缺省值:如果列可为NULL;则为NULL;如果列为NOT NULL,则为0
存储需求:2 字节


3.1.1.3、mediumint[(M)]
说明:中等大小的整数
允许的属性:AUTO_INCREMENT, UNSIGNED, ZEROFILL
取值范围:-8388608 到8388607,或者如果为UNSIGNED,则0到1677215
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0
存储需求:3 字节


3.1.1.4、int[(M)]
说明:标准大小的整数
允许的属性:AUTO_INCREMENT, UNSIGNED, ZEROFILL
取值范围:2147483648 到2147483647,或者如果为UNSIGNED,则0到4294967295
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0
存储需求:4 字节
同义词:INTEGER[(M)]


3.1.1.5、bigint[(M)]
说明:大整数
允许的属性:AUTO_INCREMENT, UNSIGNED, ZEROFILL
取值范围:-9223372036854775808 到9223372036854775807,或者如果为UNSIGNED,则0 到18446744073709551615
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0
存储需求:8 字节


3.1.2、浮点型:
3.1.2.1、float[(M,D)]
说明:小浮点数;单精度
允许的属性:ZEROFILL
取值范围:最小非零值为±1.75494351E -38; 最大非零值为±3.402823466 E+38
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0
存储需求:4 字节
同义词:MySQL3.23版以前,FLOAT(4)为具有缺省M和D值的FLOAT的同义词。
注释:在MySQL3.23以后,FLOAT(4)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)


3.1.2.2、DOUBLE[(M, D)]
说明:大浮点数;双精度
允许的属性:ZEROFILL
取值范围:最小非零值为±2.2250738585072014 E-308; 最大非零值为±1.7976931348623157 E+308
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0
存储需求:8 字节
同义词:DOUBLE PRECISION[(M, D)]和REAL[(M, D)]为DOUBLE[(M, D)] 的同义词。MySQL3.23 版以前,FLOAT(8)为具有缺省M和D值的FLOAT的同义词。
注释:在MySQL3.23 以后,FLOAT(8) 为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)。


8. DECIMAL(M, D)
说明:存储为串的浮点数(每位数字、小数点或“-”号都占1字节)。
允许的属性:ZEROFILL
取值范围:最大取值范围与DOUBLE相同;给定DECIMAL 类型的有效取值范围由M和D决定。如果D为零,则列值无小数点或小数部分。
缺省值:如果列可为NULL,则为NULL,如果列为NOT NULL则为0
存储需求:对于MySQL3.23前的版本为M字节,而MySQL3.23以后的版本为M+2字节。
同义词:NUMERIC(M,D)
注释:在MySQL3.23 以后,M 的值为符合ANSI SQL 标准,不包括符号字符或小数点所占的字节数。




3.2、字符:
说明:
MySQL的串类型常用来存储文本,它不但是通用的而且还能存储任何数据。可用串类型来存储最大长度可变的值,而且可以选择在处理值时是否区分大小写。


3.2.1、
1. CHAR(M)
说明:0 到M字节长的定长字符串。在MySQL3.23版以前,M应该为一个1到255之间的整数。而MySQL3.23版以后,M应该为一个0到255之间的整数。短于M个字符的串存储进右边补空格。长于M个字符的串存储时剪断为长度是M的串。在检索值时,去掉后跟的空格。
允许的属性:BINARY
允许的长度:0到M字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为""
存储需求:M字节
比较:不区分大小写(如果具有BINARY属性,则区分大小写)


2. VARCHAR(M)
说明:0到M字节长的可变长字符串。M应该为1到255之间的一个整数,或者自MySQL3.23后为0到255之间的一个整数。存储时后跟的空格被去掉。存储时,大于M个字符的串剪断为M个字符。
允许的属性:BINARY
允许的长度:0到M 字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为""
存储需求:M值的长度,加上1字节用来记录长度
比较:不区分大小写(如果具有BINARY属性,则区分大小写)


3. TINYBLOB
说明:小BLOB值
允许的属性:除通用属性外无其他属性
允许的长度:0 到2 5 5(0 到28-1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的1个字节
比较:区分大小写


4. BLOB
说明:常规大小的BLOB 值
允许的属性:除通用属性外无其他属性
允许的长度:0 到6 5 5 3 5(0 到216-1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的2 个字节
比较:区分大小写


5. MEDIUMBLOB
说明:中等大小的BLOB 值
允许的属性:除通用属性外无其他属性
允许的长度:0 到16 7 7 7 2 15(0 到224 -1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的3个字节
比较:区分大小写


6. LONGBLOB
说明:大BLOB值
允许的属性:除通用属性外无其他属性
允许的长度:0 到4 2 9 4 9 6 7 2 9 5(0 到23 2-1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的4 个字节
比较:区分大小写


7. TINYTEXT
说明:小TEXT 值
允许的属性:除通用属性外无其他属性
允许的长度:0 到2 5 5(0 到2 8 -1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的2 个字节
比较:不区分大小写


8. TEXT
说明:常规大小的TEXT值
允许的属性:除通用属性外无其他属性
允许的长度:0 到6 5 5 3 5(0 到216-1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的2 个字节
比较:不区分大小写


9. MEDIUMTEXT
说明:中等大小的TEXT 值
允许的属性:除通用属性外无其他属性
允许的长度:0 到16 7 7 7 2 15(0 到22 4-1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的3 个字节
比较:不区分大小写


10. LONGTEXT
说明:大TEXT 值
允许的属性:除通用属性外无其他属性
允许的长度:0 到4 2 9 4 9 6 7 2 9 5(0 到23 2-1)字节
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”
存储需求:值的长度加上用于记录长度的4 个字节
比较:不区分大小写


11. ENUM(“v a l ue 1”, “v a l ue 2”, ...)
说明:枚举,列值可赋予值列表中的某个成员
允许的属性:除通用属性外无其他属性
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为第一个枚举值
存储需求:对1到255 个成员的枚举1个字节,对255 到65535 个成员的枚举2 个字节
比较:不区分大小写(MySQL3.22.1版以前区分大小写)


12. SET(“v a l ue 1”,“v a l ue 2”, ...)
说明:集合,列值可赋予值列表中的零个或多个成员
允许的属性:除通用属性外无其他属性
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“”(空集)
存储需求:1字节(1到8个成员的集合),2字节(9 到16个成员的集合),3字节(17到2 4个成员的集合),4 字节(2 5到3 2个成员的集合)或8字节(3 3到6 4个成员的集合)
比较:不区分大小写(MySQL3.22.1版以前区分大小写)




3.3、日期:
说明:
MySQL提供以各种形式表示时间数据的类型。这些数据有日期和时间类型。有一种特殊的时间戳类型,它在记录更改时自动更新。还有一种用于存储年份的类型,在不需要完全的日期时使用。


3.3.1、DATE
说明:"YYYY-MM-DD"格式的日期
允许的属性:除通用属性外无其他属性
取值范围:"1000-01-01"到"9999-12-31"
零值:"0000-00-00"
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为"0000-00-00"
存储需求:3 字节(MySQL3.22 版以前为4 字节)


3.3.2、TIME
说明:"HH:MM:SS"格式的时间(负值为"-HH:MM:SS"):表示占用的时间,但也可以作为日常时间
允许的属性:除通用属性外无其他属性
取值范围:"-838:59:59"到"838:59:59"零值:"00:00:00"
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为"00:00:00"
存储需求:3 字节
注释:虽然在非法值插入TIME 列时,"00:00:00"用作零值,但它也作为一个合法的值出现在正常的取值范围内


3.3.3、DATETIME
说明:以"YYYY-MM-DD hh:mm:ss"格式表示的日期和时间(两个部分都需要)
允许的属性:除通用属性外无其他属性
取值范围:"1000-01-0100:00:00"到"9999-12-3123:59:59"
零值:"0000-00-00 00:00:00"
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为"0000-00-00 00:00:00"
存储需求:8 字节


3.3.4、TIMESTAMP[(M)]
说明:以YYYYMMDDHHMMSS格式表示的时间(日期和时间)
允许的属性:除通用属性外无其他属性
取值范围:19700101000000到2037 年的某个时刻
缺省值:当前日期和时间。注意DESCRIBE和SHOW COLLUMNS报告缺省值为NULL
存储需求:4 字节
注释:插入NULL到表的第一个TIMESTAMP列将会插入当前日期和时间。更改行中其他列的值使第一个TIMESTAMP列被更新为这个修改的日期和时间。在内部计算中存储和使用的值全都为14位字符精度,与显示宽度无关。如果指定了NOT NULL属性,则此属性不起作用


3.3.5、YEAR
说明:YYYY格式表示的年份
允许的属性:除通用属性外无其他属性取值范围:1900到2155
零值:0000
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0000
存储需求:1字节
注释:YEAR 是在MySQL3.22 版中引入的