http://www.path8.net/tn/archives/951

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。

由MySQL支持的列类型列在下面。下列代码字母用于描述中:

M
指出最大的显示尺寸。最大的合法的显示尺寸是 255 。
D
适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。
方括号(“[”和“]”)指出可选的类型修饰符的部分。

注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。

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)] [UNSIGNED] [ZEROFILL]

一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到

18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<=24,对一个双精度浮点数,是在25 和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。FLOAT(X)有对应的FLOAT和DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。在MySQL3.23中,这是一个真正的浮点值。在更早的MySQL版本中,FLOAT(precision)总是有2位小数。该句法为了ODBC兼容性而提供。

FLOAT[(M,D)] [ZEROFILL]
一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个参数表示一个单精密浮点数字。

DOUBLE[(M,D)] [ZEROFILL]
一个正常大小(双精密)浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。

DOUBLE PRECISION[(M,D)] [ZEROFILL]

REAL[(M,D)] [ZEROFILL]
这些是DOUBLE同义词。

DECIMAL[(M[,D])] [ZEROFILL]
一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M中计算。如果D是0,值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的DECIMAL列,实际的范围可以通过M和D的选择被限制。如果D被省略,它被设置为0。如果M被省掉,它被设置为10。注意,在MySQL3.22里,M参数包括符号和小数点。

NUMERIC(M,D) [ZEROFILL]
这是DECIMAL的一个同义词。

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-01 00:00:00’到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间。
TIME
一个时间。范围是’-838:59:59’到’838:59:59’。MySQL以’HH:MM:SS’格式来显示TIME值,但是允许你使用字符串或数字把值赋给TIME列。

YEAR[(2|4)]
一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。(YEAR类型在MySQL3.22中是新类型。)

CHAR(M) [BINARY]
一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M的范围是1 ~ 255个字符。当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。

[NATIONAL] VARCHAR(M) [BINARY]
一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ~ 255个字符。 VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。 VARCHAR是CHARACTER VARYING一个缩写。

TINYBLOB

TINYTEXT
一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。
BLOB

TEXT
一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。

MEDIUMBLOB

MEDIUMTEXT
一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。
LONGBLOB

LONGTEXT
一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。

ENUM(‘value1′,’value2′,…)
枚举。一个仅有一个值的字符串对象,这个值式选自与值列表’value1’、’value2’, …,或NULL。一个ENUM最多能有65535不同的值。

SET(‘value1′,’value2′,…)
一个集合。能有零个或多个值的一个字符串对象,其中每一个必须从值列表’value1’, ‘value2’, …选出。一个SET最多能有64个成员。

