zoukankan      html  css  js  c++  java
  • 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个成员 

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/mabiao008/p/7457469.html
Copyright © 2011-2022 走看看