MySQL 数据库常见字段类型大全及详细解析

在工作期间会遇到数据库建表的业务,经常会使用复制粘帖等操作,而不清楚数据库的字段类型。本文记录了 MySQL 数据库常见字段类型,根据不同的数据需求,可以选择不同的字段类型来存储数据。

一、整数类型

1、TINYINT:存储较小的整数值

占用 1 个字节,有符号范围是 -128127,无符号范围是 0255。通常用于存储较小的整数值,如状态标志、计数器等。

CREATE TABLE example (
    tinyint_column TINYINT
);

2、SMALLINT:存储比 TINYINT 稍大一些的整数

占用 2 个字节,有符号范围是 -3276832767,无符号范围是 065535。适合存储比 TINYINT 稍大一些的整数,如少量物品的数量等。

CREATE TABLE example (
    smallint_column SMALLINT
);

3、MEDIUMINT:存储中等大小的整数

占用 3 个字节,有符号范围是 -83886088388607,无符号范围是 016777215。可用于存储中等大小的整数,在数据量不是很大时比较有用。

CREATE TABLE example (
    mediumint_column MEDIUMINT
);

4、INT 或 INTEGER:存储一般性的整数

占用 4 个字节,有符号范围是 -21474836482147483647,无符号范围是 04294967295。是最常用的整数类型之一,可用于存储一般性的整数,如用户 ID、产品 ID 等。

CREATE TABLE example (
    int_column INT
);

5、BIGINT:存储非常大的整数

占用 8 个字节,有符号范围是 -92233720368547758089223372036854775807,无符号范围是 018446744073709551615。用于存储非常大的整数,如大数据表中的主键、大型计数等。

CREATE TABLE example (
    bigint_column BIGINT
);

二、浮点数和定点数类型

1、FLOAT:存储对精度要求不是特别高的浮点数

单精度浮点数,占用 4 个字节。可存储近似值,适用于对精度要求不是特别高的浮点数存储,如科学计算中的近似值。

CREATE TABLE example (
    float_column FLOAT
);

2、DOUBLE 或 DOUBLE PRECISION:存储高精度的浮点数

双精度浮点数,占用 8 个字节。比 FLOAT 提供更高的精度,适用于需要更高精度的浮点数存储,如复杂的科学计算等。

CREATE TABLE example (
    double_column DOUBLE
);

3、(DECIMAL 或 DEC)或 NUMERIC:存储精确的小数

定点数,可存储精确的小数,使用时需要指定精度(总位数)和标度(小数位数)。适用于货币、财务数据等需要精确存储的场景。

CREATE TABLE example (
    decimal_column DECIMAL(10, 2)
);

在示例中,DECIMAL(10, 2) 表示总共可以存储 10 位数字,其中 2 位是小数部分,例如 1234567.89

三、字符类型

1、CHAR(n):定长字符数据类型

定长字符数据类型,存储长度固定为 n 个字符,n 的范围是 0 到 255。如果存储的数据长度小于 n,会使用空格填充。常用于存储长度固定的数据,如国家代码、邮政编码等。

CREATE TABLE example (
    char_column CHAR(5)
);

2、VARCHAR(n):变长字符数据类型

变长字符数据类型,存储长度可变,最大长度为 n 个字符,n 的范围是 0 到 65535。仅存储实际输入的字符长度,可节省空间,常用于存储长度不固定的数据,如用户名、地址等。

CREATE TABLE example (
    varchar_column VARCHAR(50)
);

3、TEXT:存储大量文本数据

存储大量文本数据,最大长度为 65,535 个字符。适用于存储较长的文本内容,如文章、评论等。

CREATE TABLE example (
    text_column TEXT
);

四、日期和时间类型

1、DATE:存储日期 YYYY-MM-DD

存储日期,格式为 YYYY-MM-DD,范围是 1000-01-019999-12-31。用于存储日期信息,如生日、订单日期等。

CREATE TABLE example (
    date_column DATE
);

