当前位置:文档之家› xmlOracle客观题整理版

xmlOracle客观题整理版

998如何设置SQL*Plus的运行环境?

999如何为SQL*Plus设置

缓存区?

1000假设“客户基本信息

”表包括3个列。如果

使用如下的insert 语

句向表中插入数据,

则执行该项语句时将

发生什么问题?

Insert into 客户基

本信息

Values(1020,’刘丽

’);

1001在INSERT语句的

VALUES子句中必须指

明哪些信息?且需要

满足哪些要求?

1002在UPDATE语句中使用

WHERE子句的目的是什

么?

1003

简述DELETE语句与

TRUNCATE语句的差

异?1004

简述表空间和数据文件之间的关系。1005

概述Oracle数据库体系的物理结构1006

简要介绍表空间、段、盘区和数据块之间的关系。1007

简述Oracle实例系统中各后台进程的作用。1008

共享操作模式和专用操作模式的工作过程有什么区别?1009简述标量变量和复合

变量之间的区别

1010

使用显示游标需要哪

几个步骤?简

1011简述如何处理用户自

定义异常

1012描述游标的各个属性1013如何处理非预定义异

常?

1014说明使用游标FOR循环

如何对游标进行处理1015介绍创建表时常用的

数据类型。

1016 简要介绍Oracle数据

表的特性。

1017 简要介绍Oracle 数

据表的各类约束及其

作用。

1018如何使用大对象数据

类型?

1019举例说明什么是重载

1020简述B树索引的组织结

构。

1021简述位图索引的组织

结构。

1022简述反向键索引的工

作原理。

1023如何为VENDITION模式

中的“商品信息”表

的“产地”列创建位

图索引?

1024简述外部表的局限性1025简述说明什么是簇,

以及什么是散列表1026用户配置文件可以对

系统的哪些资源进行

限制?

1027简述向用户授予系统

权限时,使用WITH

GRANT OPTION 选项的

作用

1028使用角色的优点有哪

1029描述主要的系统预定

角色的权限

1030使用数据泵导出工具

EXPDP执行导出操作。

1031简述数据泵导出工具

和传统导出工具之间

的区别。

1032简述如何使用

SQL*Loader导入外部

数据。

1033简要介绍什么是自动

撤销管理以及自动撤

销管理有哪些好处。1034简要介绍本地化管理

方式表空间中对段和

盘区的管理方式。1035什么是大文件表空

间?

1036如何创建非标准数据

块表空间?

1037.描述Oracle中锁的相

容性。

1038SELECT语句的基本作

用是什么。

1039比较内连接和外连接

1040比较子查询和连接查

1041创建表时常用的数据

类型。

1042当调用过程时,声么

样的参数可以返回

值?

1043对SCHOOL模式中的

STUDENT表创建分区

表,要求以学生所在

的班级信息为分区列

进行分区。

1044假设“客户基本信息

”表包括3个列。如果

使用如下的insert 语

句向表中插入数据,

则执行该项语句时将

发生什么问题?

Insert into 客户基

本信息Values(1020,

’刘丽’);

1045简述B树索引的组织结

1046简述Oracle初始化参

数文件。

1047简述Oracle数据库中

触发器的类型及其触

发条件。

1048简述创建序列时,各

个子句对序列的影响

1049简述反向键索引的工

作原理

1050简述角色的优点。1051简述启动数据库时的

状态。

1052简述如何处理用户自

定义异常.

1053简述如何修改初始化

参数。

1054简述什么是死锁?

1055简述事务的ACID特性

1056简述视图的作用。1057简述数据库的各种关

闭方式。

1058简述数据库的特殊状

态。

1059简述索引组织表的溢

出存储

1060简述索引组织表与普

通表之间的区别1061简述位图索引的组织

结构

1062简述向用户授予系统

权限时,使用WITH

GRANT OPTION 选项的

作用。

1063简述向用户授予系统

权限时,使用WITH

GRANT OPTION 选项的

作用

1064简述正规表达式。

1065简要介绍Oracle数据

表的各类约束及其用

法。

1066简要介绍ORACLE数据

表的特性

1067简要介绍本地化表空

间中对段和盘区的管

