本文突出介绍了MySQL支持的很多重要的数据类型,并介绍如何使用。
数据库存储中的数据类型与大小各异。有些地方只存储数字类型,有些只存储文本类型,有些二者而兼之。而很多数据库支持各种专用类型:日期和时间类型,二进制字符类型以及布尔类型。
选择数据类型与数据相匹配是数据库设计中最为重要的部分,因为这种类型将会影响到RDBMS的效率与性能。所以,对RDBMS的数据类型选择应给予足够的重视。
这就是编写本文的主要目的。表A将列举了MySQL支持的绝大部分重要的数据类型,而MySQL是当前最为流行的免费RDBMS。文中还描述了何时与如何使用这些数据类型。这将有助于建立一个数据库的合理设计。
表 A
数据类型
描述
字节
推荐使用
SMALLINT
整数,从-32000到 +32000范围
2
存储相对比较小的整数。
比如: 年纪,数量
INT
整数,从-2000000000 到 +2000000000 范围
4
存储中等整数
例如: 距离
BIGINT
不能用SMALLINT 或 INT描述的超大整数。
8
存储超大的整数
例如: 科学/数学数据
FLOAT
单精度浮点型数据
4
存储小数数据
例如:测量,温度
DOUBLE
双精度浮点型数据
8
需要双精度存储的小数数据
例如:科学数据
DECIMAL
用户自定义精度的浮点型数据
变量;取决于精度与长度
以特别高的精度存储小数数据。
例如:货币数额,科学数据
CHAR
固定长度的字符串
特定字符串长度(高达255字符)
存储通常包含预定义字符串的变量
例如: 定期航线,国家或邮编
VARCHAR
具有最大限制的可变长度的字符串
变量; 1 + 实际字符串长度 (高达 255 字符)
存储不同长度的字符串值(高达一个特定的最大限度).
例如:名字,密码,短文标签
TEXT
没有最大长度限制的可变长度的字符串
Variable; 2 +聽 actual string length
存储大型文本数据
例如: 新闻故事,产品描述
BLOB
二进制字符串
变量;2 + 实际字符串长度
存储二进制数据
例如:图片,附件,二进制文档
DATE
以 yyyy-mm-dd格式的日期
3
存储日期
例如:生日,产品满期
TIME
以 hh:mm:ss格式的时间
3
存储时间或时间间隔
例如:报警声,两时间之间的间隔,任务开始/结束时间
DATETIME
以yyyy-mm-ddhh:mm:ss格式结合日期和时间
8
存储包含日期和时间的数据
例如:提醒的人,事件
TIMESTAMP
以yyyy-mm-ddhh:mm:ss格式结合日期和时间
4
记录即时时间
例如:事件提醒器,“最后进入”的时间标记
YEAR
以 yyyy格式的年份
1
存储年份
例如:毕业年,出生年
ENUM
一组数据,用户可从中选择其中一个
1或 2个字节
存储字符属性,只能从中选择之一
例如:布尔量选择,如性别
SET
一组数据,用户可从中选择其中0,1或更多。
从1到8字节;取决于设置的大小
存储字符属性,可从中选择多个字符的联合。
例如:多选项选择,比如业余爱好和兴趣。
对于一个完整的列表和详细描述,可以查看MySQL manual。你也可以阅读文章Choosing the Right Type for a Column。
分享到:
相关推荐
数据库设计说明(DBDD)一般是指对数据库的结构、表结构、字段、数据类型、关联关系、约束、索引等进行定义的文档。它是数据库设计的一个重要部分,用于指导数据库的物理实现和后续的维护。 数据库管理系统(DBMS)是...
报告中提及的数据库设计元素、表结构、数据类型、关系等知识点,虽然信息片段有些混乱,但我们可以从中提炼出一些重要的数据库设计概念和实践。 1. 数据库设计工具:文档提到了“Simplified Parallel Process ...
由于可访问的数据库类型多样,比如MySQL、SQL Server、Oracle等,这导致了开发过程中的接口混乱和不一致性。为了解决这个问题,Python社区推出了DB-API,它为不同数据库提供了一个统一的访问接口。有了DB-API,...
需要注意的是,实际操作过程中可能会遇到各种问题,如文件权限问题、数据类型不匹配等,需要根据具体情况灵活处理。此外,对于大型项目或者复杂的数据迁移场景,建议使用更专业的工具和服务来进行管理。
该文档的编写主要目的是为了明确电商项目的数据库需求,规范数据结构,减少后期开发中的数据混乱和冗余,提高数据一致性,同时为系统优化和扩展打下基础。此外,它还为项目团队成员提供了一个共享的理解框架,以便于...
- 结构混乱:设计初期考虑不周全,导致表关系复杂,难以理解与维护。 - 功能变更:业务需求变化,原有的数据库设计无法满足新的需求。 2. 重构类型: - 表重构:调整表的字段、主键、索引等,优化存储空间和查询...
当数据出现混乱或者丢失时,能够快速有效地进行数据恢复和备份是系统稳定性的保障。本文将深入探讨C#中如何实现数据的保存与备份,以确保用户能够在出现问题时轻松还原数据库。 首先,我们需要了解数据库备份的基本...
数据库结构文档生成器通过自动化这个过程,减少了手动编写和更新文档的工作量,从而避免了因人为错误可能导致的数据混乱。它不仅能够列出所有的表、视图、存储过程、触发器、函数等数据库对象,还能够详细展示这些...
MySQL自增字段报错的原因主要有两个方面:一是非正常关闭数据库导致的自增字段值混乱,二是自增字段类型设置不正确导致的值溢出。 1. 非正常关闭数据库导致的自增字段值混乱 当服务器非正常关闭时,MySQL数据库中...
这篇笔记主要涵盖了MySQL的基础知识,包括数据库的优势、常见的数据库类型、数据库的基本概念、MySQL的安装与卸载过程,以及登录数据库的方法和数据类型。 首先,我们来看一下数据库的优点。数据库的主要优势在于其...
本文以MySQL数据库为研究对象,讨论与数据 库索引相关的一些话题。...为了避免混乱,本文将只关注 于BTree索引,因为这是平常使用MySQL时主要 打交道的索引,至于哈希索引和全文索引本文 暂不讨论。
- **解释**:根据实际需求选择适当的数据类型,既可以节省空间又可以提高性能。 2. **对于非负的数据采用无符号的整形进行存储** - **解释**:如果数据是非负的,则使用无符号整形可以存储更大的数值范围。 3. *...
利用JSON数据类型可以提高开发效率,同时减少数据库设计上的负担。 #### 5. 表结构设计:忘记范式准则 虽然规范化是数据库设计的基本原则之一,但在实际项目中,过度规范化往往会增加查询的复杂性和性能开销。在...
1. `CREATE TABLE`语句:用于定义民族表的基本结构,包括字段名、数据类型、是否允许为空、主键等。 2. `INSERT INTO`语句:用于填充表的初始数据,即56个民族的信息。 3. 可能还包括`COMMENT ON COLUMN`语句,用于...
2. **Unicode数据类型**:使用Unicode数据类型(如NVARCHAR或NCHAR)确保数据库能够存储多种语言和字符集的数据,增强数据的兼容性和国际化支持。 3. **优先使用连接查询**:连接查询通常比子查询或嵌套查询更有效...
2. 验证数据:检查数据类型、格式、范围等。例如,验证邮箱是否符合格式,密码是否达到最小长度。 3. 处理错误:如果验证失败,可以返回错误消息,并重新渲染表单,或者跳转到错误页面。 4. 提交数据:验证成功后...
传统的手工管理模式已经难以适应现代销售场景的需求,特别是在大型企业和多销售人员的情况下,容易出现管理混乱、数据不准确等问题。 #### 二、系统架构与技术选型 本项目采用SSM框架(Spring、SpringMVC、MyBatis...