zoukankan      html  css  js  c++  java
  • MySQL数据类型

    • MySQL中定义数据字段类型对数据库的优化非常重要

    • MySQL支持多种类型,大致可以分为三大类:数值、日期/时间和字符串类型

    1.数值类型

    MySQL 支持所有标准 SQL 数值数据类型。

    作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

    类型

    大小

    范围(有符号)

    范围(无符号)

    用途

    TINYINT

    1 Bytes

    (-128,127)

    (0,255)

    小整数值

    SMALLINT

    2 Bytes

    (-32 768,32 767)

    (0,65 535)

    大整数值

    MEDIUMINT

    3 Bytes

    (-8 388 608,8 388 607)

    (0,16 777 215)

    大整数值

    INT或INTEGER

    4 Bytes

    (-2 147 483 648,2 147 483 647)

    (0,4 294 967 295)

    大整数值

    BIGINT

    8 Bytes

    (-9,223,372,036,854,775,808,9 223 372 036 854 775 807)

    (0,18 446 744 073 709 551 615)

    极大整数值

    FLOAT

    4 Bytes

    (-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)

    0,(1.175 494 351 E-38,3.402 823 466 E+38)

    单精度

    浮点数值

    DOUBLE

    8 Bytes

    (-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)

    0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

    双精度

    浮点数值

    DECIMAL

    对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

    依赖于M和D的值

    依赖于M和D的值

    小数值

    2.日期时间型

    表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

    类型

    大小

    范围

    格式

    用途

    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

    5~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

    结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

    YYYYMMDD HHMMSS

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

    3.字符串类型

    字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

    char和varchar:

    1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。 
    2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。 
    3.char类型的字符串检索速度要比varchar类型的快。

    varchar和text: 

    1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。 
    2.text类型不能有默认值。 
    3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

    类型

    大小

    用途

    CHAR

    0-255字节

    定长字符串

    VARCHAR

    0-65535 字节

    变长字符串

    TINYBLOB

    0-255字节

    不超过 255 个字符的二进制字符串

    TINYTEXT

    0-255字节

    短文本字符串

    BLOB

    0-65 535字节

    二进制形式的长文本数据

    TEXT

    0-65 535字节

    长文本数据

    MEDIUMBLOB

    0-16 777 215字节

    二进制形式的中等长度文本数据

    MEDIUMTEXT

    0-16 777 215字节

    中等长度文本数据

    LONGBLOB

    0-4 294 967 295字节

    二进制形式的极大文本数据

    LONGTEXT

    0-4 294 967 295字节

    极大文本数据

    参考文档:https://www.cnblogs.com/jennyyin/p/7895010.html

                 https://www.runoob.com/mysql/mysql-data-types.html

  • 相关阅读:
    Alice and Bob 要用到辗转相减
    Java经典设计模式
    设计模式---创建类---建造者模式
    luogu4267 TamingtheHerd (dp)
    nowcoder172C 保护 (倍增lca+dfs序+主席树)
    nowcoder172A 中位数 (二分答案)
    bzoj4985 评分 (二分答案+dp)
    luogu4269 Snow Boots G (并查集)
    luogu4268 Directory Traversal (dfs)
    bzoj1001/luogu4001 狼抓兔子 (最小割/平面图最小割转对偶图最短路)
  • 原文地址:https://www.cnblogs.com/zhs0/p/15466897.html
Copyright © 2011-2022 走看看