Code前端首页关于Code前端联系我们

MySQL数据库中表字段的几种常见数据类型的排列

terry 2年前 (2023-09-26) 阅读数 55 #数据库

MySQL数据库中的数据类型很多,主要分为三类:数字类型、字符串类型、时间日期类型。

1。数值表字段数据类型

常见的表数值字段有:TINYINT、SMALLINT、MEDIUMINT、INT、INTEGER、BIGINT、FLOAT、DOUBLE 和 DECIMAL。

数值类型中有与范围相对应的概念,即SIGNED范围和UNSIGNED范围。简单理解,有符号范围适用于包含负数,无符号范围仅适用于正数。 ,不包含负数的数据类型。

1.1。几种常见的数字类型

TINYINT 类型:

  • TINYINT 类型的含义是一个小整数值,数据大小为 1 个字节。
  • 有符号范围:(-128 ~ 127),无符号范围:(0 ~ 255)

SMALLINT 类型:

  • SMALLINT 类型的含义是一个大整数值,数据大小为 2 个字节。
  • 有符号范围:(-32768 ~ 32767),无符号范围:(0 ~ 65535)... 类型

MEDIUMINT:

  • MEDIUMINT 类型的含义也是一个比SMALLINT类型范围更广的大整数值,数据大小为3字节。
  • 有符号范围:(-8388608 ~ 8388607),无符号范围:(0 ~ 16777215)

