MySQL数据类型详解
版权申诉
71 浏览量
更新于2024-08-29
收藏 96KB PDF 举报
"MySQL 数据类型详解"
MySQL 数据类型是数据库设计的基础,它决定了数据的存储方式和取值范围。以下是对这些数据类型的详细说明:
1. 数值型
- `tinyint`: 存储非常小的整数,范围通常是-128到127,占用1字节。
- `smallint`: 存储较小的整数,范围-32768到32767,占用2字节。
- `mediumint`: 存储中等大小的整数,范围-8388608到8388607,占用3字节。
- `int` 或 `integer`: 标准整数,范围-2^31到2^31-1,占用4字节。
- `bigint`: 存储较大的整数,范围-2^63到2^63-1,占用8字节。
- `float`: 单精度浮点数,用于存储近似数值,占用4字节。
- `double` 或 `double precision`: 双精度浮点数,精度更高,占用8字节。
- `decimal` 或 `numeric`: 定点数,提供精确的浮点数存储,适用于财务计算,大小和精度可自定义。
2. 字符(串)型
- `char(m)`: 固定长度的字符串,最多m个字符,存储空间总是m字节,无论实际内容多长。
- `varchar(m)`: 可变长度的字符串,最多m个字符,存储空间根据实际内容长度加1字节。
- `tinyblob`, `tinytext`: 存储最多2^8-1字节的二进制或非二进制短字符串。
- `blob`, `text`: 存储最多2^16-1字节的二进制或非二进制字符串。
- `mediumblob`, `mediumtext`: 存储最多2^24-1字节的二进制或非二进制字符串。
- `longblob`, `longtext`: 存储最多2^32-1字节的二进制或非二进制字符串。
3. 日期和时间型
- `date`: 存储日期,格式'YYYY-MM-DD',占用3字节。
- `time`: 存储时间,格式'HH:MM:SS',占用3字节。
- `datetime`: 存储日期和时间,格式'YYYY-MM-DD HH:MM:SS',占用8字节。
- `timestamp`: 时间戳,存储日期和时间,格式同'datetime',占用4字节(MySQL 5.6以前)或8字节(5.6以后)。
- `year`: 存储年份,格式'YYYY'或'YY',占用1或2字节。
4. NULL 值
NULL 值在 MySQL 中表示数据未定义或未知。任何数据类型都可以包含 NULL 值,但需要注意的是,NULL 不等于空字符串 '' 或数字 0,它们是不同的概念。
5. 枚举(enum)和集合(set)
- `enum`: 用于存储有限的预定义选项列表,最多65535个元素,占用1到2个字节加上实际元素数量。
- `set`: 类似于 enum,但可以存储多个值,最多64个元素,占用1到8个字节。
选择合适的数据类型对于优化存储空间、提高查询效率和确保数据准确性至关重要。在设计数据库时,应根据数据的特性和用途来决定使用哪种数据类型。例如,如果存储的是电话号码,考虑到电话号码不会参与计算,应该使用字符型而不是数值型;如果需要精确的财务数据,使用`decimal`会比`float`或`double`更合适。日期和时间类型则用于记录事件的时间点或持续时间,便于进行时间相关的查询和分析。
2021-10-26 上传
2024-05-04 上传
2022-01-17 上传
2021-09-30 上传
2021-09-30 上传
2022-01-17 上传
2021-11-23 上传
m0_64339726
- 粉丝: 0
- 资源: 3万+
最新资源
- decorrstretch:Python中的解相关拉伸
- shell 查询json文件的某一行并 替换json 键值字符串右边的内容(使用jq工具)
- MeloSIP Click2Call-crx插件
- gamelist
- win0-unzip命令.rar
- 比赛:比赛问题
- SuckBot-开源
- gpu_checker:GPU检查器
- 参考资料-基于S51单片机与CPLD的综合实验系统研制.zip
- Swift变化的图像滑块
- dataMining
- 参考资料-基于rtos的单片机系统在温室环境控制中的应用研究.zip
- ArtB-Shaders:ReShade的.fx着色器集合
- dignipy:Python中的各种数据结构实现
- LBRY SDK,用于构建去中心化,抗审查性,货币化的数字内容应用程序。-Python开发
- 平滑处理.zip_matlab例程_matlab_