理方式

1068简要介绍模式与用户

之间的关系。

1069简要介绍什么是自动

撤销管理, 自动撤销

管理的好处是什么?

1070举例说明 WITH CHECK

OPTION 的作用。1071练习如何创建一个对

象类型EMPLOYEE,并

添加ORDER方法比较对

象的出生日期属性;

然后使用对象类型

EMPLOYEE创建对象表1072描述触发器相关性标

识符的作用。

1073描述一个触发器包括

哪几部分,及其作用

1074描述主要的系统预定

角色的权限。

1075哪些情况发生后会终

止事务?

1076如何获知表中是否存

在迁移记录和链接记

录?

1077如何使用RMAN对数据

库进行恢复与备份。1078如何使用SQL*Plus的

帮助命令获知某命令

的解释信息

1079设置事务的约束延期

性后,执行一些SQL语

句。当执行完这些SQL

语句后,要显式启用

约束,应该使用哪个

SQL语句?

1080使用角色的优点有哪

些?

1081要建立一个名为

Section1的存储点,

应使用哪个语句

1082有100个人围一圈,顺

序排号。从第1个人开

始报数,凡报到3的人

退出圈,问最后留下

的是原来的第几号?

试编写一个函数计算. 1083在创建一个视图时,

使用的 SELECET 语句

如下:

S ELECT COUNT(*)

FROM 商品信息,

为什么不能更新这个

视图?如何查看该视

图是否可以被更新?1084资源配置文件可以对

系统的哪些资源进行

限制?

描述主要的系统预定

角色的权限

你必须利用备份恢复

数据库,但是你没有

控制文件,该如何解

决问题呢?

给出两种相关约束?

解释归档和非归档模式之间的不同和它们各自的优缺点

如何在不影响子表的前提下,重建一个母表

使用索引的理由

如何建立一个备份控制文件?

数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?

你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?

题库二

通过设置环境变量PAUSE为ON来控制SQL*PLUS在显示完一页后暂留显示,知道回车键后才继续显示下一页数据。 使用命令SHOW PAGESIZE可以显示SQL*PLUS默认的一页大小。 通过设置LINSIZE选项,可以修改系统默认的每行打印80个字符。

编辑缓存区最常用的方法是将缓存区的内容传递到Window记事本中进行编辑,可以使用DEFINE命令来设置。

插入基本信息失败,如果某个列不允许null值存在,而在insert 语句中没有为该列指定值,则添加操作就会失败。如果insert into 子句指定了列名,那么每一个指定的列只能有一个值,且值的次序必须与表中定义的次序相同。

values子句中指定的值必须符合表中设置的所有限制,即这些值必须与宝义列的数据类型匹配,满足定义在列上的约束限制。例如,主键约束除了不允许存在null值外,还不允许有重复的值。 Values子句必须按表结构中定义的列的次序为每个列指供值。

Update语句可以实现对表中一条或多条记录进行更新;而使用where子句的目的是限定只对满足条件的行进行更新。

(1)、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。 (2)、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。 (3)、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。 (4)、TRUNCATE不能触发任何DELETE触发器。 (5)、不能授予任何人清空他人的表的权限。 (6)、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。 (7)、不能清空父表。

每一个表空间由一个或多个数据文件组成的,一个数据文件只可以属于一个表空间。

块头部,表目录,行目录,空闲目录,行空间。

一个或多个数据块组成一个盘区,一个或多个盘区组成一个段,一个或多个段组成一个表空间。

数据库写入进程(DBWR)负责缓冲存储区管理

在专用服务器操作模式中,Oracle为每个连接到数据库实例的用户进程启动一个专门的服务进程,用户进程连接到数据库实例期间,专用服务进程一直存在,如果同一时刻有大量用户进程连接到数据库,则数据库实例必须创建相同数目的服务进程。

标量变量是包含一个单独的值的变量。标量变量所使用的一般数据类型包括字符、数字、日期和布尔型。复合变量可以将不同数据类型的多个值存储在一个单元中。复合数据类型可以由用户自己根据需要定义其结构。

声明游标、打开游标、检索游标和关闭游标。

