阅读量:0
MySQL 数据类型概述
数据类型 | 描述 | 使用场景 |
整数类型 | 用于存储整数 | 主键、索引、计数等 |
TINYINT | 1 字节,范围 128 到 127 或 0 到 255 | 小范围计数 |
SMALLINT | 2 字节,范围 32,768 到 32,767 或 0 到 65,535 | 中等范围计数 |
MEDIUMINT | 3 字节,范围 8,388,608 到 8,388,607 或 0 到 16,777,215 | 较大范围计数 |
INT | 4 字节,范围 2,147,483,648 到 2,147,483,647 或 0 到 4,294,967,295 | 大范围计数 |
BIGINT | 8 字节,范围 9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 或 0 到 18,446,744,073,709,551,615 | 极大范围计数 |
INT UNSIGNED | 无符号整数,范围 0 到 4,294,967,295 | 无符号计数 |
浮点数类型 | 用于存储浮点数 | 财务数据、科学计算等 |
FLOAT | 4 字节,8 位精度 | 精度要求不高的浮点数 |
DOUBLE | 8 字节,16 位精度 | 精度要求较高的浮点数 |
DECIMAL | 定点数,精度可定义 | 财务数据,需要精确到小数点后的位数 |
字符串类型 | 用于存储字符串 | 名称、地址、描述等 |
CHAR | 固定长度字符串,空格填充 | 需要固定长度文本,如邮政编码 |
VARCHAR | 可变长度字符串,空格不填充 | 长度可变的文本,如姓名、地址 |
TEXT | 可变长度字符串,空格不填充,最大长度 65,535 字节 | 长文本,如备注、描述 |
BLOB | 二进制大型对象,用于存储二进制数据 | 图片、音频、视频等 |
日期和时间类型 | 用于存储日期和时间 | 记录事件发生的时间 |
DATE | 3 字节,存储年月日 | 记录日期,如出生日期 |
DATETIME | 8 字节,存储年月日时分秒 | 记录具体的时间点 |
TIMESTAMP | 4 字节,存储年月日时分秒,支持时间戳 | 记录事件发生的时间,与 UNIX 时间戳兼容 |
枚举类型 | 用于存储预定义的字符串值 | 选择列表,如性别、状态等 |
ENUM | 预定义的字符串值列表 | 如性别('男', '女')或状态('激活', '禁用') |
集合类型 | 用于存储集合值 | 如一组可能的值 |
SET | 集合,包含最多 64 个值 | 如用户权限('读', '写', '执行') |
账本数据库使用的数据类型示例
在构建一个账本数据库时,以下是一些可能使用的数据类型示例:
表名 | 字段名 | 数据类型 | 描述 |
users | id | INT | 用户ID,主键 |
users | name | VARCHAR(100) | 用户姓名 |
users | VARCHAR(100) | 用户邮箱 | |
accounts | account_id | INT | 账户ID,主键 |
accounts | user_id | INT | 用户ID,外键 |
accounts | balance | DECIMAL(10, 2) | 账户余额 |
transactions | transaction_id | INT | 交易ID,主键 |
transactions | account_id | INT | 账户ID,外键 |
transactions | amount | DECIMAL(10, 2) | 交易金额 |
transactions | transaction_date | DATETIME | 交易日期时间 |
transactions | description | TEXT | 交易描述 |
数据类型根据不同的字段需求和业务逻辑进行选择,确保数据的有效性和准确性。