MySQL数据类型及长度限制
2015-10-21 20:34
507 查看
今天php的QQ群里的朋友问了下关于tinyint(1)能存几位数据的问题,自己还真不清楚,于是自己试了下,和自己想象的还真是不一样。也欢迎大家加入php群:18952955
INT(M), M是管什么用的?
作为对 ANSI/ISO SQL92 标准的一个扩展,MySQL 也支持上面的表格所列出的整型类型 TINYINT、MEDIUMINT 和 BIGINT。另外一个扩展是 MySQL 支持随意指定一个整型数值的显示格式,这通过在类型的基本关键词后跟一个括号来实现(例如 INT(4))。这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。当与可选的扩展属性
ZEROFILL 一起使用时,缺省填补用的空格被零代替。举例来说,一个列被定义为 INT(5) ZEROFILL,插入的值 4 被检索出来时为 00004。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 MySQL 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。
下面是在网上搜到的资料(都是在长度为1的情况下)
数字类型
字符类型
枚举、集合
ENUM (最多65535个成员) 64KB
SET (最多64个成员) 64KB
时间类型
INT(M), M是管什么用的?
作为对 ANSI/ISO SQL92 标准的一个扩展,MySQL 也支持上面的表格所列出的整型类型 TINYINT、MEDIUMINT 和 BIGINT。另外一个扩展是 MySQL 支持随意指定一个整型数值的显示格式,这通过在类型的基本关键词后跟一个括号来实现(例如 INT(4))。这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。当与可选的扩展属性
ZEROFILL 一起使用时,缺省填补用的空格被零代替。举例来说,一个列被定义为 INT(5) ZEROFILL,插入的值 4 被检索出来时为 00004。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 MySQL 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。
下面是在网上搜到的资料(都是在长度为1的情况下)
数字类型
[align=left]类型[/align] | [align=left]大小[/align] | [align=left]范围(有符号)[/align] | [align=left]范围(无符号)[/align] | [align=left]用途[/align] |
[align=left]TINYINT[/align] | [align=left]1 字节[/align] | [align=left](-128,127)[/align] | [align=left](0,255)[/align] | [align=left]小整数值[/align] |
[align=left]SMALLINT[/align] | [align=left]2 字节[/align] | [align=left](-32 768,32 767)[/align] | [align=left](0,65 535)[/align] | [align=left]大整数值[/align] |
[align=left]MEDIUMINT[/align] | [align=left]3 字节[/align] | [align=left](-8 388 608,8 388 607)[/align] | [align=left](0,16 777 215)[/align] | [align=left]大整数值[/align] |
[align=left]INT或INTEGER[/align] | [align=left]4 字节[/align] | [align=left](-2 147 483 648,2 147 483 647)[/align] | [align=left](0,4 294 967 295)[/align] | [align=left]大整数值[/align] |
[align=left]BIGINT[/align] | [align=left]8 字节[/align] | [align=left](-9 233 372 036 854 775 808,9 223 372 036 854 775 807)[/align] | [align=left](0,18 446 744 073 709 551 615)[/align] | [align=left]极大整数值[/align] |
[align=left]FLOAT[/align] | [align=left]4 字节[/align] | [align=left](-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)[/align] | [align=left]0,(1.175 494 351 E-38,3.402 823 466 E+38)[/align] | 单精度 浮点数值 |
[align=left]DOUBLE[/align] | [align=left]8 字节[/align] | [align=left](1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)[/align] | [align=left]0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)[/align] | 双精度 浮点数值 |
[align=left]DECIMAL[/align] | [align=left]对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2[/align] | [align=left]依赖于M和D的值[/align] | [align=left]依赖于M和D的值[/align] | [align=left]小数值[/align] |
[align=left]CHAR[/align] | [align=left]0-255字节[/align] | [align=left]定长字符串[/align] |
[align=left]VARCHAR[/align] | [align=left]0-255字节[/align] | [align=left]变长字符串[/align] |
[align=left]TINYBLOB[/align] | [align=left]0-255字节[/align] | [align=left]不超过 255 个字符的二进制字符串[/align] |
[align=left]TINYTEXT[/align] | [align=left]0-255字节[/align] | [align=left]短文本字符串[/align] |
[align=left]BLOB[/align] | [align=left]0-65 535字节[/align] | [align=left]二进制形式的长文本数据[/align] |
[align=left]TEXT[/align] | [align=left]0-65 535字节[/align] | [align=left]长文本数据[/align] |
[align=left]MEDIUMBLOB[/align] | [align=left]0-16 777 215字节[/align] | [align=left]二进制形式的中等长度文本数据[/align] |
[align=left]MEDIUMTEXT[/align] | [align=left]0-16 777 215字节[/align] | [align=left]中等长度文本数据[/align] |
[align=left]LOGNGBLOB[/align] | [align=left]0-4 294 967 295字节[/align] | [align=left]二进制形式的极大文本数据[/align] |
[align=left]LONGTEXT[/align] | [align=left]0-4 294 967 295字节[/align] | [align=left]极大文本数据[/align] |
ENUM (最多65535个成员) 64KB
SET (最多64个成员) 64KB
时间类型
[align=left]类型[/align] | 大小 (字节) | [align=left]范围[/align] | [align=left]格式[/align] | [align=left]用途[/align] |
[align=left]DATE[/align] | [align=left]3[/align] | [align=left]1000-01-01/9999-12-31[/align] | [align=left]YYYY-MM-DD[/align] | [align=left]日期值[/align] |
[align=left]TIME[/align] | [align=left]3[/align] | [align=left]'-838:59:59'/'838:59:59'[/align] | [align=left]HH:MM:SS[/align] | [align=left]时间值或持续时间[/align] |
[align=left]YEAR[/align] | [align=left]1[/align] | [align=left]1901/2155[/align] | [align=left]YYYY[/align] | [align=left]年份值[/align] |
[align=left]DATETIME[/align] | [align=left]8[/align] | [align=left]1000-01-01 00:00:00/9999-12-31 23:59:59[/align] | [align=left]YYYY-MM-DD HH:MM:SS[/align] | [align=left]混合日期和时间值[/align] |
[align=left]TIMESTAMP[/align] | [align=left]8[/align] | [align=left]1970-01-01 00:00:00/2037 年某时[/align] | [align=left]YYYYMMDD HHMMSS[/align] | [align=left]混合日期和时间值,时间戳[/align] |
相关文章推荐
- mysql 使用教程
- mysql之TIMESTAMP(时间戳)用法详解
- MySql建表与索引
- mysql 导出慢
- 自学mysql数据库之基本语句
- mysql存储过程详细教程
- mysql-data-dumper
- MySQL获取汉字的拼音首字母
- mysql 的FOUND_ROWS()
- MySQL 命令行工具之 mysqldump 深入研究
- MySQL备份l脚本
- 一千行MySQL学习笔记
- MySQL 导出数据为csv格式的方法
- 在MAMP环境下安装MySQLdb的方法
- MySQL Cluster环境下如何恢复root密码
- mysql show processlist命令 详解
- mysql 获取每日新增总数量
- Mac下Weka访问MySQL数据库
- MySQL服务器关机进程
- 一千行MySQL学习笔记