数据库中的数值类型: 储存和表示方式 (数据库数值型表示方法)

数据库的数值类型是数据库管理系统中的一种数据类型,用于表示和储存数字。不同的数据库系统支持不同的数值类型,但是它们一般都包括整数和浮点数。

在数据库中,数值类型的储存和表示方式非常重要。这些方式直接影响到数据在数据库中的存储和访问速度,并且还会对数据库的性能和可扩展性产生影响。

下面我们将对数值类型的存储和表示方式进行详细的介绍。

一、整数类型

整数类型是一种表示整数数字的数值类型,在数据库中通常使用来储存数量、计数和标识符等。

在不同的数据库系统中,整数类型有所不同。MySQL中有TINYINT、ALLINT、MEDIUMINT、INT、BIGINT等数值类型。Oracle数据库则有NUMBER、INTEGER、ALLINT、BIGINT等。

不同的整数类型有不同的存储大小和表示范围。例如,MySQL的TINYINT类型可以储存-128到127之间的整数,而BIGINT类型可以储存-9223372023854775808到9223372023854775807之间的整数。

对于整数类型,其储存和表示方式的主要差异在于使用多少个字节来存储数字,以及如何表示负数。在使用较小的整数类型时,可以有效地减小存储空间占用,但是需要注意数值过大超出数据类型范围的问题。

二、浮点数类型

浮点数类型是一种表示小数的数值类型,在数据库中通常用于存储金钱、测量和成分等需求。

与整数类型相比,浮点数储存范围更广,可以储存更大的数字,也可以储存小数点后的数字。

在不同的数据库系统中,浮点数类型的字节大小和表示方式也有所不同。例如,MySQL支持FLOAT和DOUBLE类型,Oracle支持BINARY_FLOAT和BINARY_DOUBLE类型。

不同的浮点数类型在存储和表示上的主要区别在于字节大小、规格和精度。FLOAT类型通常使用4个字节,DOUBLE类型通常使用8个字节。两者之间更大的差异在于DOUBLE类型可以存储更多的小数位,但是占用的存储空间更大。

对于浮点数类型,还需要注意浮点数精度问题。由于计算机的浮点数计算精度限制,浮点数类型的计算结果可能会存在少量误差。

三、定点数类型

定点数类型是一种精确表示小数的数值类型,在数据库中通常用于储存货币、精确测量结果等需求。

与浮点数类型不同,定点数类型使用固定的数据格式来表示小数。这种格式通常是一个整数和一个小数部分,其中小数部分的数量是固定的。

在不同的数据库系统中,定点数类型的字节大小和表示方式也有所不同。例如,MySQL支持DECIMAL和NUMERIC类型,Oracle支持NUMBER类型。

不同的定点数类型在存储和表示上的主要区别在于字节大小、精确度和规格。例如,DECIMAL类型的规格通常是DECIMAL(精度,小数位数),其中精度表示更大可储存的数字的位数,小数位数表示浮点位数。

在数据库中,数值类型用于储存和表示数字。不同的数值类型有不同的存储和表示方式,可以通过储存大小、数字量、规格和精度等来区分。在选择数值类型时,应该根据具体的需求选择最适合的类型,避免浪费存储空间并提高性能和可扩展性。

相关问题拓展阅读:

数据库中所有的数据类型?

MySQL 数据类型,在 MySQL 中,有三种携键主要的类型:文本、数字和日期/时间类型橡敬。辩如巧

SQL 用于各种数据库的数据类型:

一、MySQL 数据类型:

在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。

1、羡悉Text 类型。

2、Number 类型。这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数。

3、Date 类型。

即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。

TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

二、SQL Server 数据类型:

1、String 类兄腔乎型。

2、Number 类型。

3、Date 类型。

4、其他数据类型。

扩展资料:

Microsoft Access的数据类型:

参考资料圆孝:

百度百科–SQL数据类型

数据库模型主要分有两种,即关系型数据库和

非关系型数据库

关系型数据库:网络数据库和层次数据库很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户对这两种数据库进行存取时,依然需要明确数据的存储结拦察构,支出存储路径。而

关系数据库

就可以较好地解决这些问题 。

非关系型数据库:非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL” 指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定非关系型数据库,而是作为传统关系型数据库的一个有效补充。

扩展资料

关系型数据库的优点:关系型数据库由于具有20多年的技术历程,技术成熟。通过事务处理保持数据的一致性,数据更新的开销很小。其次,可以进行Join等复杂查询

