MySQL 51简体中文手册 第11章:列类型.doc

上传人:工**** 文档编号:560140507 上传时间:2023-04-30 格式:DOC 页数:22 大小:97.51KB
返回 下载 相关 举报
MySQL 51简体中文手册 第11章:列类型.doc_第1页
第1页 / 共22页
MySQL 51简体中文手册 第11章:列类型.doc_第2页
第2页 / 共22页
MySQL 51简体中文手册 第11章:列类型.doc_第3页
第3页 / 共22页
MySQL 51简体中文手册 第11章:列类型.doc_第4页
第4页 / 共22页
MySQL 51简体中文手册 第11章:列类型.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《MySQL 51简体中文手册 第11章:列类型.doc》由会员分享,可在线阅读,更多相关《MySQL 51简体中文手册 第11章:列类型.doc(22页珍藏版)》请在金锄头文库上搜索。

1、第11章:列类型目录 11.1. 列类型概述 11.1.1. 数值类型概述 11.1.2. 日期和时间类型概述 11.1.3. 字符串类型概述 11.2. 数值类型 11.3. 日期和时间类型 11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 11.4. String类型 11.4.1. CHAR和VARCHAR类型 11.4.2. BINARY和VARBINARY类型 11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5.

2、列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。本章首先对这些列类型进行了概述,然后更加详细地描述了各种列的类型,以及列类型存储需求的总结。概述很简单。关于具体列类型的详细信息应查阅详细的描述,例如指定值时允许使用的格式。MySQL支持处理空间数据的扩展名。关于空间类型的信息参见第19章:MySQL中的空间扩展。几种列类型描述使用了下述惯例: M表示最大显示宽度。最大有效显示宽度是255。 D适用于浮点和定点类型,并表示小数点后面的位数。最大可能的值是30,但不应大于M-2。 方括号

3、(和)表示可选部分。11.1. 列类型概述 11.1.1. 数值类型概述 11.1.2. 日期和时间类型概述 11.1.3. 字符串类型概述11.1.1. 数值类型概述下面为数值列类型的概述。详细信息参见11.2节,“数值类型”。列存储需求参见11.5节,“列类型存储需求”。M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关,相关描述见11.2节,“数值类型”。如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性。SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的一个别

4、名。在整数列定义中,SERIAL DEFAULT VALUE是NOT NULL AUTO_INCREMENT UNIQUE的一个别名。警告:应当清楚,当使用在整数值(其中一个是UNSIGNED类型)之间使用减号时,结果是无符号。参见12.8节,“Cast函数和操作符”。 BIT(M)位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。 TINYINT(M) UNSIGNED ZEROFILL很小的整数。带符号的范围是-128到127。无符号的范围是0到255。 BOOL,BOOLEAN是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。在将来,将根据

5、标准SQL引入完全布尔类型的处理。 SMALLINT(M) UNSIGNED ZEROFILL小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。 MEDIUMINT(M) UNSIGNED ZEROFILL中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。 INT(M) UNSIGNED ZEROFILL普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。 INTEGER(M) UNSIGNED ZEROFILL这是INT的同义词。 BIGINT(M)

6、 UNSIGNED ZEROFILL大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。应清楚BIGINT列的下述内容:o 使用带符号的BIGINT或DOUBLE值进行所有算法,因此除了位函数,不应使用大于9223372036854775807(63位)的无符号的大整数! 如果这样做,结果中的最后几位可能出错,这是由于将BIGINT值转换为DOUBLE进行四舍五入时造成的错误。MySQL可以在以下情况下处理BIGINT: 当使用整数在一个BIGINT列保存大的无符号的值时。 在MIN

7、(col_name)或MAX(col_name)中,其中col_name指BIGINT列。 使用操作符(+,-,*等等)并且两个操作数均为整数时。o 总是可以使用一个字符串在BIGINT列中保存严格整数值。在这种情况下,MySQL执行字符串-数字转换,其间不存在双精度表示。o 当两个操作数均为整数值时,-、+和* 操作符使用BIGINT算法。这说明如果乘两个大整数(或来自返回整数的函数),当结果大于9223372036854775807时,会得到意想不到的结果。 FLOAT(M,D) UNSIGNED ZEROFILL小(单精度)浮点数。允许的值是-3.402823466E+38到-1.175

