MySQL 数据类型
                           
天天向上
发布: 2025-02-18 00:13:28

原创
508 人浏览过

在 MySQL 中,数据类型的选择对数据库性能和优化至关重要。MySQL 提供了多种数据类型,主要分为以下三大类:数值类型日期/时间类型字符串(字符)类型。每种类型都有特定的用途,选择合适的数据类型可以提高查询效率、减少存储空间以及优化数据库性能。

1. 数值类型

数值类型用于存储数字数据,可以分为 整数类型浮动点类型

1.1 整数类型

整数类型用于存储没有小数部分的数值。MySQL 提供了多种整数类型,可以根据数据的大小和存储需求选择适当的类型。

  • TINYINT:存储极小的整数,通常用于表示布尔值(-128 到 127 或 0 到 255)
  TINYINT
  • SMALLINT:存储较小的整数(-32,768 到 32,767 或 0 到 65,535)
  SMALLINT
  • MEDIUMINT:存储中等范围的整数(-8,388,608 到 8,388,607 或 0 到 16,777,215)
  MEDIUMINT
  • INT / INTEGER:常用的整数类型(-2,147,483,648 到 2,147,483,647 或 0 到 4,294,967,295)
  INT
  • BIGINT:存储较大的整数(-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 或 0 到 18,446,744,073,709,551,615)
  BIGINT

1.2 浮动点类型

浮动点类型用于存储带有小数部分的数值。常用于存储货币金额或精确度要求较高的计算结果。

  • FLOAT:存储单精度浮动点数,通常用于精度要求不高的数据(最大 24 位有效数字)
  FLOAT
  • DOUBLE:存储双精度浮动点数,通常用于精度要求较高的数据(最大 53 位有效数字)
  DOUBLE
  • DECIMAL / NUMERIC:用于存储精确的小数,特别适用于财务数据。它具有固定的小数点精度,避免了浮动点数的舍入误差。
  DECIMAL(10,2)

实例:整数和浮动点类型

CREATE TABLE product (
  id INT AUTO_INCREMENT,
  price DECIMAL(10, 2),
  quantity INT,
  PRIMARY KEY (id)
);

2. 日期/时间类型

日期和时间类型用于存储日期和时间数据,MySQL 提供了以下几种常见的日期/时间类型。

  • DATE:存储日期(格式:YYYY-MM-DD
  DATE
  • DATETIME:存储日期和时间(格式:YYYY-MM-DD HH:MM:SS
  DATETIME
  • TIMESTAMP:存储时间戳(格式:YYYY-MM-DD HH:MM:SS),通常用于记录数据的创建或修改时间。会随系统时间自动更新。
  TIMESTAMP
  • TIME:存储时间(格式:HH:MM:SS
  TIME
  • YEAR:存储年份(格式:YYYY
  YEAR

实例:日期/时间类型

CREATE TABLE events (
  event_id INT AUTO_INCREMENT,
  event_name VARCHAR(100),
  event_date DATE,
  event_time TIME,
  PRIMARY KEY (event_id)
);

3. 字符串(字符)类型

字符串类型用于存储文本数据。MySQL 提供了多种字符串类型,每种类型适合不同的存储需求。

3.1 定长字符串类型

  • CHAR:定长字符串类型,适用于长度固定的字符串(最大 255 个字符)。如果插入的字符串长度小于定义的长度,MySQL 会自动补充空格。
  CHAR(50)

3.2 变长字符串类型

  • VARCHAR:变长字符串类型,适用于长度不固定的字符串。VARCHAR 存储的是实际字符串长度,不会占用额外空间。
  VARCHAR(255)
  • TEXT:存储长文本数据,最大长度为 65,535 字节。TEXT 类型适用于存储文章、描述等较大的文本数据。
  TEXT
  • TINYTEXT:存储短文本数据,最大长度为 255 字节。
  TINYTEXT
  • MEDIUMTEXT:存储中等长度的文本数据,最大长度为 16,777,215 字节。
  MEDIUMTEXT
  • LONGTEXT:存储长文本数据,最大长度为 4,294,967,295 字节。
  LONGTEXT

3.3 二进制字符串类型

  • BINARY:定长二进制数据类型,适用于存储固定长度的二进制数据。
  BINARY(16)
  • VARBINARY:变长二进制数据类型,适用于存储长度不固定的二进制数据。
  VARBINARY(255)
  • BLOB:存储二进制大对象数据,最大长度为 65,535 字节。适用于存储图像、音频等二进制数据。
  BLOB

实例:字符串类型

CREATE TABLE users (
  user_id INT AUTO_INCREMENT,
  username VARCHAR(50),
  email VARCHAR(100),
  password_hash CHAR(64),
  profile_picture BLOB,
  PRIMARY KEY (user_id)
);

4. 总结

MySQL 提供了多种数据类型来满足不同的存储需求,合理的选择数据类型对数据库的性能和优化至关重要。选择时考虑以下几点:

  • 数值类型:选择合适的整数或浮动点类型,避免选择过大或过小的数据类型。
  • 日期/时间类型:根据需要存储的时间精度选择合适的日期/时间类型。
  • 字符串类型:根据字段内容的长度和特点选择定长或变长的字符串类型。

选择合适的数据类型可以节省存储空间、提高查询效率、减少性能开销。

发表回复 0

Your email address will not be published. Required fields are marked *