zoukankan      html  css  js  c++  java
  • MySQL的数据类型 及注意事项

    MySQL的数据类型

    注意  

    选择合适的数据类型,能节省储存空间,提升计算性能。
    (1)在符合应用要求(取值范围、精度)的前提下,尽量使用“短”数据类型
    (2)数据类型越简单越好。
    (3)在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储日期和时间。
    (4)尽量采用精确小数类型(例如decimal),而不采用浮点数类型。
    (5)尽量避免NULL字段,建议将字段指定为NOT NULL约束。

    • 数值类型

        整数类型

    类型 大小 范围(有符号) 范围(无符号) 用途
    TINYINT 1 字节 (-128,127) (0,255) 小整数值
    SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
    MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
    INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
    BIGINT 8 字节

    (-9223372036854775808,9223372036854775 807)

    (0,18 446 744 073
    709 551 615)

    极大整数值
    例:定义年龄字段age为无符号数,可以使用      age tinyint unsigned          ,其中用unsigned约束年龄age的取值不能为负数

        小数类型

    类型 大小 范围(有符号) 范围(无符号) 用途
    FLOAT 4 字节

    -3.402 823 466 E+38
    ~-1.175 494 351 E-38

    0和1.175 494 351 E-38
    ~3.402 823 466 E+38

    单精度
    浮点数

    DOUBLE 8 字节

    -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

     
     

    双精度
    浮点数

    DECIMAL

    DECIMAL
    (length,
    precision)

    length决定小数的最大位数
    precision用于设置小数位数

    length决定小数的最大位数
    precision用于设置小数位数

     小数值

    备注:decimal(length, precision)用于表示精度确定(小数点后数字的位数确定)的小数类型,length决定该小数的最大位数,precision用于设置精度(小数点后数字的位数)。
    例如:decimal (5,2)表示小数取值范围:-999.99~999.99 decimal (5,0)表示: -99999~99999的整数。

    字符串类型

    类型 大小 用途
    CHAR(n) 0-255字节 定长字符串
    VARCHAR(n) 0-65535 字节 变长字符串
    TINYTEXT 0-255字节 短文本字符串
    TEXT 0-65 535字节 长文本数据
    MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
    LONGTEXT 0-4 294 967 295字节 极大文本数据

    日期/时间类型

    类型

    大小(字节)

    范围 格式 用途
    DATE 3

    ‘1000-01-01’~’9999-12-31’

    YYYY-MM-DD 日期值
    TIME 3

    '-838:59:59‘~'838:59:59'

    HH:MM:SS

    时间值或持续时间

    YEAR 1 ‘1901’~’2155’ YYYY 年份值
    DATETIME 8

    ‘1000-01-01 00:00:00’
    ~’9999-12-31 23:59:59’

    YYYY-MM-DD HH:MM:SS

    混合日期和时间值

    TIMESTAMP 4

    ‘1970-01-01 00:00:00’~’2038’

    YYYY-MM-DD HH:MM:SS

    混合日期和时间值,
    时间戳

    复合类型

    类型 最大值 说 明 示例
    Enum (“value1”, “value2”, …) 65535

    该类型的列只可以容纳所列值之一或为NULL

    Gender enum('男','女)

    Set (“value1”, “value2”, …) 64

    该类型的列可以容纳一组值或为NULL

    Interest set('唱歌','游泳','网球’)

    二进制类型

    类型 大小 用途
    Binary(n) 0-255字节 较短的二进制
    VARBinary(n) 0-65535 字节 较长的二进制
    Bit(n) 0-64字节 短二进制
    TINYBLOB 0-255字节 较短的二进制
    TINYBLOB 0-255字节 较短的二进制
    BLOB 0-65 535字节 图片、声音等文件
    MEDIUMBLOB 0-16 777 215字节 图片、声音、视频等文件
    LONGBLOB 0-4 294 967 295字节 图片、声音、视频等文件
  • 相关阅读:
    P1509 找啊找啊找GF
    P1508 Likecloud-吃、吃、吃
    P1493 分梨子
    P1507 NASA的食物计划
    Java简单从文件读取和输出
    服务器和普通用户电脑的区别
    readUTF()和writeUTF()
    js中substring和substr的用法
    AfxMessageBox和MessageBox差别
    POJ 3691 & HDU 2457 DNA repair (AC自己主动机,DP)
  • 原文地址:https://www.cnblogs.com/wxl1989/p/13241864.html
Copyright © 2011-2022 走看看