1.在PL/SQL块的定义部分定义异常情况:<异常情况> EXCEPTION 2、使用RAISE引出自定义异常:RAISE <异常情况> 3、在PL/SQL程序块的异常处理部分对异常情况做出相应的处理

%FOUND 布尔型属性,如果SQL语句至少影响一行,则为TRUE,否则为FALSE。

1、在PL/SQL程序块的定义部分定义异常情况:<异常情况> EXCEPTION

当FOR循环开始时,游标将自动打开(不需要使用OPEN方法),每循环一次,系统自动读取游标当前行的数据(不需要使用FETCH),当退出FOR循环时,游标被自动关闭(不需要使用CLOSE)。

数据类型:NUMBER(10),VARCHAR(20),CHAR(2),NUMBER(8,2),DATE,VARCHAR2(10), VARCHAR2(50),NOT NULL NUMBER(2)。

存储参数:当表所需的存储参数与表空间的默认储存参数不同时,需要在创建表时显式指定存储参数以替换空间的默认参数。在存储参数中,主要是设置INITIAL参数。

在Oracle 11g系统中,约束的类型包括非空约束、主键约束、唯一性约束、外键约束、检查约束和默认约束等。非空约束就是限制必须为某个列提供值。主键约束用于唯一地标识表中的每一行数据。唯一性约束强调所在的列不允许由相同的值。外键约束是这几种约束中最复杂的,外键约束可以使两个表进行关联。禁止约束既可以在定义约束时执行,可以对现有的约束执行;在禁用唯一性约束或主键约束时,如果有外键约束正在引用该列,则无法禁用唯一性约束或主键约束。如果不需要某个约束时,则可以将其删除。

在创建大对象表时,可以根据实际情况使用大对象类型定义某些列。大对象表定义完成之后,应该使用初始化函数初始化大对象列。对于CLOB或NCLOB列,可以使用EMPTY_CLOB()函数进行初始化。对于BLOB列,应该使用EMPLY_BLOB()函数进行初始化。可以在INSERT语句中使用这些初始化函数,初始化完成后,可以使用UPDATE语句向大对象列加入数据

重载是指在一个程序包中,过程和函数的名称可以相同,但是同名过程和函数的参数数量,次序和参数类型是不同的。在下面例子中定义了3个Add函数,分别用于实现数字之间﹑字符串之间和日期之间的加法Creeat or replace package overloading is:function Add(num1 in number,num2 in number) return number;function Add(str1

varchar2,str2 varchar2) return varchar2;function Add(date1 date,afterdate number) return date;end overloading;

B树索引的组织结构类似于一个树,其中的主要数据都集中在叶子结点上。各叶子结点中包括的数据有索引列的值和数据表中对应行的ROWID。

索引的作用简单地说就是能够通过给定的索引列值,快速地找到对应的记录。位图索引不存储ROWID值,也不存储健值。

在存储结构,它与常规的B树索引相同。然而,如果用户使用序列编号在表中输入新记录,则反向键索引首先反向每个列键值的字节,然后在反向后的新数据上进行索引。

Create bitmap index Merch_bitmap_index ON 商品信息(产地)tablespace user ;

在外部表上不能执行DML操作,也不能在外部表上建立索引。

簇是一种存储数据表中数据的方法,簇实际上是一组表,由一组共享相同数据块的多个表组成。散列函数使用散列函数定位行的位置。

在用户配置文件中可以进行限制的系统资源包括:

