mysql有哪些数据类型长度分别是多少

mysql有哪些数据类型长度分别是多少,第1张

精确数字

整数

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。

smallint

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整数数据。

tinyint

从 0 到 255 的整数数据。

bit

bit

1 或 0 的整数数据。

decimal 和 numeric

decimal

从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。

numeric

功能上等同于 decimal。

money 和 smallmoney

money

货币数据值介于 -2^63 (-922,337,203,685,4775808) 与 2^63 - 1 (+922,337,203,685,4775807) 之间,精确到货币单位的千分之十。

smallmoney

货币数据值介于 -214,7483648 与 +214,7483647 之间,精确到货币单位的千分之十。

近似数字

float

从 -179E + 308 到 179E + 308 的浮点精度数字。

real

从 -340E + 38 到 340E + 38 的浮点精度数字。

datetime 和 smalldatetime

datetime

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 333 毫秒)。

smalldatetime

从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。

字符串

char

固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

varchar

可变长度的非 Unicode 数据,最长为 8,000 个字符。

text

可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。

Unicode 字符串

nchar

固定长度的 Unicode 数据,最大长度为 4,000 个字符。

nvarchar

可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。

ntext

可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。

二进制字符串

binary

固定长度的二进制数据,其最大长度为 8,000 个字节。

varbinary

可变长度的二进制数据,其最大长度为 8,000 个字节。

image

可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。

其它数据类型

cursor

游标的引用。

sql_variant

一种存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。

table

一种特殊的数据类型,存储供以后处理的结果集。

timestamp

数据库范围的唯一数字,每次更新行时也进行更新。

uniqueidentifier

全局唯一标识符 (GUID)。

FLOAT

FLOAT数据类型

可精确到第15 位小数,其范围为从-179E -308 到179E +308

DECIMAL

DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。

两个都可以,一般使用Float类型的小数来表示百分比,但是根据你的需要使用其他表示方法也行,使用字符型,把比例用字符串

的形式存入也是可以的,比如说使用varchar,存入'1/7',使用INT,根据精度存入数字,如1234,取出后除以100,得1234等等。

decimal 是数据存储类型

28表示有效长度为28位

6表示小数占6位 不用SQL语言我就不知道怎么实现了

我也很想知道不用SQL语言怎么实现

例:

decimal(2,1),有效长度为2,小数位占1位。

此时,插入数据“123”、“12”等会出现“数据溢出错误”的异常;插入“123”或“12345”会自动四舍五入成“12”;插入“2”会自动补成“20”,以确保2位的有效长度,其中包含1位小数。

你不觉得上面说的有问题吗?

期待哪位大牛给你解决吧

decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。

“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。

下面是decimal对应表,可以用来进行对照:

扩展资料:

Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。

参考资料:

Decimal_百度百科

最近在看《深入浅出MySQL》一书,看到了数值类型那一节。里面介绍了一些常用字段的相关信息,如字节长度、最大值、最小值等。

当看到 DECIMAL 字段时,它的字节数是 M+2 ,这个让我很不解,是为什么?

DECIAML 与 FLOAT 和 DOUBLE 的存储方式不同。

FLOAT 和 DOUBLE 是用二进制存储数据的,所以会有部分精度问题。

DECIAML 是用字符串的方式存储的,所以它不存在精度问题,那么它的长度就是存储字节的长度。

那么问题来了,例如: DECIMAL(5,2) 的最大值是 99999 ,那么总长度也就是 5+1 ,又为什么是 5+2 呢?

第二天工作的时候,帮忙拉取一个数据,就手动 *** 作了一把,其中两个数据要相加一下。当我看到那个 + 号时,我想通了。

DECIMAL 也是有符号位的,而当时我只看的最大值,如果看最小值的话,就能够想通为什么是 M+2 了。

所以最终 DECIMAL 的长度计算方式是:1个字节的符号位 + 一个字节的小数点位 + 纯数字的长度(M) = 1 + 1 + M = M + 2。

困点得以解决,这种思考是被人直接告知要更加难得的,问题虽小,值得纪念。

1、数据库中表示小数。

2、所以java使用float接受定义,是最合适的。

3、还有一种Double类型,不过这种类型是使用小数很位数很多的时候使用它最后合适。

Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以再定义时划定整数部份以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。存储数据范围是,-10^38~10^38 的固定精度和小数位的数字。一个decimal类型的数据占用了2~17个字节。decimal 的 SQL-92 同义字是 dec 和 dec(p, s),numeric 的功能相当於 decimal。

以上就是关于mysql有哪些数据类型长度分别是多少全部的内容,包括:mysql有哪些数据类型长度分别是多少、数据库decimal比例、SQL语言中 [decimal] (28,6) 是什么意思不用SQL语言怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9330708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存