非关系型数据库的优点:处理高并发、大兄滚批量数据的能力强羡衡余。支持分布式集群,

负载均衡

,性能高,而且可以解决“阻抗失谐”问题。内存级数据库,查询速度快。储格式多,支持key-value形式、文档形式、图片形式。有多表连接查询机制的限制,扩展性高。

参考资料来源:

百度百科-数据库(类型)

参考资料来源:

百度百科-关系型数据库

参考资料来源:

百度百科-非关系型数据库

bigint

巨整型,橡戚巨整型是八个字节的整数,精度为 19 位返亩。巨整型的范围从 -9,223,372,036,854,775,808 到

9,223,372,036,854,775,807。

binary

二进制

bit

字节

char

字符类型

detetime

时间类型

decimal

Decimal 数据类型 Decimal 变量存储为 96 位(12 个字节)无符号的整型形式,并除以一个 10 的幂数。

这个变比因子决定了小数点右面的数字位数,其范围从 0 到 28。变比因子为 0(没有小数位)的情形下,

更大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 个小数位的情况下,更大值为

+/-7.,而最小的非零值为 +/-0.。

float

单精度类型

image

图片类型

int

整形

money

货币类型

nchar

字符类型,根据 unicode 标准所进行的定义,用给定整数代码返回 unicode 字符。

ntext

文本类型

numeric

decimal(numeric ) 同义,用于精确存储数值

decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一

个准确(精确)的数字表达法;不存储值的近似值。

nvarchar

可变长度 (varchar) 字符数据类型。

real

float 和 real 数据

float 和 real 数据类型被称为近似的数据类型。在近似数字数据类型方面,float 和 real 数据的使用遵

循 IEEE 754 标准。

alldatetime

短日期类型

allint

短整型

allmoney

短货币型

sql_variant

一种数据类型,用于存储 SQL Server 支持的各种数据类型(不包括 text、ntext、image、timestamp 和

sql_variant)的值。

text

文本

timestamp

这里有介绍

tinyint

tinyint 使用整数数据的精确数字数据类型,范围 0 到 255,存储 1 字节

uniquedentifier

uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符(GUID)一样。GUID是唯一

的二进制数:世界上的任何两台计算机都不会生成重复的GUID值。GUID主要用于在用于多个节点,多台计算

机的网络中,分配必须具有唯一性的标识符。 在SQL中 ROWGUIDCOL表示新列是行的全局唯一标识列。对于

每个表只能指派一个uniqueidentifier 列作为ROWGUIDCO列。ROWGUIDCOL属性只能指派给uniqueidentifier

Uniqqueidentifier 是全局唯一的标识

varbinary

可变长度二进制数据。n 可以是从 1 到 8,000 之间的值。max 指示更大存储大小为 2^31-1 字节。存储大

小为所输入数据的实际长度 + 2 个字节。所输入数据的长度可以是 0 字节。varbinary 的 ANSI SQL 同义

词为 binary varying。

varchar

可漏如森变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示更大存储大小是 2^31-1 个字节

。存储大小是输入数据的实际长度加 2 个字节。所输入数据的长度可以为 0 个字符。varchar 的 ISO 同

义词为 char varying 或 character varying。

基本就是这样吧。

bigint 大的伍春整型 64位

binary 二伏空进制型数据

bit 位(1为真0为假)

char 字符

datetime 时间

decimal 十进制浮点型

float 单精度浮点型

image 二进制图像

int 整型(32位)

money 钱(浮点型缺橘瞎,精度三位小数)

nchar Unicode固定长度字符

ntext 文本

numeric 数字

nvarchar Unicode可变长度字符

real 类似于C++,JAVA中的double

alldatetime 小型时间

allint 小型int(16)位

allmoney 小钱

sql_variant 变量

text ANSI文本

timestamp 不知道

tinyint 极少整型(8位)

uniquedentifier 不知道

varbinary varchar

sql语言中,各种数据类型代表的含义是什么

(1)数值型

数值是诸如32 或153.4 这样的值。MySQL 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“E”、一个符号(“+”或“-”)和一个整数指数来表示。1.24E+12 和23.47e-1 都是合法的科学表示法表示的稿缓数。而1.24E12 不是合法的,因为指数前的符号未给出。

浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。

数值前可放一个负号“-”以表示负值。

(2)字符(串)型

字符型(也叫字符串型,简称串)是诸如“Hello, world!”或“一个馒头引起的血案”这样的值,或者是号码这样的值。既可用单引号也可用双引号将串值括起来。

