10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 从本手册中摘录

11.1.1数字数据类型语法

对于整数数据类型,表示最大显示宽度。最大显示宽度为255.显示宽度与类型可以存储的值范围不相关,如图所示第11.1.6节,“数值类型属性”

对于浮点和定点数据类型,是可存储的总位数。

正如MySQL 8.0.17的那样,弃用显示宽度属性用于整数数据类型;你应该期望在MySQL的未来版本中移除对它的支持。

如果您指定Zerofill.对于数字列,MySQL会自动添加无符号属性到列。

从MySQL 8.0.17开始Zerofill.属性不赞成用于数值数据类型;你应该期望在MySQL的未来版本中移除对它的支持。考虑使用另一种方法来产生此属性的效果。例如,应用程序可以使用LPAD()函数到零焊盘编号,直到所需的宽度,或者它们可以存储格式化的数字char列。

允许的数字数据类型无符号属性也允许.但是,这些数据类型默认签名,所以属性无效。

从MySQL 8.0.17开始无符号属性不赞成用于类型为的列漂浮双倍的,小数(以及任何同义词);你应该期望在MySQL的未来版本中移除对它的支持。考虑使用简单查看限制而不是此类列。

串行是一个别名bigint unsigned not null auto_increment是唯一的

串行默认值在整数列的定义中是not null auto_increment是唯一的

警告

