MySQL 常见的数据类型

当设计 MySQL 数据库时,选择合适的数据类型是确保数据存储效率和数据完整性的关键一步。MySQL 提供了丰富的数据类型,以适应各种需求。在这篇博客中,我们将深入介绍一些常见的 MySQL 数据类型,带有详细的示例。

1. 整数数据类型

MySQL 提供了多种整数数据类型,用于存储整数值。以下是一些常见的整数数据类型及其示例:

TINYINT
CREATE TABLE example_table (
    tinyint_column TINYINT
);

INSERT INTO example_table (tinyint_column) VALUES (127), (-128);

TINYINT 是一个字节大小的整数,范围从-128到127(有符号),0到255(无符号)。

SMALLINT
CREATE TABLE example_table (
    smallint_column SMALLINT
);

INSERT INTO example_table (smallint_column) VALUES (32767), (-32768);

SMALLINT 是两个字节大小的整数,范围从-32,768到32,767(有符号),0到65,535(无符号)。

INT
CREATE TABLE example_table (
    int_column INT
);

INSERT INTO example_table (int_column) VALUES (2147483647), (-2147483648);

INT 是四个字节大小的整数,范围从-231到231-1(有符号),0到2^32-1(无符号)。

BIGINT
CREATE TABLE example_table (
    bigint_column BIGINT
);

INSERT INTO example_table (bigint_column) VALUES (9223372036854775807), (-9223372036854775808);

BIGINT 是八个字节大小的整数,范围从-263到263-1(有符号),0到2^64-1(无符号)。

这些整数数据类型分别适用于不同范围的整数值,你可以根据需求选择合适的类型。

2. 小数和浮点数数据类型

MySQL 为小数和浮点数提供了不同的数据类型。以下是一些示例:

FLOAT
CREATE TABLE example_table (
    float_column FLOAT(4, 2)
);

INSERT INTO example_table (float_column) VALUES (123.45), (-67.89);

FLOAT 是单精度浮点数,约占用4字节。

DOUBLE
CREATE TABLE example_table (
    double_column DOUBLE(8, 4)
);

INSERT INTO example_table (double_column) VALUES (1234.5678), (-9876.5432);

DOUBLE 是双精度浮点数,约占用8字节。

DECIMAL
CREATE TABLE example_table (
    decimal_column DECIMAL(10, 3)
);

INSERT INTO example_table (decimal_column) VALUES (12345.678), (-98765.432);

DECIMAL 用于精确存储小数值,你可以根据需要指定总位数和小数位数。

3. 字符串数据类型

MySQL 提供了多种字符串数据类型,用于存储文本数据。以下是一些常见的字符串数据类型及其示例:

CHAR
CREATE TABLE example_table (
    char_column CHAR(10)
);

INSERT INTO example_table (char_column) VALUES ('Hello'), ('MySQL');

CHAR 是定长字符串,最多可以存储10个字符。如果存储的字符数不足,会用空格进行填充。

VARCHAR
CREATE TABLE example_table (
    varchar_column VARCHAR(255)
);

INSERT INTO example_table (varchar_column) VALUES ('Dynamic'), ('Length');

VARCHAR 是变长字符串,最多可以存储255个字符。与 CHAR 不同,它只会存储实际字符,没有填充字符。

TEXT
CREATE TABLE example_table (
    text_column TEXT
);

INSERT INTO example_table (text_column) VALUES ('This is a long text.'), ('MySQL is powerful.');

TEXT 用于存储较长文本数据,最多可以存储65535个字符。

4. 日期和时间数据类型

MySQL 提供了多种日期和时间数据类型,用于存储日期和时间信息:

DATE
CREATE TABLE example_table (
    date_column DATE
);

INSERT INTO example_table (date_column) VALUES ('2022-01-01'), ('2022-12-31');

DATE 用于存储日期,格式为’YYYY-MM-DD’。

TIME
CREATE TABLE example_table (
    time_column TIME
);

INSERT INTO example_table (time_column) VALUES ('12:30:00'), ('18:45:30');

TIME 用于存储时间,格式为’HH:MM:SS’。

DATETIME
CREATE TABLE example_table (
    datetime_column DATETIME
);

INSERT INTO example_table (datetime_column) VALUES ('2022-01-01 12:30:00'), ('2022-12-31 18:45:30');

DATETIME 用于存储日期和时间,格式为’YYYY-MM-DD HH:MM:SS’。

TIMESTAMP
CREATE TABLE example_table (
    timestamp_column TIMESTAMP
);

INSERT INTO example_table (timestamp_column) VALUES ('2022-01-01 12:30:00'), ('2022-12-31 18:45:30');

TIMESTAMPDATETIME 类似,但其存储的时间会随时区变化而变化。

5. 枚举和集合数据类型

MySQL 提供了两种特殊的数据类型,用于存储多个值的集合:

ENUM
CREATE TABLE example_table (
    enum_column ENUM('Red', 'Green', 'Blue')
);

INSERT INTO example_table (enum_column) VALUES ('Red'), ('Green'), ('Blue');

ENUM 用于定义枚举类型,你可以从一个预定义的值列表中选择一个值。

SET
CREATE TABLE example_table (
    set_column SET('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
);

INSERT INTO example_table (set_column) VALUES ('Monday,Wednesday,Friday'), ('Tuesday,Thursday');

SET 用于定义一个集合类型,可以选择多个预定义的值。

这两种数据类型对于存储有限且固定的值集合非常有用,但要注意,它们的使用可能受到一些限制。

6. 二进制数据类型

MySQL 提供了多种二进制数据类型,用于存储二进制数据:

BINARY 和 VARBINARY
CREATE TABLE example_table (
    binary_column BINARY(5),
    varbinary_column VARBINARY(255)
);

INSERT INTO example_table (binary_column, varbinary_column) VALUES (0x12345, 0xabcdef), (0x98765, 0x4321);

BINARYVARBINARY 用于存储定长和变长的二进制数据。

BLOB
CREATE TABLE example_table (
    blob_column BLOB
);

INSERT INTO example_table (blob_column) VALUES (LOAD_FILE('/path/to/file1')), (LOAD_FILE('/path/to/file2'));

BLOB 用于存储大的二进制对象,比如图像或音频文件。这些数据类型适用于需要存储二进制数据的场景,如存储图像、文件等。

结语:

通过本文的介绍,我们深入了解了 MySQL 中常见的数据类型,涵盖了整数、小数、浮点数、字符串、日期时间、枚举、集合、二进制数据类型等方面。了解这些数据类型的特性和用途,对于数据库设计和性能优化至关重要。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值