初学者往往分不清数值和字符串的区别。都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的是要参与计算的,比如它是金融中的一个货款总额;而字符型的是不参与计算的,只是表示号码,这样的还有街道号码、门牌号码等等,它们都不参与计算。

(3)日期和时间型

日期和时间是一些诸如“”或“12:30:43”这样的值。MySQL还支持日期/时间的组合,如“:30:43”。

(4)NULL值

NULL表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是NULL值。

我们用Create Table语句创建一个表,这个表中包含列的定义。例如我们在前面创建了一个joke表,这个表中有content和writer两个列:

定义一个列的语法如下:

其中列名由col_name 给出。列名可最多包含64个字符,字符包括字母、数字、下划线及美元符号。列名可以名字中合法的任何符号(包括数字)开头。但列名不能完全由数字组成,因为那样可能使其与数据分不开。MySQL保留诸如SELECT、DELETE和CREATE这样的词,这些词不能用做列名,但是函数名(如POS 和MIN)是可以使用的。

列类型col_type表示列可存储的特定值。列类型说明符还能表示存放在列中的值的更大长度。对于某些类型,可用一个数值明确地说明其长度。而另外一些值,其长度由类型名蕴含。例如,CHAR(10) 明确指定了10个字符的长度,而TINYBLOB值隐含更大长度为255个字符。有的类型说明符允许指定更大的显示宽度(即显示值时使用多少个字符)。浮点类型允许指定小数位数,所以能控制浮点数的精度值为多少。

可仔敬山以在列类型之后指定可选的类型说明属性,以及指定更多的常见属性。属性起修饰类型的作用,并更改其处理列值的方式,属性有以下类型:

(1)专用属性用于指定列。例如,UNSIGNED 属性只针对整型,而BINARY属性只用于CHAR 和VARCHAR。

(2)通用属性除少数列之外可用于任意列。可以指定NULL 或NOT NULL 以表示某个列是否能够存放NULL。还可以用DEFAULT,def_value 来表示在创建一个新行但未明确给出该列的值时,该列可赋予值def_value。def_value 必须为一个常量;它不能是表达式,也不能引用其他列。不能对BLOB 或TEXT 列指定缺省值。

如果想给出多个列的专用属性,可按任意顺序指定它们,只要它们跟在列类型之念中后、通用属性之前即可。类似地,如果需要给出多个通用属性,也可按任意顺序给出它们,只要将它们放在列类型和可能给出的列专用属性之后即可。

2. MySQL的列(字段)类型

数据库中的每个表都是由一个或多个列(字段)构成的。在用CREATE TABLE语句创建一个表时,要为每列(字段)指定一个类型。列(字段)的类型比数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。

MySQL有整数和浮点数值的列类型,如表1所示。整数列类型可以有符号也可无符号。有一种特殊的属性允许整数列值自动生成,这对需要唯一序列或标识号的应用系统来说是非常有用的。

类型说明

TINYINT 非常小的整数

ALLINT较小整数

MEDIUMINT 中等大小整数

INT标准整数

BIGINT 较大整数

FLOAT 单精度浮点数

DOUBLE双精度浮点数

DECIMAL 一个串的浮点数

表1:数值列类型

每种数值类型的名称和取值范围如表2所示。

类型说明取值范围

TINYINT有符号值:-128 到127

无符号值:0到255(0 到28 – 1)

ALLINT有符号值:到32767(- 215 到)

无符号值:0到65535(0 到)

MEDIUMINT 有符号值:到(到)

无符号值:0到(0 到)

INT 有符号值:到(- 231 到231- 1)

无符号值:0到(0 到232-1)

BIGINT 有符号值:到75807(- 263到263-1)

无符号值:0到551615(0到264 – 1)

FLOAT 最小非零值:±1.E – 38

DOUBLE 最小非零值:±2.14E – 308

DECIMAL (M, D)可变;其值的范围依赖于M 和D

表2:数值列类型的取值范围

类型说明存储需求

TINYINT字节

ALLINT 2字节

MEDIUMINT3字节

INT 4字节

BIGINT8字节

FLOAT字节

DOUBLE 8字节

DECIMAL (M, D)M字节(MySQL 3.23 )

表3:数值列类型的存储需求

