分类: Mysql/postgreSQL
2009-07-11 14:11:23
mysql数值类型
mysql提供了整数和浮点数的数值类型。可根据所要表示的值的范围选择相应的类型。
对于整数类型,如果指定了auto_increment属性,则列必须为primary key或unique索引。将null插入auto_increment列将会插入一个大于该列中当前最大值的值。如果指定了unsigned属性,则相应的整数类型不允许取负值。
如果指定了zerofill属性,则用前导零填充数值类型值以达到列的显示宽度。
M
指出最大的显示尺寸。最大的合法的显示尺寸是 255 。
D
适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。
方括号(“[”和“]”)指出可选的类型修饰符的部分。
1.tinyint[(m)]
说明:非常小的整数
允许的属性:auto_increment,unsigned,zerofill
取值范围:-128到127(-27到27-1),或者如果为unsigned,则0到255(0到28-1)
缺省值:如果列为null;则为null;如果列为notnull,则为0
存储需求:1字节
2.smallint[(m)]
说明:小整数
允许的属性:auto_increment,unsigned,zerofill
取值范围:-32768到32767(-215到215-1),或者如果为unsigned,则0到65535(0到216-1)
缺省值:如果列可为null;则为null;如果列为notnull,则为0
存储需求:2字节
3.mediumint[(m)]
说明:中等大小的整数
允许的属性:auto_increment,unsigned,zerofill
取值范围:-8388608到8388607(-223到223-1),或者如果为unsigned,则0到1677215(0到224-1)
缺省值:如果列可为null,则为null;如果列为notnull,则为0
存储需求:4字节
4.int[(m)]
说明:标准大小的整数
允许的属性:auto_increment,unsigned,zerofill
取值范围:-2147483648到2147483647(-231到231-1),或者如果为unsigned,则0到4294967295(0到232-1)
缺省值:如果列为null,则为null;如果列为notfull,则为0
存储需求:4字节
同义词:integer[(m)]
5.bigint[(m)]
说明:大整数
允许的属性:auto_increment,unsigned,zerofill
取值范围:-9223372036854775808到9223372036854775807(-263到263-1),或者如果为unsigned,则0到18446744073709551615(0到264-1)
缺省值:如果列可为null,则为null;如果列为notnull,则为0
存储需求:8字节
6.float[(m,d)]
说明:小浮点数;单精度(精度小于double)
允许的属性:zerofill
取值范围:最小非零值为±1.75494351e-38;最大非零值为±3.402823466e38
缺省值:如果列可为null,则为null;如果列为notnull,则为0
存储需求:4字节
同义词:mysql3.23版以前,float(4)为具有缺省m和d值的float的同义词。
注释:在mysql3.23以后,float(4)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)
7.double[(m,d)]
说明:大浮点数;双精度(比float更精确)
允许的属性:zerofill
取值范围:最小非零值为±2.2250738585072014e-308;最大非零值为±1。79769313-48623157e308
缺省值:如果列可为null,则为null;如果列为notnull,则为0
存储需求:8字节
同义词:doubleprecision[(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,如果列为notnull,则为0
存储需求:对于mysql3.23前的版本,为m字节,而mysql3.23以后的版本,为m2字节。
同义词:numeric(m,d)
注释:在mysql3.23以后,m的值为符合ansisql标准,不包括符号字符或小数点所占的字节数。
mysql串类型
mysql的串类型常用来存储文本,它不但是通用的而且还能存储任何数据。可用串类型来存储最大长度可变的值,而且可以选择在处理值时是否区分大小写。
1.char(m)
说明:0到m字节长的定长字符串。在mysql3.23版以前,m应该为一个1到255之间的整数。而mysql3.23版以后,m应该为一个0到255之间的整数。短于m个字符的串存储进右边补空格。长于m个字符的串存储时剪断为长度是m的串。在检索值时,去掉后跟的空格。
允许的属性:binary
允许的长度:0到m字节
缺省值:如果列可为null,则为null;如果列为notnull,则为“”
存储需求:m字节
比较:不区分大小写(如果具有binary属性,则区分大小写)
2.varchar(m)
说明:0到m字节长的可变长字符串。m应该为1到255之间的一个整数,或者自mysql3.23后为0到255之间的一个整数。存储时后跟的空格被去掉。存储时,大于m个字符的串剪断为m个字符。
允许的属性:binary
允许的长度:0到m字节
缺省值:如果列可为null,则为null;如果列为notnull,则为“”
存储需求:值的长度,加上1字节用来记录长度
比较:不区分大小写(如果具有binary属性,则区分大小写)
3.tinyblob
说明:小blob值
允许的属性:除通用属性外无其他属性
允许的长度:0到255(0到28-1)字节
缺省值:如果列可为null,则为null管理员在2009年8月13日编辑了该文章文章。