当前位置:首页 » 编程语言 » sql表占字节的大小
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql表占字节的大小

发布时间: 2023-03-03 19:20:51

1. sql中类型占多少字节

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,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。 smallmoney 货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。 近似数字 float 从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。 real 从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。 datetime 和 smalldatetime datetime 从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。 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)。

2. SQL中numeric(22,5)为什么占13个字节,numeric(8,3)占5个字节

decimal[(p[,s])] 和numeric[(p[,s])]

固定精度和小数位数。使用最大精度时,有效值的范围为 - 10^38 +1 到 10^38 - 1。decimal的 ISO 同义词为dec和dec(p、s)。numeric在功能上等价于decimal。

p(精度)

最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。

s(小数位数)

小数点右边可以存储的十进制数字的位数。从p中减去此数字可确定小数点左边的最大位数。小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到p之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <=s<=p。最大存储大小基于精度而变化。

如上表中:精度P=22时,numeric(22,5)是13字节。

精度P=8 时,numeric(8,3)是5字节。


一定要给分啊,亲!~~

3. sql表有没有大小限制

8,060 字节,是 SQL Server 中的“数据页”大小限制。

“数据行”是保存在“数据页”中,一个“数据页”可以保存多个“数据行”。如果一行数据超过 8,060 字节,则无法放入“数据页”中,因此保存失败。

text、image 等字段的数据不存在此限制,因为该字段实际上仅把一个指向 text、image 数据的指针保存在“数据页”上,而“数据页”并没有保存 text、image 字段本身的数据(好像是 16 字节长度的指针,记不清了)。

注:不能直接在 text、image 等字段上指定条件搜索,必须使用全文检索或相关函数。检索该类型的字段会严重降低数据库性能,因此不是必须不推荐使用 text、image 等字段。

4. SQL中英文字符数据类型nchar,char,varchar与nvarchar所占字节数分别是

这个提问有点问题哦,简单的讲是这样的 1、 char(n),varchar(n)是长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。2、nchar(n),nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

举个例子,如果定义varchar(10) 这里可以最多可以存放10个英文字母和5个中文汉字
nvarchar(10) 这里可以最多可以存放10个英文字母和10个中文汉字

5. SQL数据类型nchar,char,varchar与nvarchar所占字节数是多少

nchar与char是相似的,nvarchar与varchar是相似的。

(1)char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义 char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。因为是固定长度,所以速度效率高。

(2)Varchar类型:Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"。

(3)而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。

(4)由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉。

(5)VARCHAR存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。

(6)nchar类型和Nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。

(7)关于长度与汉字:varchar(100)/char(100)能存50个汉字,nvarchar(100)/nchar(100)能存100个汉字。