使用WITH GRANT OPTION选项后,被授予对象权限的用户可以将其获取的权限授予其他用户。使用GRANT语句可以将对象权限授予指定的用户、角色、PUBLIC公共用户组,其语法是:GRANT { object_privilege | ALL [PRIVILEGES]

有下列优点:.减少特权管理,不要显式地将同一特权组授权给几个用户,只需将这特权组授给角色,然后将角色授权给每一用户。

常见的系统预定义角色包括:CONNECT、RESOURCE、DBA、EXP_FULL_DATABASE和

IMP_FULL_DATABASE.

expdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp;

EXPDP只能在Oracle服务器端使用,不能再客户端使用;EXP既可以在客户端使用,也可以在服务器端使用。

使用SQL*Loader导入数据时,必须编辑一个控制文件(.CTL)和一个数据文件(.DAT)。创建空表结构,整理数据文件,编辑控制文件,调用SQL*Loader加载数据。

当用户执行DML操作修改数据时,UNDO数据被存放到UNDO段,而新数据则被存储在数据段中。如果事物操作存在问题,就需要回退事务,以取消事务变化。

在创建本地管理方式的表空间时,可以为它应用两种区的分配管理方式。AUTOALLOCATE 如果在EXTENT MANAGEMENT子句中指定了AUTOALLOCATE关键字,则说明由ORACLE负责对区的分配进行自动管理。UNIFORM 如果在EXTENT MANAGEMENT子句中指定了UNIFORM关键字,则说明表空间中所有的区都有统一大小。 在创建本地管理方式的表空间时,除了需要选择区的分配管理方式外,还可以选择表空间中段的存储管理方式。段的存储管理主要是指对ORACLE用来管理段中已用数据块和空闲数据块的机制

从ORACLE 10G开始,ORACLE引入了一个新增的表空间类型——大文件(BIGFILE)表空间,从而显著地增强了存储能力。一个大文件表空间对应一个单一的数据文件或临时文件,但是文件可以达到4G个数据块大小。理论上,当数据块大小为8KB时,大文件表空间的数据文件最大可以达到32TB;当数据块大小为32KB时,那么大文件表空间的数据文件最大可以达到128TB。

为了优化I/O性能,ORACLE系统允许不同的表空间使用不同大小的数据块,这样可以实现将大规模的表存储在由大数据块构成的表空间中,而小规模的表则存储在由小数据块构成的表空间中。在创建非标准数据块的表空间时,用户需要显式地使用个BLOCKSIZE选项

相容性是制一个事务在数据对象上的施加某种锁之后,其他事物是否能够在该数据对象上施加相应的锁。如果加锁成功,则说明这两种锁相容。反之则说明这两种锁是不相容的。检索数据

内连接的检索结果是笛卡尔积中满足连接条件的子集,外连接的特点是某些不满足连接条件的数据也可以出现在检索结果中。

在一个SELECT语句被嵌套在另外一个SELECT、UPDATE或DELETE等SQL语句中时,被嵌套的SELECT语句所执行的就是子查询;连接查询就是需要使用SELECT语句执行多表检索

即用户定义的数据类型和内置的数据类型。其中用户定义的数据类型是一种由用户自己定义的数据类型。内置数据类型可分为:

1.CHARACTER数据类型(定长字符串和变长字符串)

2.NUMBER数据类型―――数值数据类型的字段可以存储带有符号的整数或浮点数

3.日期时间数据类型-――可以存储日期和时间的组合数据

4.LOB数据―――用于大型的,未被结构化的数据

5.ROWID(伪列类型)―――用于在ORACLE内部保存表中每条记录的物理地址

Out参数

Create table

partition by hash(CID) (

partition part_01 tablespace class_space01,

partition part_02 tablespace class_space02,

partition part_03 tablespace class_space03 );

插入基本信息失败,如果某个列不允许null值存在,而在insert 语句中没有为该列指定值,则添加操作就会失败。如果insert into 子句指定了列名,那么每一个指定的列只能有一个值,且值的次序必须与表中定义的次序相同。

B树索引的组织结构类似于一个树,其中的主要数据都集中在叶子结点上。各叶子结点中包括的数据有索引列的值和数据表中对应行的ROWID

在传统上,Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取的初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件。

1、 DML触发器:当对表进行DML操作时触发,可以在DML操作前或操作后进行触发。

2、 替代触发器:替代触发器是Oracle用来替换所使用的实际语句而执行的触发器。

3、 系统触发器:在Orcale数据库系统的事件中进行触发,如系统的启动与关闭。

使用CREATE SEQUENCE命令创建序列的语法如下:

CREATE SEQUENCE

[START WITH start]

[INCREMENT BY increment ]

[MINVALUE minvalue | NOMINVALUE]

[MAXVALUE maxvalue | NOMAXVALUE]

[CACHE cache | NOCACHE]

[CYCLE | NOCYCLE]

[ORDER | NOORDER];

C REATE SEQUENCE 语句的各组成部分的意义如下:

s eq_name 将要创建的序列名。

i ncrement INCREMENT BY increment子句是可选的,表示序列的增量。

m invalue 可选子句MINVALUE minvalue决定一个序列生成的最小值。

m axvalue 可选子句MAXVLUE maxvalue决定一个序列生成的最大值。

s tart 可选的START WITH start 子句指定序列的开始位置。

c ache CACHE cache 选项使产生的序列号预分配,并存储在内存中。

c ycle 可选的CYCLE 关键字可用于使序列到达最大值(maxvalue)或者最小值

(minvalue)时,可复位并继续下去。

O RDER ORDER 选项可以保证生成的序列值是按顺序产生的。

在存储结构,它与常规的B树索引相同。然而,如果用户使用序列编号在表中输入新记录,则反向键索引首先反向每个列键值的字节,然后在反向后的新数据上进行索引。

由于角色集合了多种权限,所以当为用户授予角色时,相当于为用户授予了多种权限。这样就避免了向用户逐一授权,从而简化了用户权限的管理。

启动数据库过程:创建并启动与数据库对应的实例,然后为实例加载数据库,将数据库设置为打开状态。实例加载数据库后,数据库可能仍然处于关闭状态,只有将数据库设置为打开状态后,数据库才处于正常运行状态。正常启动模式下,可以选择将数据库设置为非受限状态和受限状态。在正常启动状态下,默认数据库处于读写状态,在必要的时候可以将数据库设置为只读状态。。

1、在PL/SQL块的定义部分定义异常情况:<异常情况> EXCEPTION

2、使用RAISE引出自定义异常:RAISE <异常情况>

3、在PL/SQL程序块的异常处理部分对异常情况做出相应的处理。

如果要对初始化参数进行修改,必须先关闭数据库,然后在初始化参数文件中进行编辑,再重新启动数据库使修改生效。

如果对数据对象加锁不当,就会发生死锁。死锁是指在两个以上的事务中,每个事务都因为试图加锁当前已被另一个事务加锁的数据项,从而造成相互等待现象。由于oracle控制并发是使用的锁机制,也因此即会产生死锁问题。oracle在执行一个语句时,会根据语句的含义,同时根据所处的事务隔离级别,解析出需要加什么样的锁,什么时候释放。而隔离级别越高,对锁资源占用越大。现在考虑这样的情形,oracle同时处理两个事务A,B。A 发过来几条语句,导致ORACLE加了几把锁没有释放,B发过来几条语句,导致ORACLE加了另外几把锁没有释放,现在,A又发过来一个语句,此语句要求ORACLE加的一些锁中,有几个锁已经被B事务占用,那么A等待,而B又发过来一条语句,此语句要求ORACLE加的锁,在A 手中。于是死锁出现。而隔离级别越高,死锁的可能性越大。可以分析出来,死锁的根本原因在于,事务包含的语句是分条发给oracle的,oracle不能够在事务开始时刻就解析出全部执行过程需要什么锁,什么时候释放,无法统一安排。

①事务的原子性是指事务中包含的所有操作要么全做,要么全不做。也就是说,事务的所有活动在数据库中要么全部反映,要么全部不反映,以保证数据库一致的。②一致性是指数据库在事务操作前和事务处理后,其中的数据必须都满足业务规则约束。事务的一致性要求:在事务处理开始之前,数据库中的所有数据都满足业务规则约束;当事务处理结束后,数据库中的所有数据仍然满足所有施加的业务规则约束。③隔离性是数据库允许多个并发事务同时对其中的数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时,由于它们的操作命令交叉执行而导致的数据不一致状态。事务的隔离性要求:在事务处理过程中,其他的事务不能访问该事务中的数据。这样就实现了数据库中的每个事务都感觉不到其他事务在与其并发执行。

视图是从一个或多个表中导出的虚表,它与常规表的不同之处在于它并不存储数据———它只在一个存储的查询中定义。但是用户可以对视图进行SELECT,INSERT,UPDATE和DELETE操作。使用视图可以实现强化安全、隐藏复杂性和定制数据显示等。

第一种:正常关闭方式(NORMAL),使用的是带有NORMAL子句的SHUTDOWN语句来正常关闭数据库。

第二种:立即关闭方式(IMMEDIATE),使用带IMMEDIATE子句的SHUTDOWN语句来关闭; 第三种:事务关闭方式(TRANSACTIONAL),使用这种方式是Oracle将等待所有未提交的事物完成后在关闭数据库,使用带有TRANSACTIONAL子句的SHUTDOWN语句将以事务方式关闭数据库;

第四种:终止关闭方式(ABOR);终止关闭方式将丢失一部分数据信息,会对数据库的完整性造成损害。使用带有ABORT子句的SHUTDOWN语句来关闭。

1:静默状态。在静默状态下,只有具有管理员权限的用户才能够在数据库中执行查询,更新操作和运行PL/SQL程序,任何非管理员用户都不能在数据库中执行任何操作。

2:挂起状态。当数据库处于挂起状态时,数据库所有的物理文件的I/O操作都被暂停。这样能保证数据库在没有任何I/O操作的情况下进行物理备份。

当索引组织表存储的数据量加大以后,设置溢出表空间。当每一行中数据操过指定值时,将该行中非健列的值的剩余数据放到溢出表空间中

一个普通表存储数据是使用“heap”的结构,或者是一大堆数据。索引组织表(IOT)存储数据是使用B-tree索引数据结构。在一个普通表中,数据没有特定的顺序;在一个IOT中,数据是按照主键值来排序

索引的作用简单地说就是能够通过给定的索引列值,快速地找到对应的记录。位图索引不存储ROWID值,也不存储健值

使用WITH GRANT OPTION选项后,被授予对象权限的用户可以将其获取的权限授予其他用户。使用GRANT语句可以将对象权限授予指定的用户、角色、PUBLIC公共用户组,其语法是: GRANT { object_privilege | ALL [PRIVILEGES]

[ (column_1 [, column_2]……) ] }

[, { object_privilege | ALL [PRIVILEGES]

[ (column_m [, column_n]……) ] } ]……

ON [ schema.]object

TO { user | role | PUBLIC}

[, { user | role | PUBLIC } ]……

[ WITH GRANT OPTION ]

[ WITH HIERARCHY OPTION ];

其中:

o bject_privilege表示对象权限;

c olumn_1、column_2、column_m、column_n表示列权限对应的列的列表;

s chema表示方案名;

o bject表示对象;

u ser表示被授权的用户;

r ole表示被授权的角色;

P UBLIC表示公共用户组;

如果授权时带有WITH GRANT OPTION选项,则被授权的用户还可以将这些对象权限传递给其

他用户。

授予对象权限时要注意的是:

$$ 如果是自己创建的对象,则具有该对象的所有对象权限。

$$ 如果要授予对象权限,则该对象必须是自己方案中的对象,或得到该对象权限时也得到

了WITH GRANT OPTION选项。

$$ WITH GRANT OPTION选项不能被授予角色。

$$ 在将对象权限授予其他用户时要考虑安全问题。

在授予系统权限时可以附加WITH GRANT OPTION 选项,使用该选项后,被授权的用户,角

色还可以将相应的系统权限授予其他用户,角色。

正规表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是

否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

PRIMARY KEY约束:PRIMARY KEY约束可以在列级或表级上进行定义,但不允许同时在两个级别上进行定义。

N OT NULL约束:为字段定义NOT NULL约束后,该字段中不能包含NULL值。NOT NULL约束只

能在列级定义。在一个表中可以定义多个NOT NULL约束。可以使用带MODIFY子句的ALTER TABLE语句为已经创建的表删除或重新定义NOT NULL约束。

U NIQUE约束:UNIQUE约束的主要作用是在保证主键列外,其他列的值的唯一性。如果为字

段定义了UNIQUE约束,则该字段中不能包含重复的值。可以为一个字段定义UNIQUE约束,也可以为多个字段定义UNIQUE约束。被定义为UNIQUE的字段,ORACLE会自动为其建立一个唯一的索引。对于同一个字段,既可以在其上建立NOT NULL索引,也可以在其上建立UNIQUE约束。如果在一个字段上仅定义了UNIQUE约束,而没有定义NOT NULL约束,则该字段可以包含多个NULL值,可以使用带DROP CONSTRAINT子句的ALTER TABLE语句删除UNIQUE 约束。可以使用带ADD CONSTRAINT子句的ALTER TABLE语句可以为已经创建的表添加UNIQUE 约束。

F OREIGN KEY约束:被定义了FOREIGN KEY约束的字段的取值只能为相关表中引用字段的值

或NULL值。可以为一个字段定义FOREIGN KEY约束,也可以为多个字段的组合定义FOREIGN KEY约束。定义了FOREIGN KEY约束的外键字段和被引用的主键字段可以存在于同一个表中。对于同一个字段可以同时定义FOREIGN KEY约束和NOT NULL约束。可以使用带DROP CONSTRAINT子句的ALTER TABLE语句删除为表定义的FOREIGN KEY约束。可以使用带ADD CONSTRAINT子句的ALTER TABLE语句为已经创建的表添加FOREIGN KEY约束。在定义FOREIGN KEY约束时,还能够通过关键字ON指定引用行为的类型。引用类型包括3种类型:分别使用关键字CASCADE,SET NULL,NO ACTION。

C HECK约束:CHECK约束是通过检查输入到表中的数据值来维护域的完整性的,即检查输入的每一个数据,只有符合条件的数据才允许输入到表中。

表Oracle 9i的数据表类型

方式 特点

关系表 默认的表类型,存储永久性的数据,

可以被分区,这样可以改善表的性能并易于管理

临时表 存储私有数据或一个会话中特定的 数据,数据库

中的其他用户不能用这些数据

索引表 按照结构化主关键字进行排序的方式存储结构,和

关系表不同的是不能把表和主关键字分开存储

外部表 数据库存储在Oracle数据外部的文件中,只能读,

因此任何索引都不能存储在外部表中

对象表 支持面向对象的数据库

段的存储管理主要是指Oracle管理段中已用的数据块和空闲数据块。在CREATE TABLESPACE语句中,通过SEGMENT SPACE MANAGEMENT子句来设置段的存储管理方式。在自动化管理表空间中,段的管理方式也分为两类:手动管理方式和自动管理方式。在本地化管理表空间中,可以设置表空间中盘区的管理方式为AUTOALLOCATE或者UNIFORM。对盘区的管理设为UNIFORM时,则说明表空间中所有盘区大小相同;对盘区的管理设为AUTOALLOCATE 时,则说明盘区大小由Oracle自动动态分配。

模式是一系列逻辑数据结构对象的集合。一个模式只能够被一个数据库用户所拥用,并且模式的名称与这个用户的名称相同。Oracle数据库中的每人个用户都拥有一个惟一的模式,他所创建的所有模式对象都保存在自已的模式中。在oracle中模式与数据库用户是一一对应的,每个数据库用户都拥有一个与他的用户名相同的模式。因此,在oracle数据库中,模式和用户两个概念的差别很小,经常可以相左互替换。

Oracle数据库引入自动撤销表空间(UNDO表空间)取代回退段,由Oracle系统自动对撤销空间进行管理,这种撤销管理方式称为自动撤销管理。自动撤销管理好处:1.当撤销表空间中的可用空间不足时,系统会自动回收已提交事务所使用的撤销空间。2.数据库管理员可以对撤销表空间进行手动控制,决定是否以时间(秒数)为单位,指定要保留的撤销条目数量。3.对撤销表空间使用手动控制,可以实现对系统进行动态配置,使长时间运行的查询能够成功执行,不会因为撤销表空间不足而失败。

因为视图显示的数据都是从基本表中按照一定的规范选取的。这虽然方便了对基本表的查询,但是可能造成用户在更新视图时使用了违反规范的数据。例如:创建一个名为“广州市—商品信息”视图,它的功能是选取“商品信息”来自“广州市”但是用户完全可以向其中添加非广州市的商品信息,为了防止用户添加不符合信息,可以在创建视图时使用WITH CHECK OPTION ,如果用户强制对视图进行更新时,更新的数据必须满足视图定义的约束。

Create or replace type EMPLOYEE as object{

Emp_id number,

Dep_id number

Date_of_birth date,

Order Date_of_birth return date

};

Create table EMPLOYEE_tab OF EMPLOYEE;

REFERENCING子句用于指定引用新、旧数据的方式,默认情况下使用old操作符引用旧数据,使用new操作符引用新数据,为了获取更新前表的数据,使用了列名称的相关性标识符,通过引用相关性的 标识符的列,可以获取语句执行前和语句执行后的值。前映像的默认相关性标识符为:OLD,后映像的 相关性标识符为:NEW。

a、触发器名称:用户在创建触发器时必须像创建存储过程和函数等命名程序块一样,为触发器指定一个唯一的名称。

b、触发条件:可以导致触发器执行的事件。

c、触发器限制:当触发事件发生时,触发器主体的执行要取决与触发器的限制。

d、触发器主体:触发器要执行的操作,包括定义、操作、异常处理这些部分。

常见的系统预定义角色包括:CONNECT、RESOURCE、DBA、EXP_FULL_DATABASE和

IMP_FULL_DATABASE.

各个角色的权限如下:

1). CONNECT:

