数据库学习(1.数据库类型篇)

上传人:kms****20 文档编号:50961952 上传时间:2018-08-11 格式:PPT 页数:36 大小:855.50KB
返回 下载 相关 举报
数据库学习(1.数据库类型篇)_第1页
第1页 / 共36页
数据库学习(1.数据库类型篇)_第2页
第2页 / 共36页
数据库学习(1.数据库类型篇)_第3页
第3页 / 共36页
数据库学习(1.数据库类型篇)_第4页
第4页 / 共36页
数据库学习(1.数据库类型篇)_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《数据库学习(1.数据库类型篇)》由会员分享,可在线阅读,更多相关《数据库学习(1.数据库类型篇)(36页珍藏版)》请在金锄头文库上搜索。

1、久其通用数据管理平台数据库学习数据类型篇李双义数据库地位支撑当代计算机应用最基本的四大支柱:操作系统网络技术 计算机语言 数据库 数据库地位l数据库技术产生于六十年代末,是数据管理的最新 技术,是计算机科学的重要分支l数据库技术是信息系统的核心和基础,它的出现极 大地促进了计算机应用向各行各业的渗透l数据库的建设规模、数据库信息量的大小和使用频 度已成为衡量一个国家信息化程度的重要标志数据库系统概述数据库是数据管理的最新技术,是计算机科学的重 要分支。 常用术语 -数据 -数据库 -数据库管理系统 -数据库系统 数据库管理技术的产生和发展 数据库系统的特点数据库数据类型介绍Oracle的数据类

2、型可以分为四类,分别是标量类型、复合类 型、引用类型和LOB类型。标量类型没有内部组件;而复合 类型包含了能够被单独操作的内部组件;引用类型类似于3G 语言中的指针,能够引用一个值;LOB类型就是一个lob定位 器,能够指出大对象的存储位置。1、标量(Scalar)2、复合(composite)3、引用(reference)4、LOB1、标量(Scalar)1.1 数字型1.2 字符型1.3 行型1.4 日期型1.5 行标识型1.6 布尔型1.7 可信型1.1数字型数字型可以存储整数、定点和浮点,可以表示数值的大小, 参与计算。l1.1.1 NUMBERl1.1.2 PLS_INTEGERl1