MySQL提供了五种整型: TINYINT、ALLINT、MEDIUMINT、INT和BIGINT。INT为INTEGER的缩写。这些类型在可表示的取值范围上是不同的。整数列可定义为UNSIGNED从而禁用负值;这使列的取值范围为0以上。各种类型的存储量需求也是不同的。取值范围较大的类型所需的存储量较大。

MySQL 提供三种浮点类型: FLOAT、DOUBLE和DECIMAL。与整型不同,浮点类型不能是UNSIGNED的,其取值范围也与整型不同,这种不同不仅在于这些类型有更大值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的更大和最小值)。

在选择了某种数值类型时,应该考虑所要表示的值的范围,只需选择能覆盖要取值的范围的最小类型即可。选择较大类型会对空间造成浪费,使表不必要地增大,处理起来没有选择较小类型那样有效。对于整型值,如果数据取值范围较小,如人员年龄或兄弟姐妹数,则TINYINT最合适。MEDIUMINT能够表示数百万的值并且可用于更多类型的值,但存储代价较大。BIGINT在全部整型中取值范围更大,而且需要的存储空间是表示范围次大的整型INT类型的两倍,因此只在确实需要时才用。对于浮点值,DOUBLE占用FLOAT的两倍空间。除非特别需要高精度或范围极大的值,一般应使用只用一半存储代价的FLOAT型来表示数据。

在定义整型列时,可以指定可选的显示尺寸M。如果这样,M应该是一个1 到255的整数。它表示用来显示列中值的字符数。例如,MEDIUMINT(4)指定了一个具有4个字符显示宽度的MEDIUMINT列。如果定义了一个没有明确宽度的整数列,将会自动分配给它一个缺省的宽度。缺省值为每种类型的“最长”值的长度。如果某个特定值的可打印表示需要不止M个字符,则显示完全的值;不会将值截断以适合M个字符。

对每种浮点类型,可指定一个更大的显示尺寸M 和小数位数D。M 的值应该取1 到255。D的值可为0 到3 0,但是不应大于M – 2(如果熟悉ODBC 术语,就会知道M 和D 对应于ODBC 概念的“精度”和“小数点位数”)。M和D对FLOAT和DOUBLE 都是可选的,但对于DECIMAL是必须的。在选项M 和D时,如果省略了它们,则使用缺省值。

2.2字符串列类型

MySQL提供了几种存放字符数据的串类型,其类型如下:

类型名说明

CHAR 定长字符串

VARCHAR 可变长字符串

TINYBLOB 非常小的BLOB(二进制大对象)

BLOB小BLOB

MEDIUMBLOB中等的BLOB

LONGBLOB大BLOB

TINYTEXT 非常小的文本串

TEXT 小文本串

MEDIUMTEXT中等文本串

LONGTEXT大文本串

ENUM 枚举;列可赋予某个枚举成员

SET;列可赋予多个成员

表4:字符串列类型

下表给出了MySQL 定义串值列的类型,以及每种类型的更大尺寸和存储需求。对于可变长的列类型,各行的值所占的存储量是不同的,这取决于实际存放在列中的值的长度。这个长度在表中用L 表示。

类型说明

更大尺寸

存储需求

CHAR( M)

M 字节

M 字节

VARCHAR(M)

M 字节

L + 1字节

TINYBLOB, TINYTEXT

28- 1字节

L + 1字节

BLOB, TEXT

字节

L + 2字节

MEDIUMBLOB, MEDIUMTEXT

224- 1字节

L + 3字节

LONGBLOB, LONGTEXT

232- 1字节

L + 4字节

ENUM(“value1”, “value2”, …)

65535 个成员

1 或2字节

SET (“value1”, “value2”, …)

64个成员

1、2、3、4 或8字节

表5:串列类型更大尺寸及存储需求

L 以外所需的额外字节为存放该值的长度所需的字节数。MySQL 通过存储值的内容及其长度来处理可变长度的值。这些额外的字节是无符号整数。请注意,可变长类型的更大长度、此类型所需的额外字节数以及占用相同字节数的无符号整数之间的对应关系。例如,MEDIUMBLOB 值可能最多字节长并需要3 个字节记录其结果。3 个字节的整数类型MEDIUMINT 的更大无符号值为。这并非偶然。

2.3日期时间列类型

MySQL 提供了几种时间值的列类型,它们分别是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。下表给出了MySQL 为定义存储日期和时间值所提供的这些类型,并给出了每种类型的合法取值范围。

类型名说明

DATE“YYYY-MM-DD”格式表示的日期值

TIME“hh:mm:ss”格式表示的时间值

