本文共 2279 字,大约阅读时间需要 7 分钟。
MySQL 数据类型与字段属性说明
1. 数值型数据类型
MySQL 提供了多种数值型数据类型,根据存储大小和应用场景选择合适的数据类型,以确保数据的高效存储和查询性能。以下是常见的数值型数据类型及其详细信息:
1.1 整数型
TINYINT
- 大小:1 字节
- 范围:(-128,127)
- 用途:存储小整数值,如用户年龄、点数等。
SMALLINT
- 大小:2 字节
- 范围:(-32 768,32 767)
- 用途:存储较大整数值,如产品编号、库存数量等。
MEDIUMINT
- 大小:3 字节
- 范围:(-8 388 608,8 388 607)
- 用途:存储中等大小的整数值,如员工编号、订单号等。
INT 或 INTEGER
- 大小:4 字节
- 范围:(-2 147 483 648,2 147 483 647)
- 用途:存储大整数值,如货物编号、用户ID等。
BIGINT
- 大小:8 字节
- 范围:(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
- 用途:存储极大整数值,如银行账户号、身份证号等。
1.2 浮点数型
FLOAT
- 大小:4 字节
- 范围:(-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)
- 用途:存储单精度浮点数值,如价格、工资等。
DOUBLE
- 大小:8 字节
- 范围:(1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
- 用途:存储双精度浮点数值,如科学计算、金融数据等。
1.3 小数型
- DECIMAL
- 大小:根据DECIMAL(M,D) 中的 M 和 D 确定
- 范围:依赖于 M 和 D 的值
- 用途:存储小数值,如货币、精确科学计算结果等。
2. 字符串类型
MySQL 提供多种字符串类型,根据存储需求和应用场景选择合适的类型:
2.1 定长字符串
- CHAR
- 大小:0-255 字节
- 用途:存储定长字符串,如密码、身份证号的部分字符等。
2.2 变长字符串
- VARCHAR
- 大小:0-255 字节
- 用途:存储变长字符串,如用户评论、文本内容等。
2.3 二进制字符串
TINYBLOB
- 大小:0-255 字节
- 用途:存储不超过 255 个字符的二进制字符串,如图片、文件名等。
BLOB
- 大小:0-65 535 字节
- 用途:存储二进制形式的长文本数据,如大图片、视频文件等。
MEDIUMBLOB
- 大小:0-16 777 215 字节
- 用途:存储二进制形式的中等长度文本数据,如大图片、视频文件等。
MEDIUMTEXT
- 大小:0-16 777 215 字节
- 用途:存储中等长度文本数据,如长评论、文章内容等。
LONGBLOB
- 大小:0-4 294 967 295 字节
- 用途:存储二进制形式的极大文本数据,如大视频、大图片等。
LONGTEXT
- 大小:0-4 294 967 295 字节
- 用途:存储极大文本数据,如长文章、长评论等。
3. 日期和时间类型
MySQL 提供丰富的日期和时间类型,满足不同应用场景的需求。以下是常见的日期和时间类型及其详细信息:
3.1 日期类型
DATE
- 大小:3 字节
- 范围:1000-01-01 到 9999-12-31
- 格式:YYYY-MM-DD
- 用途:存储日期值,如生日、事件日期等。
YEAR
- 大小:1 字节
- 范围:1901 到 2155
- 格式:YYYY
- 用途:存储年份值,如公司成立年份等。
3.2 时间类型
- TIME
- 大小:3 字节
- 范围:'-838:59:59' 到 '838:59:59'
- 格式:HH:MM:SS
- 用途:存储时间值或持续时间,如上课时间、会议时间等。
3.3 混合日期和时间类型
DATETIME
- 大小:8 字节
- 范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59
- 格式:YYYY-MM-DD HH:MM:SS
- 用途:存储混合日期和时间值,如订单日期和时间、用户登录时间等。
TIMESTAMP
- 大小:8 字节
- 范围:1970-01-01 00:00:00 到 2037 年某时
- 格式:YYYYMMDD HHMMSS
- 用途:存储混合日期和时间值,支持时间戳类型,用于记录精确时间点,如数据库更新时间等。
4. 数据字段属性
MySQL 提供多种字段属性,用于定义数据列的行为和约束:
4.1 数据列约束
NULL
NOT NULL
DEFAULT xxx
4.2 主键与外键
4.3 自增字段
- AUTO_INCREMENT
- 含义:递增字段,如果插入记录时没有指定值,则在上一条记录的值上加 1,仅适用于整数类型。
4.4 符号与填充
UNSIGNED
CHARACTER SET name
zerofill
- 含义:数值字段前自动补 0,适用于整数类型(如 3 字节),例如 zerofill 5>005。
转载地址:http://sybfk.baihongyu.com/