SQL数据库中哪个类型可以存储负数? 如果不能存储,用什么方法才能存储?

SQL数据库中哪个类型可以存储负数? 如果不能存储,用什么方法才能存储?,第1张

数据库中一般的数字类型都可以存储负数,如int,numeric,decimal等。

工具:sqlserver 2008 R2

步骤:

1、以int类型为例,首先创建一个表:

2、在表中分别插入正数、负数和零。

3、执行后结果:

大型文本数据可以采用文本或图形二进制的数据类型

1、TEXT

TEXT数据类型用于存储大量文本数据,其容量理论上为1 到2的31次方-1 (2, 147, 483, 647)个字节,在实际应用时需要视硬盘的存储空间而定。

SQL Server 2000 以前的版本中,数据库中一个TEXT 对象存储的实际上是一个指针,它指向一个个以8KB (8192 个字节)为单位的数据页(Data Page)。 这些数据页是动态增加并被逻辑链接起来的。在SQL Server 2000 中,则将TEXT 和IMAGE 类型的数据直接存放到表的数据行中,而不是存放到不同的数据页中。 这就减少了用于存储TEXT 和IMA- GE 类型的空间,并相应减少了磁盘处理这类数据的I/O 数量。

2、NTEXT

NTEXT数据类型与TEXT.类型相似不同的,是NTEXT 类型采用UNICODE 标准字符集(Character Set), 因此其理论容量为230-1(1, 073, 741, 823)个字节。

3、IMAGE

IMAGE 数据类型用于存储大量的二进制数据Binary Data。其理论容量为2的31次方-1(2,147,483,647)个字节。其存储数据的模式与TEXT 数据类型相同。通常用来存储图形等OLE Object Linking and Embedding,对象连接和嵌入)对象。在输入数据时同BINARY数据类型一样,必须在数据前加上字符“0X”作为二进制标识。

后台获取前台提交数据时,加个负号不就是负数了吗?然后再保存到数据库。比如

x = -request("x")

或者在保存到数据库时再转为负数:

sqlstr = "update table1 set x=" &-request("x") &" where id=" &request("id")

或 sqlstr = "update table1 set x=-" &request("x") &" where id=" &request("id")

是nid的值超过int(11)的最大值了\

是超出了,mysql中int型数据的最大值是2147483647, 要想保存这么大的数据必须将数据类型改成改成bigint

以下参考http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/08/25/2152993.html

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

smallint

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。

tinyint

从 0 到 255 的整型数据。存储大小为 1 字节。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存