3、.1.3 BINARY_INTEGER1.1.1NUMBERNUMBER 我们可以使用NUMBER数据类型来存储定点和浮点数。它的 取值范围是1E-130至10E125。如果表达式的值超过这个范 围,我们就会得到溢出错误。我们可以为要存储的数字指定 精度,包括数字的全长和小数位。NUMBER(p,s)P为Precision(p=2000 效率优先,动态分配空间VARCHAR2(n),最大4000VARCAHR2子类型下面VARCHAR2的子类型的范围与VARCHAR2完全 相同,它们只是VARCHAR2的一个别名而已。 1.STRING 2.VARCHAR 我们可以使用这些子类型来与ANSI/

4、ISO和IBM 类型兼容。注意:目前VARCHAR和VARCHAR2有着相同的意义,但是 在以后的PL/SQL版本中,为了符合SQL标准,VARCHAR有 可能会作为一个单独的类型出现。所以最好使用 VARCHAR2,而不是VARCHAR。1.2.3 LongLONG 我们可以使用LONG类型来存储变长的字符串。 在数据库存储中可以保存2GB数据; 作为变量最大可表示32760字节的可变字符串 LONG类型和VARCHAR2很像。注意:在SQL语句中,PL/SQL会将LONG类型的值绑定成 VARCHAR2类型,而不是LONG。但是,如果被绑定的 VARCHAR2值超过4000个字节,Orac

5、le会自动地将绑定类 型转换成LONG,但LONG并不能应用在SQL函数中,所以 ,这时我们就会得到一个错误消息。1.2.4 NCHAR 本地字符:NCHAR和NVARCHAR2 NCHAR 国家字符集,于环境变量NLS制定的语言有关 我们用NCHAR类型来储存定长国家特有字符数据 。数据的内部表现形式取决于数据库创建时指定的 国家特有字符集,字符集可能采用变长编码(UTF- 8)或定长编码(AL16UTF16)。因为这种类型总是与 多字节字符兼容,所以我们可以使用它支持任何 Unicode字符数据。 NCHAR数据类型可以接受一个可选参数来让我们 指定字符的最大长度。语法如下: NCHAR(

6、maximum_size)1.2.5 NVARCHAR2 NVARCHAR2我们可以使用NVARCHAR2数据类型来存储变长的Unicode 字符数据。数据的内部表现取决于数据库创建时所指定的国 家特有字符集,它有可能采用变长编码(UTF8)或者定长编码 (AL16UTF16)。因为这个类型纵欲多字节兼容,我们可以用 它来支持Unicode字符数据。NVARCHAR2数据类型需要接受一个指定最大大小的参数, 语法如下: NCARCHAR2(maximum_size)1.3 行型行 存储二进制数据,不会在字符集间转换1.3.1 Raw 1.3.2 Long Raw1.3.1 RawRaw我们可以

7、使用RAW数据类型来存储二进制数据或字符串。例 如,一个RAW类型的变量可以存储一个数字化图形。RAW 类型数据和VARCHAR2类型数据类似,只是PL/SQL不对其 进行解析而已。同样在我们把RAW数据从一个系统传到另一 个系统中时,Oracle Net也不会对它做字符集转换。RAW类 型包含了一个可以让我们指定最大长度的可选参数,上限为 32767字节。语法如下: RAW(maximum_size) maximum不能为常量或者变量来指定,必须为1到32767范 围内的整数参数。作为数据存储在Oracle中最大为2000 1.3.2 Long Raw Long Raw 我们可以使用LONG

8、 RAW类型来存储二进制数据 或者二进制字符串。LONG RAW 和LONG类似, 但是它不会被PL/SQL解析。 作为数据库列最大存储2G字节数据;作为变量最 大32760字节 从9i开始,LOB类型变量可以与LONG和LONG RAW类型交换使用。Oracle推荐将LONG和LONG RAW都对应的转换成CLOB和BLOB类型1.4 日期型Datetime日期时间类型日期及时间DATE 世纪、年、月、天、小时、分钟、秒 公元前4712到公元后9999 精度为秒,适合记录一般时间 TIMESTAMP(n) TIMESTAMP是对DATE的扩展,包含了年月日时分秒 N为秒分量的小数位,从0到9

9、,最大精度为微秒 还可以支持时区INTERVAL时间间隔 时间间隔,这是一个差值,而不是绝对时间1.5 行标识型行标识 ROWID在Oracle内部,每个数据表都有一个伪列ROWID,用于存放 被称为ROWID的二进制值。每个ROWID代表了一行数据的 存储地址。物理ROWID能够标识普通数据表中的一行信息 ,而逻辑ROWID能够标识索引组织表(index-organized table)中的一行信息。其中ROWID类型只能存物理内容,而 UROWID(universal rowid)类型可以存储物理、逻辑或外来 (non-Oracle)ROWID建议:只有在旧的应用程序中,为了兼容性我们才使

10、用 ROWID数据类型。对于新的应用程序,应该使用UROWID 数据类型。1.6 布尔型布尔 布尔类型能存储逻辑值TRUE、FALSE和NULL( NULL代表缺失、未知或不可用的值)。只有逻辑 操作符才允许应用在布尔变量上。 boolean 数据库SQL类型并不支持布尔类型,只有PL/SQL 才支持。所以就不能往数据库中插入或从数据库中 检索出布尔类型的值。1.7 可信型可信可信,只有一种类型-MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长的二进制标签。在标准ORACLE 中,只能存储NULL值。2 复合(composite)复合标量类型是经过预定义的,利用这些类型可以

11、衍生出复合类 型。主要有记录、表。2.1 记录2.2 表2.1 记录记录记录,可以看做成是一组标量的组合结构,它的声明方式如 下:TYPE record_type_name IS RECORD filed1 type1 NOT NULL :=expr1) filedn type NOT NULL :=exprn 其中, record_type_name 是记录类型的名字,引用时必 须定义相关的变量,记录只是TYPE,不是VARTABLE2.2 表表不是物理存储数据的表,在这里是一种变量类型,也成为 PL/SQL表,它类似于C语言中的数组,在处理方式上也类似 。它的声明方式如下: TYPE ta