当您在Integer值之间使用减法时无符号,结果为无符号,除非no_unsigned_subtraction.启用S​​QL模式。看到第12.11节,“转换函数和操作符”

  • 少量[()]

    比特值类型。1至64表示每个值的位数。默认值为1被省略了。

  • tinyint [()(无符号)(补零)

    一个很小的整数。带符号的范围是-128127..无符号范围是0255.

  • BOOL.布尔基

    这些类型是同义词Tinyint(1).0的值被认为是假的。非零值被认为为真:

    MySQL>选择(0,'真','false');+ ---------------------- + |如果(0,'真','false')|+ ---------------------- + |假|+ ---------------------- + mysql>选择if(1,'真','false');+ ---------------------- + |if(1,'真','false')|+ ---------------------- + |真实| +------------------------+ mysql> SELECT IF(2, 'true', 'false'); +------------------------+ | IF(2, 'true', 'false') | +------------------------+ | true | +------------------------+

    但是,值真正的错误的只是别名10,分别如此所示:

    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

  • 短整型(()(无符号)(补零)

    一个小整数。带符号的范围是-3276832767.无符号范围是065535

  • MEDIUMINT [()(无符号)(补零)

    中型整数。带符号的范围是-83886088388607..无符号范围是016777215

  • int [()(无符号)(补零)

    正常大小的整数。带符号的范围是-21474836482147483647.无符号范围是04294967295

  • 整数[()(无符号)(补零)

    此类型是一个同义词

  • 长整型数字[()(无符号)(补零)

    一个大整数。带符号的范围是-92233720368547758089223372036854775807.无符号范围是018446744073709551615

    串行是一个别名bigint unsigned not null auto_increment是唯一的

    你应该意识到的一些事情big列:

    • 所有算术都使用签名完成big或者双倍的值,所以你不应该使用大于的unsigned大整数9223372036854775807(63位)除了位函数之外!如果您这样做,结果中的一些最后一位数字可能是错误的,因为在转换时舍入错误big价值到A.双倍的

      MySQL可以处理big在以下情况下:

    • 控件中总是可以存储精确的整数值big通过使用字符串存储它来列。在这种情况下,MySQL执行字符串到数字转换,该转换涉及中间双精度表示。

    • -+,操作员使用big两个操作数是整数值时算术。这意味着如果将两个大整数乘以(或从返回整数的函数的结果),则当结果大于时可能会出现意外结果9223372036854775807

  • 十进制(([,D]])[unsigned] [Zerofill]

    一个包装精确的定点号。是总位数(精度)和D是小数点(刻度)后的位数。小数点和(对于负数)-标志不计入.如果D是0,值没有小数点或分数部分。最大位数() 为了小数是65。支持的最大小数数(D)是30。如果D省略,默认为0。如果省略,默认为10.(还有限制文本的时间小数文字可以;看第12.25.3节“表达处理”.)

    无符号,如果指定,则禁止使用负数。从MySQL 8.0.17开始无符号属性不赞成用于类型为的列小数(以及任何同义词);你应该期望在MySQL的未来版本中移除对它的支持。考虑使用简单查看限制而不是此类列。

    所有基本计算(+, - ,*,/),小数列完成了65位的精度。

  • 12月(([,D]])[unsigned] [Zerofill]数字(([,D]])[unsigned] [Zerofill]固定的[([,D]])[unsigned] [Zerofill]

    这些类型是同义词小数.的固定同义词可用于与其他数据库系统的兼容性。

  • 漂浮[(D)(无符号)(补零)

    一个小(单精度)浮点数。允许的值-3.402823466e + 38.-1.175494351e-380,1.175494351e-383.402823466 e+38.这些是基于IEEE标准的理论限制。根据硬件或操作系统的不同,实际范围可能会稍微小一些。

    是数字的总数和D是小数点后面的位数。如果D被省略,值被存储到硬件允许的限制。单精度浮点数大约精确到小数点后7位。

    漂浮(D是非标准MySQL扩展。正如MySQL 8.0.17的那样,不推荐使用此语法,并且您应该期望在未来版本的MySQL中删除它。

    无符号,如果指定,则禁止使用负数。从MySQL 8.0.17开始无符号属性不赞成用于类型为的列漂浮(以及任何同义词),您应该期望支持它在未来版本的MySQL中删除。考虑使用简单查看限制而不是此类列。

    使用漂浮可能会给你一些意想不到的问题,因为MySQL中的所有计算都是用双精度完成的。看到第b.3.4.7节“解决问题”第b.3.4.7节“没有匹配行”

  • 漂浮(p)[unsigned] [Zerofill]

    浮点数。p表示位的精度,但MySQL仅使用此值来确定是否使用漂浮或者双倍的对于生成的数据类型。如果p是0到24,数据类型变为漂浮没有或者D值。如果p是25到53,数据类型变为双倍的没有或者D值。得到的柱的范围与单精度相同漂浮或双精度双倍的本节前面描述的数据类型。

    无符号,如果指定,则禁止使用负数。从MySQL 8.0.17开始无符号属性不赞成用于类型为的列漂浮(以及任何同义词),您应该期望支持它在未来版本的MySQL中删除。考虑使用简单查看限制而不是此类列。

    漂浮(p用于ODBC兼容性提供了语法。

  • 双((D)(无符号)(补零)

    正常大小(双精度)浮点数。允许的值-1.7976931348623157e + 308-2.2250738585072014e-3080,2.2250738585072014 e - 3081.7976931348623157 e + 308.这些是基于IEEE标准的理论限制。根据硬件或操作系统的不同,实际范围可能会稍微小一些。

    是数字的总数和D是小数点后面的位数。如果D被省略,值被存储到硬件允许的限制。双精度浮点数精确到大约15位小数。

    双倍的(D是非标准MySQL扩展。正如MySQL 8.0.17的那样,不推荐使用此语法,您应该期望在未来版本的MySQL中删除它。

    无符号,如果指定,则禁止使用负数。从MySQL 8.0.17开始无符号属性不赞成用于类型为的列双倍的(以及任何同义词),您应该期望支持它在未来版本的MySQL中删除。考虑使用简单查看限制而不是此类列。

  • 双精度[(D)(无符号)(补零)真实的[(D)(无符号)(补零)

    这些类型是同义词双倍的.例外:如果real_as_float.启用SQL模式,真实的是同义词吗漂浮而不是双倍的