2、TIME:存储时间 HH:MM:SS

存储时间,格式为 HH:MM:SS,范围是 -838:59:59838:59:59。可存储一天内的时间信息,如上班时间、下班时间等。

CREATE TABLE example (
    time_column TIME
);

3、DATETIME 或 TIMESTAMP:存储日期 YYYY-MM-DD HH:MM:SS

存储日期和时间,格式为 YYYY-MM-DD HH:MM:SS,范围是 1000-01-01 00:00:009999-12-31 23:59:59.999999。常用于存储同时包含日期和时间的信息,如操作时间、日志记录时间等。

CREATE TABLE example (
    datetime_column DATETIME
);

五、二进制数据类型

1、BINARY(n):定长二进制数据类型

定长二进制数据类型,存储长度固定为 n 个字节,n 的范围是 0 到 255。适用于存储固定长度的二进制数据,如存储一些固定长度的加密数据。

CREATE TABLE example (
    binary_column BINARY(10)
);

2、VARBINARY(n):变长二进制数据类型

变长二进制数据类型,存储长度可变,最大长度为 n 个字节,n 的范围是 0 到 65535。可存储不同长度的二进制数据,如存储图像、音频等的二进制数据。

CREATE TABLE example (
    varbinary_column VARBINARY(100)
);

3、BLOB:存储二进制大对象

存储二进制大对象,可存储多达 65,535 字节的二进制数据。适用于存储较大的二进制文件,如图片、文档等。

CREATE TABLE example (
    blob_column BLOB
);

六、枚举和集合类型

1、ENUM:枚举类型

允许从预定义的列表中选择一个值。

CREATE TABLE example (
    enum_column ENUM('value1', 'value2', 'value3')
);

在示例中,enum_column 只能存储 value1value2value3 中的一个。

2、SET:集合类型

允许存储多个预定义值的集合。

CREATE TABLE example (
    set_column SET('value1', 'value2', 'value3')
);

在示例中,set_column 可以存储 value1value2value3 的任意组合,如 'value1,value3'

七、JSON 类型

1、JSON:存储 JSON 数据

可用于存储和查询 JSON 格式的数据,方便存储和操作结构化的数据。

CREATE TABLE example (
    json_column JSON
);

八、空间数据类型:存储地理信息数据

1、POINT:存储一个点的坐标

CREATE TABLE example (
    point_column POINT
);
-- 插入数据
INSERT INTO spatial_data (point_column)
VALUES (
    -- 插入一个点,坐标为 (2, 3)
    POINT(2, 3)
);

使用 POINT 函数创建一个点,坐标为 (2, 3)。

2、LINESTRING:存储一条线的坐标序列

CREATE TABLE example (
    json_column JSON
);
-- 插入数据
INSERT INTO spatial_data (linestring_column)
VALUES (
    -- 插入一条线段,经过 (1, 1), (2, 2), (3, 3)
    LINESTRING(POINT(1, 1), POINT(2, 2), POINT(3, 3))
);

使用 LINESTRING 函数创建一条线段,通过连接多个 POINT 来定义线段的路径,这里的线段经过 (1, 1)、(2, 2) 和 (3, 3) 三个点。

3、POLYGON:存储一个多边形的顶点坐标序列

CREATE TABLE example (
    json_column JSON
);
-- 插入数据
INSERT INTO spatial_data (polygon_column)
VALUES (
    -- 插入一个多边形,顶点为 (0, 0), (0, 3), (3, 3), (3, 0), (0, 0)
    POLYGON(POINT(0, 0), POINT(0, 3), POINT(3, 3), POINT(3, 0), POINT(0, 0)) 
);

使用 POLYGON 函数创建一个多边形,通过连接多个 POINT 来定义多边形的顶点,这里是一个矩形,顶点为 (0, 0)、(0, 3)、(3, 3)、(3, 0) 和 (0, 0)。注意,多边形的最后一个点通常与第一个点相同,以确保闭合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值