INT 和 INTEGER 类型:

  • INT 和 INTEGER 类型具有相同的函数并且都是大整数值。 INT 和 INTEGER 类型的范围比 MEDIUMINT 类型更宽,数据大小为 4 个字节。
  • 有符号范围:(-2147483648 ~ 2147483647),无符号范围:(0 ~ 429549‾。

BIGINT类型: BINGINT类型也是一个大整数,范围更广比上述类型更大的整数值,也称为非常大的整数值,数据大小为 8 个字节。

  • 有符号范围:(-2^63 ~ 2^63-1),无符号范围:` `(0 ~ 2^64-1)''
  • FLOAT 类型:

    • FLOAT 类型表示单精度浮点值,数据大小为 4 个字节。
    • 有符号范围:(-3.402823466 E+38 ~ 3.402823466351 E+38),无符号范围: (-3.402823466 E+38 ~ 3.402) 823466351 E+38) 38) 4028 23466 E+38 )

    DOUBLE类型:

    • DOUBLE类型的含义是双精度浮点值,数据大小为8字节。
    • 有符号范围:(-1.7976931348623157 E+308 ~ 1.7976931348623157 E+308)、、、,无符号。 7385 85072014 E-308 ~ 1.7976931348623157 E+308)。

    DECIMAL类型:

    • DECIMAL类型是十进制中最常用的数据类型。它表示一个十进制值,可以准确地确定点数。
    • DECIMAL类型的有符号范围和无符号范围取决于M(精度)和D(小数位数)指定的值。所谓精度就是所有小数位的总和,而小数位数就是小数点中小数点后的数字。 。
      • 例如,对于十进制数 34.156,如果小数点左边有 2 位,则精度为 2,如果小数点右边有 3 位,则小数位数为 3。

    1.2。选择数字类型时的几个要点

    在所有数字类型中,整数值越大越适合。您应该根据自己的数据存储需求选择要设置的数据类型。

    整数值的范围越大,占用的空间越大。正确设置数据类型至关重要。

    浮点十进制数通常使用DESCIMAL数据类型。

    1.3。数值类型使用典型示例

    如何在众多数值类型中选择一个真正适合当前应用场景的数据类型?正如前面提到的,并不是越大越好,而是越聪明越好。下面的例子将帮助您理解。

    1)选择人的年龄字段的数据类型

    根据这个字段的字面意思,我们一般都知道这个字段存储的是人的年龄,所以年龄的数值范围一定不能特别大,如之前所见,几个大整数值可以省略,但很多情况下开发人员只知道INT类型。 INT类型的数值范围很宽。范围大确实好,但是对于年龄要求没必要那么大,范围就大了。是的,INT类型占用4个字节,占用空间很大。

    所以,你一定要明白一个道理,适合自己的就是最好的。与第一个引入的 TINYINT 数字类型一样,age 中不会有负数,因此可以使用 TINYINT 类型的无符号范围。该数据类型是一个小整数值,但范围在 0 到 255 之间,因此适合年龄组。

    SQL 如下:

    age TINYINT UNSIGNED
    复制代码

    2)分数字段数据类型的选择

    小数类型可以使用 DOUBLE 和 DECIMAL。没有太大区别。考虑到分数不会超过一千分。所以左边最多有3位小数。分数有小数位,但都是0.5这样的,所以右边只会有1个小数点。据分析,精度为4,规模为1。

    fenshu DOUBLE(4,1)
    fenshu DECIMAL(4,1)
    复制代码

    2。表字段数据类型

    2.1的字符串类型。几种常见的字符串类型

    最常用的字符串数据类型是 CHAR 和 VARCHAR,TEXT 和 LONGTESXT 也是常用的字符串数据类型。

    数据类型 TEXT 是文本数据类型,数据类型 BLOB 是二进制文本数据类型。二进制字符串存储很少使用,会有专门的文件服务器进行存储,数据库二进制字符串存储功能不是很强大。

    类型大小描述
    CHAR0~255字节❙❙定长字符串❙ ❙❙❙ 65535 字节。 可变长度字符串
    TINYBLOB0 ~ 255 字节不超过 255 个字符的二进制数据
    TINYTEXT0 ~ 255 字节0 ~ 255 字节 BL‶海岸文本♶ ♶ 0 ~ 65535 字节二进制形式的长文本数据
    TEXT0 ~ 65535 字节长文本数据
    MEDIUMBL OB0 ~ 1677725 数据字节 bindium - 15 ~ 1677722 个数据由 1677722 组成
    MEDIUMTEXT 0 0 ~ 4,294,967295 字节非常大的文本数据

    CHAR 和 VARCHAR 的区别

    是否如果使用 CHAR 或 VARCHAR,则必须指定长度字符串,例如

    00 ) varchar(10)。

    CHAR 是固定长度的字符串。当我们指定存储字符串的长度为10时,如果写入的文本字符串数量小于10,就会用空格填充,性能比VARCHAR好。

    VARCHAR 是可变长度字符串。当我们指定存储的字符串长度为10时,会被统计为几个写入的文本字符串,不会用空格填充,因为需要统计写入的字符串数量并比较总长度,所以性能VARCHAR 比 CHAR 稍低。

    2.2。使用CHAR 和VARCHAR 的技巧

    当明确指定要写入数组的字符串数量并且一定会写入指定数量的字符串时,请选择CHAR 作为数据类型。

    如果用户输入的字符串数量不固定,但受字符数限制,则使用 VARCHAR 作为数据类型。

    例如用户名无法修正,则数据类型为VARCHAR,而性别固定且只有一个字符串,因此数据类型为CHAR。

    name varchar(10)
    xingbie char(1)
    复制代码

    3。表字段数据类型的日期和时间类型

    2.1.几种常见的日期时间类型

    常见的日期时间数据类型有:DATE、TIME、YEAR、DATETIME、TIMESTAMP等,其中最常用的三种类型是DATE、TIME、DATATIME。

    DATE类型

    • DATE类型的大小为3个字节,时间范围为1000-01-01到9999-12-31,足够使用。表中
    • 的显示格式为YYYY-MM-DD,相当于日期值,仅显示年月日。

    TIME 类型

    • TIME 类型的大小为 3 个字节,时间范围为 -838:59:59 至 838:59:59。表中
    • 的显示格式为HH:MM:SS,相当于时间或持续时间值,仅显示小时、分钟和秒。

    YEAR

    • YEAR 类型的大小为 1 个字节,时间范围为 1901 到 2155。表中
    • 的显示格式为 YYYY,对应年份值,并且只显示显示年份。

    DATETIME 类型

    • DATETIME 类型的大小为 8 个字节,时间范围为 1000-01-01 00:00:00 到 9999-12-31 23:59:59。表中
    • 的显示格式为YYYY-MM-DD HH:MM:SS,相当于混合日期和时间值,合并日期和时间值,显示年月日和时分秒。

    TIMESTAMP 类型

    • TIMESTAMP 类型的大小为 4 个字节,时间范围为 1970-01-01 00:00:01 到 2038-01-19 03:14:07,并且只能使用到2038.表中的显示格式
    • 为YYYY-MM-DD HH:MM:SS,与DATETIME类型类似。它还显示年、月、日和小时、分钟和秒,但 TIMESTAMP 类型显示时间戳。

    2.2。日期和时间类型使用提示

    当字段组合时间、毕业、出生时间等时,此类字段只能设置为年、月、日,请使用DATE数据类型。

    对于可跟踪的字段,例如创建时间、更新时间、连接时间等,请使用DATETIME类型。

    作者:姜xl
    来源:稀土掘金

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门