A LTER SESSION --修改会话

C REATE CLUSTER --建立聚簇

C REATE DATABASE LINK --建立数据库链接

C REATE SEQUENCE --建立序列

C REATE SESSION --建立会话

C REATE SYNONYM --建立同义词

C REATE VIEW --建立视图

C REATE TABLE--建表

2). RESOURCE:

C REATE CLUSTER --建立聚簇

C REATE PROCEDURE --建立过程

C REATE SEQUENCE --建立序列

C REATE TABLE --建表

C REATE TRIGGER --建立触发器

C REATE TYPE --建立类型

C REATE INDEXTYPE--建立索引类型

C REATE OPERATOR--建立操作符

3).DBA:拥有系统所有系统级权限

4). EXP_FULL_DATABASE和IMP_FULL_DATABASE:.

B ACKUP ANY TABLE --备份任何表

E XECUTE ANY PROCEDURE --执行任何操作

 

S ELECT ANY TABLE --查询任何表

 

(1)数据文件有活动事务未提交(2)数据库关闭 (shutdown abort)(3)会滚数据文件丢失(4)无可用备份,无其他会滚表空间和数据文件可用。

对于链接记录和迁移记录,可以通过在ANALYZE语句中使用LIST CHAINED ROWS子句从表中找到。表中所有链接记录和迁移记录的ROWID都将被保存到一个名为CHAINED_ROWS的表中。

