首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
5.1 MySQL存储引擎
5.1.1 MySQL存储引擎的概念
5.1.2 查询MySQL中支持的存储引擎
5.1.3 InnoDB存储引擎
5.1.4 MyISAM存储引擎
5.1.5 MEMORY存储引擎
5.1.6 选择存储引擎
5.1.7 设置数据表的存储引擎
5.2 MySQL数据类型
5.2.1 数字类型
5.2.2 字符串类型
5.2.3 日期和时间类型
6.1 创建数据表(CREATE TABLE语句)
6.2 查看表结构
6.2.1 使用SHOW COLUMNS语句查看
6.2.2 使用DESCRIBE语句查看
6.3 修改表结构(ALTER TABLE语句)
6.3.1 添加新字段和修改字段定义
6.3.2 修改字段名/类型
6.3.3 删除字段
6.3.4 修改表名
6.4 重命名表(RENAME TABLE语句)
6.5 复制表(CREATE TABLE…LIKE语句)
6.6 删除表(DROP TABLE语句)
7.1 运算符
7.1.1 算术运算符
7.1.2 比较运算符
7.1.3 逻辑运算符
7.1.4 位运算符
7.2 流程控制语句
7.2.1 IF语句
7.2.2 CASE语句
7.2.3 WHILE循环语句
7.2.4 LOOP循环语句
7.2.5 REPEAT循环语句
8.1 增添数据
8.1.1 使用INSERT…VALUES语句插入数据
8.1.2 使用INSERT…SET语句插入数据
8.1.3 使用INSERT...SELECT语句插入查询结果
8.2 修改数据
8.3 删除数据
8.3.1 使用DELETE语句删除数据
8.3.2 使用TRUNCATE TABLE语句删除数据
当前位置:
首页>>
技术小册>>
MySQL从入门到精通(二)
小册名称:MySQL从入门到精通(二)
### 5.2.1 数字类型 在MySQL中,数字类型是用来存储数值数据的,它们对于数据库设计和性能优化至关重要。数字类型不仅决定了数据如何存储,还影响了数据的准确性、存储效率以及查询性能。本节将深入探讨MySQL中的数字类型,包括整型(Integer Types)、浮点型(Floating-Point Types)和定点数类型(Decimal Types),并介绍它们各自的特性、应用场景及选择原则。 #### 5.2.1.1 整型(Integer Types) 整型是数字类型中最基本也是使用最广泛的一类,用于存储没有小数部分的整数。MySQL提供了多种整型,以满足不同场景下的需求,包括TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT等。每种整型都可以选择是否带有符号(即是否包含负数),默认情况下是带符号的。 - **TINYINT**:占用1个字节的存储空间,其有符号范围是-128到127,无符号范围是0到255。适用于存储非常小的整数值,如用户的状态码、小规模的枚举值等。 - **SMALLINT**:占用2个字节的存储空间,有符号范围是-32,768到32,767,无符号范围是0到65,535。适合存储中等大小的整数值,如分类ID、较小的计数器值等。 - **MEDIUMINT**:占用3个字节的存储空间,有符号范围是-8,388,608到8,388,607,无符号范围是0到16,777,215。当INT类型过大而SMALLINT不足以满足需求时,MEDIUMINT是一个很好的选择。 - **INT/INTEGER**:占用4个字节的存储空间,是MySQL中最常用的整数类型。有符号范围是-2,147,483,648到2,147,483,647,无符号范围是0到4,294,967,295。适用于大多数整数存储需求,如用户ID、订单编号等。 - **BIGINT**:占用8个字节的存储空间,提供了更大的数值范围,有符号范围是-9,223,372,036,854,775,808到9,223,372,036,854,775,807,无符号范围是0到18,446,744,073,709,551,615。适用于需要存储极大整数值的场景,如大型系统的唯一标识符、高精度计算等。 #### 5.2.1.2 浮点型(Floating-Point Types) 浮点型用于存储带有小数部分的数值,MySQL提供了FLOAT和DOUBLE两种类型。它们通过科学计数法来表示数值,因此可以存储非常大或非常小的数值,但精度可能会受到限制,不适合进行精确的金融计算。 - **FLOAT**:是一个单精度浮点型,占用4个字节的存储空间。尽管其精度和范围不如DOUBLE,但在存储对精度要求不高的浮点数时,FLOAT可以节省存储空间。 - **DOUBLE**:是一个双精度浮点型,占用8个字节的存储空间。相比FLOAT,DOUBLE提供了更大的精度和范围,适用于大多数需要浮点数的场景。 浮点数类型还可以指定精度(M,D),其中M是数字的总位数,D是小数点后面的位数。然而,这种指定并不严格限制存储的数值,而是影响显示时的格式。 #### 5.2.1.3 定点数类型(Decimal Types) 定点数类型(DECIMAL或NUMERIC)用于存储精确的数值,适用于需要高精度计算的场景,如金融和会计应用。与浮点型不同,DECIMAL类型存储的是精确的数值,不会因为二进制表示而产生舍入误差。 DECIMAL类型可以指定精度和小数位数,格式为DECIMAL(M,D),其中M是数字的最大位数(精度),D是小数点后的位数(标度)。例如,DECIMAL(5,2)可以存储最大为999.99的数值。 DECIMAL类型的存储空间根据M和D的值动态分配,最大可以支持65位数字(M的最大值),这确保了即使是极大的数值也能以高精度存储。 #### 选择数字类型的原则 在选择数字类型时,应考虑以下几个因素: 1. **数值范围**:根据实际需要存储的数值大小,选择合适的整型或浮点型。如果数值范围很大,且需要高精度,则应选择BIGINT或DECIMAL。 2. **精度要求**:对于需要精确计算的场景(如金融计算),应选择DECIMAL类型。对于一般的数据统计和分析,FLOAT或DOUBLE可能更合适。 3. **存储空间**:在满足需求的前提下,尽量选择占用空间较小的类型,以优化存储效率和查询性能。例如,如果数值范围在-128到127之间,使用TINYINT即可。 4. **性能考虑**:在某些情况下,选择适当的数字类型可以显著提升查询性能。例如,使用整数类型作为主键通常比使用字符串类型更快。 5. **兼容性和可移植性**:考虑应用程序的兼容性和数据在不同数据库系统之间的可移植性。虽然大多数数据库系统都支持类似的数字类型,但在细节上可能存在差异。 综上所述,MySQL中的数字类型提供了丰富的选择,以满足不同场景下的需求。通过合理选择数字类型,可以确保数据的准确性、存储效率和查询性能。在实际应用中,应根据具体情况综合考虑上述因素,做出最适合的选择。
上一篇:
5.2 MySQL数据类型
下一篇:
5.2.2 字符串类型
该分类下的相关小册推荐:
MySQL从入门到精通(三)
细说MySQL(零基础到高级应用)
SQL零基础到熟练应用(增删改查)
MySQL从入门到精通(五)
MySQL从入门到精通(一)
MySQL8.0入门与实践
MySQL必会核心问题
MySQL从入门到精通(四)
MySQL 实战 45 讲