以下的文章主要讲述的是MySQL数字类型的三种常用种类,我们大家都知道,不管是微小免费的MySQL数据库空间,还是比较大型的电子商务网站,对于相关的数据库来说其合理的相关设计表结构、充分利用空间都是十分必要的。
这就要求我们对数据库系统的常用数据类型有充分的认识和合理的应用。下面我们将给大家介绍一点心得体会希望能帮助你在建库的时候能考虑的更加合理。
数字类型
MySQL数字类型按照我的分类方法分为三类:整数类、小数类和数字类。
MySQL数字类型之一我所谓的“数字类”
就是指 DECIMAL 和 NUMERIC,它们是同一种类型。它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存的;他的值的每一位 (包括小数点) 占一个字节的存储空间,因此这种类型耗费空间比较大。但是它的一个突出的优点是小数的位数固定,在运算中不会“失真”,所以比较适合用于“价格”、“金额”这样对精度要求不高但准确度要求非常高的字段。
MySQL数字类型之二小数类
即浮点数类型,根据精度的不同,有 FLOAT 和 DOUBLE 两种。它们的优势是精确度,FLOAT 可以表示绝对值非常小、小到约 1.17E-38 (0.000...0117,小数点后面有 37 个零) 的小数,而 DOUBLE 更是可以表示绝对值小到约 2.22E-308 (0.000...0222,小数点后面有 307 个零) 的小数。
FLOAT 类型和 DOUBLE 类型占用存储空间分别是 4 字节和 8 字节。如果需要用到小数的字段,精度要求不高的,当然用 FLOAT 了。可是说句实在话,我们“民用”的数据,哪有要求精度那么高的呢?这两种类型至今我没有用过――我还没有遇到适合于使用它们的事例。
MySQL数字类型之三整数类
用的最多的,最值得精打细算的,是整数类型。从只占一个字节存储空间的 TINYINT 到占 8 个字节的 BIGINT,挑选一个“够用”并且占用存储空间最小的类型是设计数据库时应该考虑的。TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT 占用存储空间分别为 1 字节、2 字节、3 字节、4 字节和 8 字节,就无符号的整数而言,这些类型能表示的最大整数分别为 255、65535、16777215、4294967295 和 18446744073709551615。
如果用来保存用户的年龄 (举例来说,数据库中保存年龄是不可取的),用 TINYINT 就够了;九城的《纵横》里,各项技能值,用 SMALLINT 也够了;如果要用作一个肯定不会超过 16000000 行的表的 AUTO_INCREMENT 的 IDENTIFY 字段,当然用 MEDIUMINT 不用 INT,试想,每行节约一个字节,16000000 行可以节约 10 兆多呢。
mysql 中的decimal
可能做程序的人都知道,float类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12.
幸好mysql提供了两个数据类型:numeric和decimal,这两种数据类型可以轻松解决上面的问题:
NUMERIC 和 DECIMAL 类型被 MySQL 以同样的类型实现,这在 SQL92 标准中是允许的。他们用于保存对准确精度有重要要求的值,例如与金钱有关的数据。当以它们中的之一声明一个列时,精度和数值范围可以(通常是)被指定;例 如:
salary DECIMAL(5,2)
在这个例子中,5 (精度(precision)) 代表重要的十进制数字的数目,2 (数据范围(scale)) 代表在小数点后的数字位数。在这种情况下,因此,salary 列可以存储的值范围是从 -99.99 到 99.99。(实际上 MySQL 在这个列中可以存储的数值可以一直到 999.99,因为它没有存储正数的符号)。
译者注:
M 与D 对DECIMAL(M, D) 取值范围的影响
类型说明 取值范围(MySQL < 3.23) 取值范围(MySQL >= 3.23)
相关推荐
MySQL数据库中数据类型是定义列中可以存储什么类型的数据以及该数据的格式等属性的关键特性。它决定了每列可以存储数据的种类。以下是对上述【部分内容】中可能识别错误的内容进行纠正并详细解释的数据类型知识点: ...
整型是 MySQL 中最基本的数值型数据类型,包括 Tinyint、Smallint、Mediumint、Int、Integer 和 Bigint 六种类型。每种类型都有其特定的字节范围和无符号/有符号表示方式。 1. Tinyint: Tinyint 是 MySQL 中最小的...
2. MySQL 数据类型的分类:数字类型、字符串类型、日期类型、时间类型等。 3. MySQL 数据类型的特点:例如,整数类型可以存储整数值,字符串类型可以存储文本数据。 索引和视图 1. 什么是索引?索引是指快速查找...
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),因其性能稳定、易于使用和成本低廉等特点,在互联网应用开发中非常受欢迎。接下来,我们将从以下几个方面对这份考试练习题集中的知识点进行归纳总结: ##...
本文将对MySQL中的常用函数进行分类汇总讲解,帮助你更好地理解和应用这些功能。 首先,我们来看数学函数。数学函数在SQL查询中用于进行各种数学运算。例如,`ABS(x)`返回数字的绝对值;`BIN(x)`将十进制数转换为二...
MySQL笔记及常用SQL语句 MySQL是一种关系型数据库管理系统,广泛应用于Web应用程序和移动应用程序。下面是 MySQL笔记及常用SQL语句的总结: MySQL的基本概念 * 数据库管理语言(DML):用于操作数据的语言,例如...
8.2 字符类型:介绍MySQL中的数字类型、日期和时间类型、字符串类型。 8.3 创建索引:讲解如何为表字段创建索引,包括主键索引、普通索引和联合索引等,以及索引对查询性能的影响。 以上内容对MySQL数据库的管理...
- 描述表结构包括定义表中的字段名称、数据类型、是否允许为空、是否有默认值、是否有唯一性约束等。 #### 二、MySQL常用命令 - **1.2 常用命令** - **1.2.1 查看MySQL版本** - 使用`SELECT VERSION();`命令可以...
- **MySQL定义**: MySQL是一种广泛应用于Linux社区的开源数据库管理系统,支持多种操作系统平台,如i386、Sparc等。 - **跨平台特性**: MySQL不仅适用于Linux平台,还支持少数非Linux甚至非Unix平台。 - **许可模式*...
### MySQL 常用语法知识点总结 #### 一、MySQL查询语句 1. **基本查询**:在MySQL中,最基础的操作就是进行数据查询。例如,在某表中选取特定列: ```sql SELECT abc, def FROM a; ``` 2. **结果集处理**:对于...
- **数据种类**:虽然题目中的选项提到了“文字、图形和图像”三种,但实际上数据种类还包括声音、视频等多种类型。 - **数据库中的基本对象**:数据是数据库中存储的基本对象,可以通过各种方式来组织和管理这些...
InnoDB是MySQL中最常用的一种存储引擎,它支持事务安全性和行级锁定,这使得它非常适合处理高并发或多用户的应用场景。InnoDB提供了多种高级功能,如外键约束、事务管理以及崩溃恢复机制等。 3. **MySQL与InnoDB的...
本文将对 DB2 和 MySQL 数据库函数进行分类和介绍,涵盖数学函数、字符串函数、日期函数、聚合函数等多种类型。 一、数学函数 数学函数用于对数字进行计算和分析。DB2 和 MySQL 都提供了一些基本的数学函数,如: ...
- **举例**:所有索引都基于这两种类型构建。 - **目的**:确保索引的高效查询能力。 **3.2 不支持表达式、函数索引** - **举例**:如`INDEX(a+1)`。 - **目的**:避免索引创建和维护的复杂性。 **3.3 类型不一致...
非关系型数据库主要分为以下几种类型: 1. **键值存储**:如Redis,适用于高速缓存和会话管理。 2. **文档数据库**:如MongoDB,适合存储和查询复杂数据结构。 3. **列族存储**:如Cassandra,适合大数据分析和...
数据库技术是数字出版中非常重要的一项技术,常用的数据库有SOL、MySQL、Server、Oracle等。数据库的选择是技术人员的工作,但作为编辑,也应当了解与数据库技术有关的知识,这样才能更好地参与数据库的规划设计。 ...
##### 7.11 Mysql数据类型 - **数值型**:整型(INT)、浮点型(FLOAT)、双精度型(DOUBLE)等。 - **字符串型**:字符型(CHAR)、变长字符型(VARCHAR)等。 - **日期型**:日期(DATE)、时间戳(TIMESTAMP)等...