使用RMAN 备份的数据库只能使用RMAN提供的恢复命令进行恢复。由于RMAN可以在数据库正常运行的情况下进行备份,所以也可以在正常运行的情况下使用RMAN对数据库进行恢复。RMAN在恢复目录中存储了目标数据库的备份信息。因此进行数据库恢复时,RMAN可以根据

恢复目录中的信息自动恢复数据库到某一个同步的一致状态。与物理恢复相同,RMAN可以

分为完全恢复和不完全恢复。

在SQL*Plus中输入如下命令: Help index 运行该命令后,将显示SQL*Plus的所有命令。各命令的功能和选项可以通过在关键字help后添加命令关键字,以获取该命令的信息。如

下的示例显示了column命令的信息:help column.

SET CONSTRAINT ALL IMMEDIATE。

有下列优点:

1).减少特权管理,不要显式地将同一特权组授权给几个用户,只需将这特权组授给角

色,然后将角色授权给每一用户。

2).动态特权管理,如果一组特权需要改变,只需修改角色的特权,所有授给该角色的全

部用户的安全域将自动地反映对角色所作的修改。

3).特权的选择可用性,授权给用户的角色可选择地使其使能(可用)或使不能(不可用)。 4).应用可知性,当一用户经一用户名执行应用时,该数据库应用可查询字典,将自动地

选择使角色使能或不能。

5).专门的应用安全性,角色使用可由口令保护,应用可提供正确的口令使用权角色使

能,达到专用的应用安全性。因用户不知其口令,不能使角色使能。

SAVEPOINT [ Section1]

相关主题
文本预览
相关文档 最新文档