mysql数据类型基础
时间: 2025-02-05 12:08:44 浏览: 42
### MySQL 数据类型概述
在MySQL中,数据类型用于定义表列可以存储的数据种类。合理选择数据类型不仅有助于优化数据库性能,还能提升查询效率[^1]。
#### 数值类型
数值类型主要用于表示整数和浮点数:
- **TINYINT**: 小整型 (-128 到 127 或者 0 到 255),占用1字节。
- **SMALLINT**: 中等大小的整数 (-32,768 至 32,767 或者 0 至 65,535),占用2字节。
- **MEDIUMINT**: 较大范围的整数 (-8,388,608 到 8,388,607 或者 0 到 16,777,215),占用3字节。
- **INT/INTEGER**: 标准整数 (-2,147,483,648 到 2,147,483,647 或者 0 到 4,294,967,295),占用4字节。
- **BIGINT**: 大整数 (-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 或者 0 到 18,446,744,073,709,551,615),占用8字节。
- **FLOAT(M,D)** 和 **DOUBLE PRECISION(M,D)**: 浮点数,分别占用4字节和8字节;`M` 表示总位数,而 `D` 是小数部分长度。
- **DECIMAL(P,S)/NUMERIC(P,S)**: 定点数,精确度高,适合金融计算场景,P代表精度(即有效数字总数),S则指明小数点后的位数[^2].
```sql
CREATE TABLE example_numeric (
id INT,
price DECIMAL(10,2),
quantity SMALLINT
);
```
#### 字符串类型
字符串类型用来保存字符序列:
- **CHAR(N)**: 固定长度字符串,最大长度为255个字符;
- **VARCHAR(N)**: 可变长度字符串,N指定最大可能长度,实际所需空间取决于具体输入内容;
- **TEXT/BLOB**: 存储大量文本或二进制对象,适用于较长的文章、图片文件等非结构化资料;
- **ENUM('value1','value2',...,'valuen')**: 枚举类型,允许预先设定一组固定的取值选项;
- **SET('value1','value2',...,'valuen')**: 集合类型,可以从多个预设项中选取零个或多个成员作为字段值[^3].
```sql
CREATE TABLE example_string (
name VARCHAR(50),
description TEXT,
status ENUM('active', 'inactive')
);
```
#### 时间日期类型
时间日期类型的目的是处理日历上的时刻记录:
- **DATE**: YYYY-MM-DD格式的日志条目;
- **TIME**: HH:MM:SS形式的时间戳记;
- **DATETIME/TIMESTAMP**: 同时包含日期与时间的信息,前者无时区信息,默认显示到秒级精度,后者支持自动更新并带有UTC偏移量.
```sql
CREATE TABLE example_datetime (
event_date DATE,
start_time TIME,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```
阅读全文
相关推荐


















