`
wayne173
  • 浏览: 358304 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围

 
阅读更多

mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint、int、mediumint、smallint 和 tinyint的语法介绍,如下:
1、bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),无符号的范围是0到

18446744073709551615。一位为 8 个字节。

2、int

一个正常大小整数。有符号的范围是-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字),无符号的范围是0到4294967295。一位大小为 4 个字节。
int 的 SQL-92 同义词为 integer

3、mediumint
一个中等大小整数,有符号的范围是-8388608到8388607,无符号的范围是0到16777215。 一位大小为3个字节。

4、smallint

一个小整数。有符号的范围是-2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据,无符号的范围是0到65535。一位大小为 2 个字节。MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

5、tinyint

有符号的范围是-128 - 127,无符号的范围是 从 0 到 255 的整型数据。一位大小为 1 字节。


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

 

 

MySQL中各数据类型的取值范围 

TINYINT 
-128 - 127 
TINYINT UNSIGNED 
0 - 255 
SMALLINT 
-32768 - 32767 
SMALLINT UNSIGNED 
0 - 65535 
MEDIUMINT 
-8388608 - 8388607 
MEDIUMINT UNSIGNED 
0 - 16777215 
INT 或 INTEGER 
-2147483648 - 2147483647 
INT UNSIGNED 或 INTEGER UNSIGNED 
0 - 4294967295 
BIGINT 
-9223372036854775808 - 9223372036854775807 
BIGINT UNSIGNED 
0 - 18446744073709551615 
FLOAT 
-3.402823466E+38 - -1.175494351E-38,0,1.175494351E-38 - 3.402823466E+38 
DOUBLE 或 DOUBLE PRECISION 或 REAL 
-1.7976931348623157E+308 - -2.2250738585072014E-308,0,2.2250738585072014E-308 - 1.7976931348623157E+308 
DECIMAL[(M,[D])] 或 NUMERIC(M,D) 
由M(整个数字的长度,包括小数点,小数点左边的位数,小数点右边的位数,但不包括负号)和D(小数点右边的位数)来决定,M缺省为10,D缺省为0 
DATE 
1000-01-01 - 9999-12-31 
DATETIME 
1000-01-01 00:00:00 - 9999-12-31 23:59:59 
TIMESTAMP 
1970-01-01 00:00:00 - 2037年的某天(具体是哪天我也不知道,呵呵) 
TIME
-838:59:59' to 838:59:59 
YEAR[(2|4)] 
缺省为4位格式,4位格式取值范围为1901 - 2155,0000,2位格式取值范围为70-69(1970-2069) 
CHAR(M) [BINARY] 或 NCHAR(M) [BINARY] 
M的范围为1 - 255,如果没有BINARY项,则不分大小写,NCHAR表示使用缺省的字符集.在数据库中以空格补足,但在取出来时末尾的空格将自动去掉. 
[NATIONAL] VARCHAR(M) [BINARY] 
M的范围为1 - 255.在数据库中末尾的空格将自动去掉. 
TINYBLOB 或 TINYTEXT 
255(2^8-1)个字符 
BLOB 或 TEXT 
65535(2^16-1)个字符 
MEDIUMBLOB 或 MEDIUMTEXT 
16777215 (2^24-1)个字符 
LONGBLOB 或 LONGTEXT 
4294967295 (2^32-1)个字符 
ENUM('value1','value2',...) 
可以总共有65535个不同的值 
SET('value1','value2',...) 
最多有64个成员 

分享到:
评论

相关推荐

    MySQL 数据类型 详解

    1、整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127...取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。 int(m)里的m是表示SELECT查询结果集中的显示宽度

    (mysql面试题)MySQL中的基本数据类型及其特点及代码示例.txt

    - TINYINT:占用1个字节,取值范围为-128到127(有符号)或0到255(无符号)。 - SMALLINT:占用2个字节,取值范围为-32,768到32,767(有符号)或0到65,535(无符号)。 - MEDIUMINT:占用3个字节,取值范围为-8,...

    简单了解mysql存储字段类型查询效率

    第一:tinyint,smallint,mediumint,int,bigint 第二:char,varchar 第三:NULL 解释(转载): 整数类型 1、TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT,分别用8,16,24,32,64存 2、整数都有UNSIGNED可选...

    JDBC数据类型与数据库字段对应表——mysql篇

    JDBC数据类型与数据库字段对应表——mysql篇 数值型 整型 JDBC tinyint java.lang.Integer smallint mediumint java.lang.Long int bigint java.math.BigInteger

    MySQL数据库:表的字段类型.pptx

    作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。 表的字段类型 数值类型 表的字段类型 日期和时间类型 表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。 每个时间类型有...

    mysql创建表方法.zip

    • 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。 • 浮点数和定点数类型:FLOAT、DOUBLE、DECIMAL。 • 字符串类型:CHAR、VARCHAR、TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT。 • 日期和时间类型:DATE、...

    Mysql数据库设计.pdf

    数据库设计 MYSQL数据库设计 串转义序列 \0 NUL(ASCLL 0) \' \" \b 退格 \n 新⾏ \r 回车 \t 制表符 \\ 反斜杠 数值列类型 TINYINT 1字节 ⾮常⼩的整数 有符号值:-128⾄127 ⽆符号值:0⾄255 SMALLINT 2字节 ...

    MYSQL安装包官方试用版

    对于CHAR、VARCHAR和TEXT类型,前面的表中的值L和M应解释为字符数目,并且列定义中的这些类型的长度表示字符数目。例如,要想保存一个TINYTEXT值需要L字符+ 1个字节。 要想计算用于保存具体CHAR、VARCHAR或者TEXT列...

    Mysql支持的数据类型(总结)

     Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。  扩展后增加了TINYINT,...

    mysql_max_value

    unsignedMysqlMaxValue.mediumint_unsignedMysqlMaxValue.smallint_unsignedMysqlMaxValue.tinyint_unsignedMysqlMaxValue.bigint_signedMysqlMaxValue.int_signedMysqlMaxValue.mediumint_signedMysqlMaxValue....

    深入浅析MySQL COLUMNS分区

    介绍 COLUMN分区是5.5开始引入的分区功能,只有RANGE COLUMN和LIST COLUMN这两种分区;支持整形、日期、字符串;...整形支持:tinyint,smallint,mediumint,int,bigint;不支持decimal和float 时间类型支持:date,dat

    mysql基础只是总结

    【mysql中的字符串和时间】 concat(字符1,字符2...) 字符连接 instr(字符串,字符) 寻找字符所在字符串的位置 char ascii编码 转化为字符 ord 字符转化为ascii编码 substring(字符串,开始位置,长度); length...

    Mysql支持的数据类型(列类型总结)

    Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。 扩展后增加了TINYINT,MEDIUMINT,BIGINT...

    MYSQL 数据类型

    ==================== 数值列类型 ==================== TINYINT 非常小的整数 SMALLINT 较小整数 MEDIUMINT 中等大小整数 INTEGER 标准整数 BIGINT 较大整数 FLOAT 单精度浮点数

    JDBC数据类型与数据库字段对应表——SQL Server篇

    JDBC数据类型与数据库字段对应表——SQL Server篇 数值型 整型 JDBC tinyint java.lang.Integer smallint int bigint java.lang.Long mediumint java.lang.Long

    MySQL一个语句查出各种整形占用字节数及最大最小值的实例

    select 'int unsigned','4',~0&gt;&gt;32,0 union select 'mediumint unsigned','3',~0&gt;&gt;40,0 union select 'smallint unsigned','2',~0&gt;&gt;48,0 union select 'tinyint unsigned','1',~0&gt;&gt;56,0 union select 'signed bigint...

    数据库设计的性能与效率.docx

    存储空间(b) UNSIGNED 取值范围 tinyint 1 否 -128~127 是 0~255 smallint 2 否 -32768~32767 是 0~65535 mediumint 3 否 -8388608~8388607 是 0~16777215 int 4 否 -2147483648~2147483647 是 0~4294967295 bigint ...

    数据库设计原则.pdf

    数据库设计原则 数据库设计原则 1、在创建数据表... 数值型:tinyint(-128-127或0-255),smallint(-32768-32767或0-65535),mediumint(0-16777215),int(21.4亿多),bigint,在选中那个整型的时 候,根据字段的最⼤值来取,

Global site tag (gtag.js) - Google Analytics