对于整数数据类型,米
最大显示宽度。最大显示宽度为255。如中所述,显示宽度与类型可以存储的值的范围无关第11.1.6节,“数值类型属性”。
对于浮点和定点数据类型,米
是可存储的总位数。
如果您指定补零
对于数字列,MySQL自动添加无符号
属性设置为列。
的数值数据类型无符号
属性也允许签署
。但是,这些数据类型默认签名,所以签署
属性无效。
串行
的别名。Bigint unsigned not null auto_increment unique
。
串行默认值
在整数列的定义中是auto_increment不为空
。
当你在一个类型的整数值之间使用减法时无符号
,结果为无符号,除非NO_UNSIGNED_SUBTRACTION
已启用SQL模式。看到第12.11节,“转换函数和操作符”。
一个比特值的类型。
米
每个值的位数,取值范围是1 ~ 64。如果是,则默认为1米
是省略了。一个很小的整数。带符号的范围是
-128年
来127
。无符号范围是0
来255
。这些类型是同义词
非常小的整数(1)
。0的值被认为是假的。非零值被认为为真:mysql> SELECT IF(0, 'true', 'false');+------------------------+ | 如果(0,“真正”、“假 ') | +------------------------+ | 假 | +------------------------+ mysql >选择如果(1,“真实”,“假”);+------------------------+ | 如果(1,“真正”、“假 ') | +------------------------+ | 真正的 | +------------------------+ mysql >选择如果(2,“真实”,“假”);+------------------------+ | 如果(2,“真正”、“假 ') | +------------------------+ | 真正的 | +------------------------+
然而,值
真正的
和假
仅仅是化名1
和0
,分别如下所示:mysql> SELECT IF(0 = FALSE, 'true', ' FALSE ');+--------------------------------+ | 如果(0 = FALSE,“真”,“假的 ') | +--------------------------------+ | 真正的 | +--------------------------------+ mysql >选择如果(1 = TRUE,“真实”,“假”);+-------------------------------+ | 如果(1 = TRUE,“真正的”,“假的 ') | +-------------------------------+ | 真正的 | +-------------------------------+ mysql >选择如果(2 = TRUE,“真实”,“假”);+-------------------------------+ | 如果(2 = TRUE,“真实的”,“假的 ') | +-------------------------------+ | 假 | +-------------------------------+ mysql >选择如果(2 = FALSE,“真实的”,“假”);+--------------------------------+ | 如果(2 = FALSE,“真实的”,“假的 ') | +--------------------------------+ | 假 | +--------------------------------+
最后两个语句显示了因为
2
两者都不相等1
也不0
。一个小整数。带符号的范围是
-32768
来32767
。无符号范围是0
来65535
。一个中等大小的整数。带符号的范围是
-8388608
来8388607
。无符号范围是0
来16777215
。把普通的整数。带符号的范围是
-2147483648
来2147483647
。无符号范围是0
来4294967295
。是的同义词
㈡
。一个大整数。带符号的范围是
-9223372036854775808
来9223372036854775807
。无符号范围是0
来18446744073709551615
。串行
的别名。Bigint unsigned not null auto_increment unique
。有些事情你应该知道关于
长整型数字
列:所有算术都使用签名完成
长整型数字
或者双
值,因此不应该使用大于9223372036854775807
(63位)除了有位函数!如果这样做,由于转换a时的舍入错误,结果中的最后一些数字可能是错误的长整型数字
价值双
。MySQL可以处理
长整型数字
在下列情况下:控件中使用整数存储较大的无符号值时
长整型数字
列。在
分钟(
或者col_name
)MAX (
,在那里col_name
)col_name
是指一个长整型数字
列。
控件中总是可以存储精确的整数值
长整型数字
列,使用字符串存储。在这种情况下,MySQL执行字符串到数字的转换,不涉及中间的双精度表示。的
-
,+
,*
操作人员使用长整型数字
当两个操作数都是整数值时进行算术运算。这意味着如果将两个大整数相乘(或返回整数的函数的结果),当结果大于时可能会得到意外的结果9223372036854775807
。
一个包装”确切的”定点数。
米
是总位数(精度)和D
是小数点(刻度)后的位数。小数点和(对于负数)-
符号不计入米
。如果D
为0,则值没有小数点或小数部分。最大位数(米
)小数
是65。支持的最大小数数(D
)是30。如果D
省略,默认为0。如果米
省略,默认为10。(文本的长度也有限制小数
文字是什么;看到第12.22.3节,“表达式处理”。)无符号
,如果指定,则禁止使用负数。所有基本计算(
+, -, *, /
),小数
列的精度为65位。12月((
,米
(,D
])][无符号](补零)数字((
,米
(,D
])][无符号](补零)固定的[(
米
(,D
])][无符号](补零)一个小(单精度)浮点数。允许的值
-3.402823466 e+38
来-1.175494351 38吗
,0
,1.175494351 38吗
来3.402823466 e+38
。这些是基于IEEE标准的理论限制。根据硬件或操作系统的不同,实际范围可能会稍微小一些。米
是数字的总数和D
是小数点后面的位数。如果米
和D
被省略,值被存储到硬件允许的限制。单精度浮点数大约精确到小数点后7位。浮动(
是一个非标准的MySQL扩展。米
,D
)无符号
,如果指定,则禁止使用负数。使用
浮动
可能会给你一些意想不到的问题,因为MySQL中的所有计算都是用双精度完成的。看到B.3.4.7节,“解决没有匹配行的问题”。浮点数。
p
表示以位为单位的精度,但是MySQL只使用这个值来决定是否使用浮动
或者双
用于生成的数据类型。如果p
是0到24,数据类型变为浮动
没有米
或者D
值。如果p
从25到53,数据类型变成双
没有米
或者D
值。结果柱的范围与单精度相同浮动
或双精度双
本节前面描述的数据类型。浮动(
语法是为了ODBC兼容性而提供的。p
)正常大小(双精度)浮点数。允许的值
-1.7976931348623157 e + 308
来-2.2250738585072014 e - 308
,0
,2.2250738585072014 e - 308
来1.7976931348623157 e + 308
。这些是基于IEEE标准的理论限制。根据硬件或操作系统的不同,实际范围可能会稍微小一些。米
是数字的总数和D
是小数点后面的位数。如果米
和D
被省略,值被存储到硬件允许的限制。双精度浮点数精确到大约15位小数。双(
是一个非标准的MySQL扩展。米
,D
)无符号
,如果指定,则禁止使用负数。双精度((
,米
,D
)(无符号)(补零)真正的((
米
,D
)(无符号)(补零)这些类型是同义词
双
。例外:如果REAL_AS_FLOAT
启用SQL模式,真正的
是同义词吗浮动
而不是双
。