您当前位置:主页 > 资讯攻略 >
来源:未知
2019-11-06 03:15:32 浏览: 分类:资讯攻略

Oracle数据类型及存储方式

摘要

通过实例,全面深入地分析了oralce的基本数据类型及其存储方法。本文以oracle 10G为基础,介绍了Oracle 10G引入的新的数据类型。让你对oracle数据类型有了新的认识。揭露一些不为人知的秘密和被忽视的盲点。从实用和优化的角度出发,讨论了每种数据类型的特点。从这里开始甲骨文之旅!

第一部分人物类型

&教派;1.1字符

一个定长字符串,将用空单元格填充以达到其最大长度,最大2000字节。

1.创建一个新的测试表test_char。只有一个char类型的列。长度为10

SQL & gt创建表test _ char(colA char(10));

表已创建

2.在此表中插入一些数据。

SQL & gt插入到test_char值(' a ');

插入1行

SQL & gt插入到test_char值(' aa ');

插入1行

SQL & gt插入到test_char值(' AAA ');

插入1行

SQL & gt插入到test_char值(' AAAA ');

插入1行

SQL & gtinsert into test_char值(' aaaaaaaaaa ');

插入1行

注意:最多只能插入10个字节。否则,报告一个错误。

SQL & gt插入到test_char值中(' aaaaaaaaaaaa ');

插入到test_char值(' aaaaaaaaaaa ')

ORA-12899:对于列& quot发布测试& quot。"测试_字符& quot。"可乐& quot(实际:11,最大:10)

3.使用dump函数查看每一行的内存结构。

SQL & gtselect colA,dump(可乐)from test _ char

可乐转储(可乐)

- -

一个Typ=96 Len=10: 97,32,32,32,32,32,32,32,32,32

aa Typ=96 Len=10: 97,97,32,32,32,32,32,32,32

aaa Typ=96 Len=10: 97,97,97,32,32,32,32,32,32

aaaa Typ=96 Len=10: 97,97,97,97,32,32,32,32,32

aaaaaaaaaa Typ=96 Len=10: 97,97,97,97,97,97,97,97,97

注意:Typ=96表示数据类型的ID。Oracle对每种数据类型进行编号。表示字符类型的数字是96。

Len =10表示内部存储的长度(以字节为单位)。虽然在第一种情况下只有一个角色被保存& rsquoa & rsquo,但在空之间还是占了10个字节。

7,32,32,32,32,32,32,32,32,32,32表示内部存储方法。可以看出,oracle的内存是以数据库字符集存储的。

97正是字符a的ASCII码。

您可以使用chr函数将ASCII码转换成字符。

SQL & gt从dual中选择chr(97);

人权委员会(97)

-

a

要知道一个字符的ascii码,可以使用函数ASCII。

SQL & gt从dual中选择ascii(' a ');

ASCII码(' A ')

-

97

32正好是空的ascii码值。

Char类型是固定长度类型。它将始终填充空单元格以达到固定宽度。

使用char类型会浪费空的存储空间。

Oracle数据类型的长度单位是字节。

SQL & gt从dual中选择dump(' Han ');

转储('韩')

-

Typ=96 Len=2: 186,186

可以看出,甲骨文中一个汉字占两个字节。

英文字母或符号只占一个字节。

Char(10)最多可以存储5个汉字。

&教派;1.2 varchar2

是长度可变的字符类型。它可以占用4000字节的存储空间空。

1.创建一个只有一列的表,类型为varchar2,长度为10。

SQL & gt创建表test _ varchar(col varchar 2(10));

表已创建

2.插入一些数据

SQL & gt插入到test_varchar值(' a ');

插入1行

SQL & gt插入到test_varchar值(' aa ');

插入1行

SQL & gt插入到test_varchar值(' AAA ');

插入1行

SQL & gt插入到test_varchar值中(' aaaaaaaaaa ');

插入1行

SQL & gt插入到test_varchar值(' aaaaaaaaaaaa ');

2.用dump函数检查每一行的内部存储结构。

SQL & gtselect col,dump(col)from test _ varchar;

列转储

- -

典型=1透镜=1: 97

aa Typ=1 Len=2: 97,97

aaa Typ=1 Len=3: 97,97,97

aaaaaaaaaa Typ=1 Len=10: 97,97,97,97,97,97,97,97,97,97

Typ=1,表示oracle中varchar2的类型号为1。

Len代表每行数据占用的字节数。

随后是特定的存储值。

可以看出,varchar2占用的空房间和节省的一样多。在空之间比较。不会像char一样用空单元格填充。

&教派;1.3字节和字符

在10g中,当定义字符类型的宽度时,可以指定单位。

字节就是字节。

Char是一个字符。

Varchar2(10字节)的长度是10个字节。

Varchar2(10 char)的长度为10个字符。

Char(10字节)长度为10字节。

Char(10 char)的长度为10个字符。

一个字符占用多少字节是由当前系统采用的字符集决定的。

本文链接:http://www.123down.cn/gonglue/227382.html

攻略资讯
安卓软件