12、ble_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTEGER; 其中, table_type_name 是类型的名字,scalar_type是一种 变量类型的类型声明。引用时必须定义相关的变量。表和数 组不同。表有两列,KEY和VALUE,KEY就是定义时声明的 BINARY_INTEGER,VALUE就是定义时声明的scalar_type 。3 引用在PL/SQL8.0之前,只有一种类型 REF CURSOR ,也就是游标。它的定义比较简单,CURSOR cursor_name IS selectfrom;在PL/SQL8.0之后

13、,引入REF类型,它指向一个对象 。4 LOBLOBLOB(large object)数据类型BFILE、BLOB、CLOB和NCLOB可以最大存储 4G的无结构数据(例如:文本、图像、视频剪辑和音频)块,并且它们允 许高效地随即地分段访问数据。 LOB类型中存储了LOB定位器,它能够指向存放于外部文件中的“大对象”, in-line或out-of-line的形式。BOLB、CLOB、NCLOB或BFILE类型的数据库 字段存储了定位器。其中BLOB、CLOB和NCLOB的数据存在数据库中,in- line 或out-of-line的形式,而BFILE数据存在数据库之外的操作系统文件中 。 P

14、L/SQL是通过定位器来操作LOB的。 4.1 CLOB 4.2 NCLOB 4.3 BLOB4.4 BFILE 4.1 CLOBCLOB CLOB可以在数据库中分别存储大块CHAR类型的 字符数据,支持定宽和变宽字符集。指向自身类型 的一个大的数据块。可以在事务中应用,能被恢复 和复制。定位器可以跨事务使用,但不能跨会话使 用。 和ORACLE7中的LONG类型相似,存储单字节字 符数据,不能存储中文。 从9i开始,我们也可以把CLOB类型转换成CHAR 和VARCHAR2类型。反之亦然,这样我们就能在 大多数SQL和PL/SQL语句和函数中使用LOB类型 了。4.2 NCLOBNCLOB

15、NCLOB可以在数据库中存储大块NCHAR类型的字 符数据,支持定宽和变宽字符集。需要存储定位器 ,指向自身类型的一个大的数据块。可以在事务中 应用,能被恢复和复制。定位器可以跨事务使用, 但不能跨会话使用。 用来存储定长多字节字符数据。(例如:存笑傲 江湖就挺好) 4.3 BLOB二进制大对象类型 Binary Large Object, BLOB BLOB数据类型可以在数据库中存放不超过4G的大 型二进制对象。需要储存定位器,指向自身类型的 一个大的数据块。可以在事务中应用,能被恢复和 复制。定位器可以跨事务使用,但不能跨会话使用 。 可以存放大量文本、二进制数据(图像、音频、 可执行程序等等)、文件等 单独存储,存取方法特殊4.4 BFILEBFILEBFILE数据类型用于存储二进制对象,它将存储的内容放在 操作系统的文件中,而不是数据库内。每个BFILE变量都存 储一个文件定位器。它指向服务器上的一个大的二进制文件 。定位器包含目录别名,该别名给出了文件全路径。BFILE类型是只读的,而且它的大小要依赖于系统,不能超 过4G,我们的DBA要确保给定的BFILE存在且Oracle有读取 它的权限。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号