8、494351E-38、0和1.175494351E-38到3.402823466E+38。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。M是小数纵位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。如果指定UNSIGNED,不允许负值。使用浮点数可能会遇到意想不到的问题,因为在MySQL中的所有计算用双精度完成。参见A.5.7节,“解决与不匹配行有关的问题”。 DOUBLE(M,D) UNSIGNED ZEROFILL普通大小(双精度)浮点数。允许的值是-1.7976931348623157E+308到

9、-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。如果指定UNSIGNED,不允许负值。 DOUBLE PRECISION(M,D) UNSIGNED ZEROFILL, REAL(M,D) UNSIGNED ZEROFILL为DOUBLE的同义词。除了:如果SQL服务器模式包括REAL_AS_

10、FLOAT选项,REAL是FLOAT的同义词而不是DOUBLE的同义词。 FLOAT(p) UNSIGNED ZEROFILL浮点数。p表示精度(以位数表示),但MySQL只使用该值来确定是否结果列的数据类型为FLOAT或DOUBLE。如果p为从0到24,数据类型变为没有M或D值的FLOAT。如果p为从25到53,数据类型变为没有M或D值的DOUBLE。结果列范围与本节前面描述的单精度FLOAT或双精度DOUBLE数据类型相同。FLOAT(p)语法与ODBC兼容。 DECIMAL(M,D) UNSIGNED ZEROFILL压缩的“严格”定点数。M是小数位数(精度)的总数,D是小数点(标度)后

11、面的位数。小数点和(负数)的-符号不包括在M中。如果D是0,则值没有小数点或分数部分。DECIMAL整数最大位数(M)为65。支持的十进制数的最大位数(D)是30。如果D被省略, 默认是0。如果M被省略, 默认是10。如果指定UNSIGNED,不允许负值。所有DECIMAL列的基本计算(+,-,*,/)用65位精度完成。 DEC(M,D) UNSIGNED ZEROFILL, NUMERIC(M,D) UNSIGNED ZEROFILL, FIXED(M,D) UNSIGNED ZEROFILL是DECIMAL的同义词。FIXED同义词适用于与其它服务器的兼容性。11.1.2. 日期和时间类型

12、概述本节综合讨论了临时列类型。详细信息,参见11.3节,“日期和时间类型”。列存储需求参见11.5节,“列类型存储需求”。 DATE日期。支持的范围为1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式显示DATE值,但允许使用字符串或数字为DATE列分配值。 DATETIME日期和时间的组合。支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59。MySQL以YYYY-MM-DD HH:MM:SS格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。 TIMESTAMP(M)时间戳。范围是1970-01-

13、01 00:00:00到2037年。TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。TIMESTAMP值返回后显示为YYYY-MM-DD HH:MM:SS格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。注释:MySQL 4.1以前使用的TIMESTAMP格式在MySQL 5.1中不支持;关于旧格式的信息参见MySQL 4.1 参考手册。 TIME时间。范围是-838

14、:59:59到838:59:59。MySQL以HH:MM:SS格式显示TIME值,但允许使用字符串或数字为TIME列分配值。 YEAR(2|4)两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。MySQL以YYYY 格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。11.1.3. 字符串类型概述本节综合讨论了字符串列类型。详细信息参见11.4节,“String类型”。列存储需求参见11.5节,“列类型存储需求”。在某些情况中,MySQL可以将一个字符串列更改为不同于CREATE TABLE或ALTER TABLE语句中所给出的类型。参见13.1.5.1节,“沉寂的列规格变更”。MySQL 5.1字符串数据类型包括部分在MySQL 4.1之前的版本中没有的特性: 许多字符串数据类型的列定义可以包括指定字符集的CHARACTER SET属性,也可能包

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号