因此,使用VARCHAR2优于VARCHAR的优点主要在于VARCHAR2根据数据库的长度占用可变大小的空间;当插入的列值为空时,这会特别有效,因为在这种情况下几乎没有空间被占用。因此,出于同样的原因,数据的数据类型是否具有相同的行为方式,以便当插入的数字为空时,数据库中没有空间浪费?Oracle中用于数字的可变大小数据类型
3
A
回答
4
是的,存在可变长度数字数据类型,它被称为NUMBER。
Oracle使用精度所需的最小空间(scale需要一个字节)分别存储精度(有效数字)和标度。
NUMBER(x,y)是NUMBER的子类型,它们的存储方式与常规NUMBER相同,只是有额外的约束。
AFAIK,没有等同于数字的CHAR。
你可以看到Oracle如何将数据存储在内部与DUMP功能:
SQL> select dump(1), dump(12345), dump(123456789) from dual;
DUMP(1) DUMP(12345) DUMP(123456789)
------------------ ------------------------ ------------------------------
Typ=2 Len=2: 193,2 Typ=2 Len=4: 195,2,24,46 Typ=2 Len=6: 197,2,24,46,68,90
正如你可以看到精确的数据长度增加。
+0
这部分解决了这个问题,但这里有个想法,如果我在表T中有一个NUMBER类型的可为空的列A,那么对于任何记录在列A中为空的表T中,数据库是否还以某种方式将空间分配给该列作为准占位符? – 2012-02-16 11:07:41
+1
NULL值在具有值的最后一列之前每列需要一个字节。最后的NULL列不会被存储并取0字节。 – 2012-02-16 12:44:33
相关问题
- 1. 获取数据类型字节大小
- 2. 数据库数据类型大小
- 3. oracle数据类型
- 4. PL/SQL数据类型支持大于NVarchar2的大小
- 5. 用于大型数组大小的Powerset
- 6. NumPy mmap:“ValueError:可用数据的大小不是数据类型大小的倍数。”
- 7. 可用作数据类型的变量。
- 8. OSX和iOS数据类型的大小
- 9. 用于数字列表(或不含特定大小的数字数组)的mongodb模式数据类型
- 10. Android中的字节数据类型内存大小
- 11. Oracle数据库的数字(4)与MySQL数据类型相当于什么?
- 12. SQL Server:Openquery到Oracle:数字/数字的数据类型
- 13. Oracle单值字段数据类型
- 14. 值的范围取决于数据类型的大小?
- 15. VB6可用于坐标(矩形)的数据类型参数数据类型
- 16. 改变形状大小的数据类型
- 17. 如何修复数据类型大小?
- 18. 提取数据类型大小PostgreSQL
- 19. MPLAB IDE数据类型大小
- 20. 常用数据库字段大小/类型快速参考?
- 21. 增加Oracle中BLOB数据类型大小的语法是什么?
- 22. 如何在pl/sql(oracle 9i)中查找数据类型的大小?
- 23. 用于在oracle数据库中存储经度和纬度的数据类型
- 24. Oracle标识数据类型
- 25. oracle数据类型问题
- 26. Oracle 10gR2 CLOB数据类型
- 27. Oracle号码数据类型
- 28. Oracle编号数据类型
- 29. Redis - 数据大小是否可以大于内存大小?
- 30. C#数据类型 - > Oracle数据
'VARCHAR2'和'VARCHAR'完全相同,没有区别。你可能指的是'VARCHAR2'与'CHAR'的区别吗? – 2012-02-16 10:00:36
“空间便宜”不是;如果您即将接近空间大小的末端,您可以添加到该框中,删除未使用的表格和重建表格等将为您节省的远远超过使用数字数据类型。 – Ben 2012-02-16 10:17:30
@a_horse_with_no_name纠正了我的错误,但我认为VARCHAR2和VARCHAR是不同的,尽管它们曾经是相同的。 – 2012-02-16 11:12:44