DATETIME“YYYY-MM-DD hh:mm:ss”格式

TIMESTAMP“YYYYMMDDhhmmss”格式表示的时间戳值

YEAR“YYYY”格式的年份值

表6:日期时间列类型

下面举个例子:

这个例子创建一个student表,这个表中有name字段,字符类型列,不允许NULL(空值)。有Chinese、Maths和English三个整数类型列。还有个Birthday日期类型列。

CREATE TABLE student

(

Name varchar(20) NOT NULL,

Chinese TINYINT(3),

Maths TINYINT(3),

English TINYINT(3),

Birthday DATE

数据库的类型有哪些?本人在学mysql.

MySQL数据类型主要可以分成四种其中包括数值型、字符(串)型与日期和时间型与NULL值。

1. MySQL数据类型

在MySQL中有如下几种数据类型:

(1)数值型

数值是诸如32 或153.4 这样的值。MySQL 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“E”、一个符号(“+”或“-”)和一个整数指数来表示。1.24E+12 和23.47e-1 都是合法的科学表示法表示的数。而1.24E12 不是合法的,因为指数前的符号未给出。

浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。

数值前可放一个负号“-”以表示负值。

(2)字符(串)型

字符型(也叫字符串型,简称串)是诸如“Hello, world!”或“一个馒头引起的血案”这样的值,或者是号码这样的值。既可用单引号也可用双引号将串值括起来。

初学者往往分不清数值和字符串的区别。都是数字啊,怎么一 个要用数值型,一个要用字符型呢?关键就在于:数值型的是要参与计算的,比如它是金融中的一个货款总额;而字符型的是不 参与计算的,只是表示号码,这样的还有街道号码、门牌号码等等,它们都不参与计算。

(3)日期和时间型

日期和时间是一些诸如“”或“12:30:43”这样的值。MySQL还支持日期/时间的组合,如“:30:43”。

(4)NULL值

NULL表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是NULL值。

我们用Create Table语句创建一个表(参看前面的章节),这个表中包含列的定义。例如我们在前面创建了一个joke表,这个表中有content和writer两个列:

定义一个列的语法如下:

其中列名由col_name 给出。列名可最多包含64个字符,字符包括字母、数字、下划线及美元符号。列名可以名字中合法的任何符号(包括数字)开头。但列名不能完全由数字举逗组成,因 为那样可能使其与MySQL数据类型分不开。MySQL保留诸如SELECT、DELETE和CREATE这样的词,这些词不能用做列名,但是函数名(如POS 和MIN)是可以使用的。

列类型col_type表示列可存储的特定值。列类型说明符还能表示存放在列中的值的更大长 度。对于某些类型,可用一个数值明确地说明其长度。而另外一些值,其长度由类型名蕴含。例如,CHAR(10) 明确指定了10个字符的长度,而TINYBLOB值隐含更大长度为255个字符。

有的类型说明符允许指定更大的显示宽度(即显示值时使用多少个字符)。浮 点类型允许指定小数位数,所以能控制浮点数的精度值为多少。

可以在列类型之后指定可选的类型说明属性,以及指定更多的常见属性。属性起修饰类型的作用,并更改其处理列值物伏的方式,属性有以下类型:

(1)专用属性用于指定列。例如,UNSIGNED 属性只针对整型,而BINARY属性只用于CHAR 和VARCHAR。

(2)通用属性除少数列之外可用于任意列。可以指定NULL 或NOT NULL 以表示某个列是否能够存放NULL。还可以用DEFAULT,def_value 来表示在创建一个新行但未明确给出该列的值时,该列可赋予值def_value。def_value 必须为一个常量;它不能是表达式,也不能引用其他罩答携列。不能对BLOB 或TEXT 列指定缺省值。

如果想给出多个列的专用属性,可按任意顺序指定它们,只要它们跟在列类型之后、通用属性之前即可。类似地,如果需要给出多个通用属性,也可按任意顺序给出它们,只要将它们放在列类型和可能给出的列专用属性之后即可。

2. MySQL的列(字段)类型

数据库中的每个表都是由一个或多个列(字段)构成的。在用CREATE TABLE语句创建一个表时,要为每列(字段)指定一个类型。列(字段)的类型比MySQL数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。

瑭锦TANJURD总结数据库族御通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据兆樱岩库是按不同的数据结构来联系颂纯和组织的。

关于数据库数值型表示方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 数据库中的数值类型: 储存和表示方式 (数据库数值型表示方法)