TINYINT,SMALLINT,MEDIUMINT,INT,INTEGER,BIGINT;text,longtext,mediumtext,ENUM,SET等字段类型区别相关推荐

  1. TINYINT, SMALLINT, MEDIUMINT, INT, and BIGINT类型的显示宽度不显示

    最近给学生上课发现一个奇怪的现象 发现int的长度没有显示出来 从官方的解释来看得知 从8.0.17版本开始,TINYINT, SMALLINT, MEDIUMINT, INT, and BIGINT ...

  2. mysql int mediumint,MySQL数据类型:TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER等字段类型区别...

    好久没有接触后端数据库方面的知识了,一直没搞清楚像int(4) TINYINT(16)中的4和16表示的是什么含义,以及每种数据类型占用的字节数和表示的范围是多少,今天做个总结学习一下. MySQL支 ...

  3. MYSQL中TINYINT SMALLINT MEDIUMINT INT BIGINT的区分

    在MYSQL当中整形数据的存储有四种,分别是TINYINT SMALLINT MEDIUMINT INT BIGINT,它们的区分如下: 类型 存储大小(字节) 最小有符号数 最小无符号数 最大有符号 ...

  4. 【mysql】关于mysql中int(M)类型的具体含义以及tinyint/smallint/mediumint/int/bigint的区别是什么?

    之前定义数据库类型一直不理解int(M)的具体含义,M决定的是什么?不同M的值的区别是什么?tinyint / smallint / mediumint / int / bigint这些类型又有什么不 ...

  5. MySQL 五种整型数据类型的范围与区别 tinyint smallint mediumint int bigint

    之前在论坛上看到一个有意思的问题,如果有一个字段的值超过bigint,会发生什么. 然后就看到有人喷,说0.1秒插入一个值,将bigint设置为无符号,插入到极限需要多久,根本不可能遇到如何如何 . ...

  6. MySQL数据类型详解:tinyint,smallint,mediumint,int,bigint的区别

    前言 每种编程语言都有自己所定义的数据类型,mysql也不例外,平时我们在创建表时,需要根据业务要求,结合存储.索引.字段临界值等条件来为字段定制不一样的类型.下面我们一起学习下mysql的几种常用的 ...

  7. mysql tinyint int mediumint 用哪个好_MYSQL 字段类型之TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT...

    1. tinyint: 只能存储-128到127大小的数字, 不在乎后面的定义,如tinyint(9). 需1字节存储空间. 当加有UNSIGNED后,数字可以从0增加到255大小. dba@loca ...

  8. mysql修改字段类型为smallint_MYSQL 字段类型之TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT

    1. tinyint: 只能存储-128到127大小的数字, 不在乎后面的定义,如tinyint(9). 需1字节存储空间. 当加有UNSIGNED后,数字可以从0增加到255大小. dba@loca ...

  9. mysql定义大字段longtxt_mysql中text,longtext,mediumtext等字段类型的意思,以及区别

    mysql中text,longtext,mediumtext等字段类型的意思,以及区别 (2012-07-22 10:19:50) 标签: 浮点数 字符串 符号 范围 整数 杂谈 MySQL支持大量的 ...

最新文章

  1. Scrapy爬虫及案例剖析
  2. python 参数解析_python的函数对参数解析分析
  3. WIN server 2003 下无法安装adobe cs3 终极解决方法。
  4. 轻轻松松明白什么是反射,反射有什么用,简单上手反射以及反射的优缺点
  5. 如何解决ORA-28002 the password will expire within 7 days问题(密码快过期)
  6. NVIDIA Nsight Compute,Nsight Systems, Nsight Graphics,Nsight Deep Learning Designer简介-草稿
  7. phpnow mysql_PHPNOW中如何建立MYSQL数据库连接?
  8. 简单线性回归R和Python预测身高体重国内生产总值二氧化碳排放量
  9. android多渠道打包流程,Android 多渠道打包总结
  10. 用java写一个汽车加油的程序_Java实现 LeetCode 134 加油站
  11. 屏保:毛雷尔玫瑰屏保
  12. addon游戏_MOD Herobrine Addon
  13. Maven 编译时缺少依赖,java: 程序包org.apache.http不存在
  14. MATLAB 的函数
  15. 机器人正运动学DH参数表示法
  16. Bmap离线地图实现原理简介
  17. IPGuard三步打造桌面标准化
  18. Android 开机Process xxx (pid xxxx) has died问题分析
  19. 第二届中国(广州)移动互联网大会即将开幕
  20. 腾讯云发布多款大数据应用产品,助力企业全面释放数据价值

热门文章

  1. 各种AI模型拿来就能用!五大深度学习模型库大盘点
  2. 机器人也来玩“踢瓶盖挑战”了,你动他就动,靠脑电控制,路人也能玩丨MIT出品...
  3. shell之for和if实现批量替换多目录下的文件
  4. ORA-01034: ORACLE not available ORA-27101
  5. Django--Uploaded Files以及Handlers
  6. AAuto如何发布EXE文件
  7. Linux内核分析--内核中的数据结构双向链表续【转】
  8. C#实现图标批量下载
  9. 烂泥:mysql修改本地主机连接
  10. Hyper-V 3.0部署PART 14:准备仲裁磁盘