admin 管理员组

文章数量: 887629


2024年2月7日发(作者:常量元素中含量最少的元素是)

Oracle数据库基础题库【含答案】(小编推荐)

第一篇:Oracle数据库基础题库【含答案】(小编推荐)

一、判断题,正确请写写“T”,错误请写写“F”,1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。(T)

2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客户机的连接请求。(F)

3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。(T)

4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。(F)

5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。(F)

8、数据字典中的内容都被保存在SYSTEM表空间中。(T)

9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等,WHERE 后面的条件中也可以有聚集函数。(F)

10、“上海西北京” 可以通过like ‘%上海_’查出来。(F)

11、表空间是oracle 最大的逻辑组成部分。Oracle数据库由一个或多个表空间组成。一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。(T)

12、表空间分为永久表空间和临时表空间两种类型。(T)

13、truncate是DDL操作,不能 rollback。(T)

14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用WHERE语句。(F)

15、Oracle数据库中字符串和日期必须使用双引号标识。(F)

16、Oracle数据库中字符串数据是区分大小写的。(T)

17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能正常进行。(F)

18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。(T)

20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接。(T)

21、自然连接是根据两个表中同名的列而进行连接的,当列不同名时,自然连接将失去意义。(T)

23、PL/SQL代码块声明区可有可无。(T)

24、隐式游标与显式游标的不同在于显式游标仅仅访问一行,隐式的可以访问多行。(F)

25、隐式游标由PL/SQL维护,当执行查询时自动打开和关闭。(T)

26、显式游标在程序中显式定义、打开、关闭,游标有一个名字。(T)

27、隐式游标的游标属性前缀是SQL。(T)

28、显式游标的游标属性的前缀是游标名。(T)

29、隐式游标的属性%ISOPEN总是为FALSE。(T)30、显式游标的%ISOPEN根据游标的状态确定值(F)

31、隐式游标的SELECT语句带有INTO子串,只有一行数据被处理。(T)

32、显式游标可以处理多行数据,在程序中设置循环,取出每一行数据。(T)

34、可以在PL/SQL中使用GOTO语句使运行流程进行跳转。(F)

35、因为存储过程不返回值,使用时只能单独调用;而函数却能出现在能放置表达式的任何位置。(Y)

36、存储过程是已经编译好的代码,在调用的时候不必再次编译,提高了程序的运行效率。(T)

38、Oracle提供了多种类型的表,包括堆表、外部表、索引组织表、临时表、对象表等。(F)

39、为了使用户在大量数据的读写操作和查询操作中速度更快,可以使用分区表技术。(T)

40、在Oracle中,索引技术使用了ROWID来进行数据的快速定位。(T)

41、Oracle中,索引可以分为B树索引和位图索引,默认使用的是位图索引。(F)

42、Oracle建议,当一个列的所有取值数量与行的总数的比例小于1%时,该列不再适合使用位图索引,而适用于B树索引。(F)

43、同义词的作用是实现复杂的功能。(N)

44、视图是由一个或若干基表产生的数据集合,但视图不占存储空间。建立视图可以保护数据安全(仅让用户查询修改可以看见的一些行列)、简化查询操作、保护数据的独立性。(T)

45、普通视图占有数据库存储空间。(F)

46、产生不重复整数的数据库应用的最好解决办法,就是使用序列,尤其在多用户环境下更是如此。(T)

47、行级触发器:无论受影响的行数是多少,都只执行一次。(F)

48、语句级触发器在每个数据修改语句执行后只调用一次,而不管该操作将影响到多少行。(T)

49、锁用于提供数据的完整性和一致性。(T)50、事务的结束只能是rollback或者commit。(F)

51、oracle CONNECT角色具有所有的权限。(F)

52、数据字典DBA_ROLES记录了数据库中全部角色的信息。(F)

53、CONNECT、RESOURCE、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE都是系统预定义的角色。(T)

54、DBA角色具有全部系统特权。(T)

55、ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。(T)

56、一般情况下,可使用同义词来保护系统中真实的表名称,用角色简化授权,创建数据操纵用户来隐藏数据的真正拥有者,以此达到保护数据安全的目的。(T)

57、每一个数据库用户必须具有RESOURCE特权才能登录到Oracle数据库中,ESOURCE特权用户是权限最低的用户。(F)

58、Oracle数据库的逻辑存储结构主要由表空间构成。(T)

59、Oracle数据库的表空间内存储的逻辑对象为段,段由盘区组成,而盘区又由多个数据块组成。(T)

60、数据备份可以全库备份,也可以对单个表进行备份。(T)

五、单项选择题

1、安装oracle数据库过程中SID指的是什么:(A)A.系统标识号

B.数据库名

C.用户名

D.用户口令

2、系统中有权利启动和关闭数据库的用户是:(C)。

3、下面哪个用户不是ORACLE缺省安装后就存在的用户(A)

4、下面哪个操作会导致用户连接到ORACLE数据库,但不能创建表(A)A.授予了CONNECT的角色,但没有授予RESOURCE的角色 B.没有授予用户系统管理员的角色 C.数据库实例没有启动 D.数据库监听没有启动

5、关闭数据库,那种是等待所有用户退出才关闭的。(D)wn immediate wn abort

wn transactional

wn normal

SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。

SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。

SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是

自动rollback的。启动时不需要实例恢复。

SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。

6、下列关于共享服务器模式的叙述哪一项不正确(A)A.在共享服务器操作模式下,每一个用户进程必须对应一个服务器进程 B.一个数据库实例可以启动多个调度进程 C.在共享服务器操作模式下,Oracle实例将启动进程Dnnn为用户进程分配服务进程

D.共享服务器操作模式可以实现少量服务器进程为大量用户进程提供服务

7、oracle逻辑存储结构正确的是(B)

pace--segment--osblock--block

pace--segment--extent--block

表空间-段-盘区-数据块

pace--extent--segment--block

pace--extent--block –segment

8、以下哪个不是数据库的物理组件(A)。A.表空间 B.数据文件

C.日志文件

D.控制文件

参数文件

9、下列不属于ORACLE的逻辑结构的是(C)A.区 B.段

C.数据文件 D.表空间

10、有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是(D)A、select * from 产品表 where价格>1000 B、select sum(价格)from 产品表 group by 所属分类

having max(价格)>1000 C、select所属分类,sum(价格)from 产品表 where 价格>1000 group by 所属分类 D、select所属分类,sum(价格)from 产品表 where max(价格)>1000 group by 所属分类

11、在emp表中查找名字以G开头的SQL语句是:(A)。

ename, hiredate

FROM

emp

WHERE ename like 'G%'; last_name, hiredate

FROM

emp

WHERE ename == 'G%'; last_name, hiredate

FROM

emp

WHERE ename in 'G%'; ename, hiredate

FROM

emp

WHERE ename like 'G___';

12、查看表结构的命令是(A)。

be

13、下面的语句是可以显示(D)。SELECT ename, sal, comm,

12*sal

FROM emp;

A.雇员编号

B.岗位

C.上级主管

D.年薪

14、能够统计表中记录行数的函数是(A)。

_NUMBER

15、能够统计表中计算平均值的函数是(C)。

_NUMBER

16、以下语句中可以正确查看服务器时间的sql语句是:(A)

sysdate from dual;

systemdate from dual; current_date from

dual;

D.以上说法均不正确。

17、查看系统日期,要使用(D)。

A.实体化视图

B.表

C.序列

D.伪表Dual

18、在SQLPLUS中,执行外部脚本所用的命令是(B)。A./

B.@脚本

脚本

D.不能在SQLPLUS中直接运行脚本

19、在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?(C)

y key null

20、在Oracle中,一个用户拥有的所有数据库对象统称为(B)A.数据库

B.模式

C.表空间

D.实例

21、在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE

关键字,则 Oracle 就将(D)表空间分配给用户作为默认表空间。

T

22、从雇员表emp中选取所有列创建一个备份表emp_old的语句是( TABLE emp_old

AS SELECT * FROM emp_old; TABLE emp_old

LIKE SELECT * FROM emp; TABLE emp_old

SELECT * FROM emp; TABLE emp_old

AS SELECT * FROM emp;

23、下列不属于Oracle数据库中的约束条件的是(C)。

NULL y key

24、下列哪种不是DML语句是(C)。

25、下列哪种不是DDL语句。(D)

26、下列不建议使用的常用标量数据类型是。(D)r2

27、下列建议使用的常用标量数据类型是。(A)r2

raw

28、oracle数据库中,通过(C)可以以最快的方式访问表中的一行。A.主键

B.唯一索引

D.全表扫描

29、关于模式的描述下列哪一项不正确?(C)A.表或索引等模式对象一定属于某一个模式

B.在Oracle数据库中,模式与数据库用户是一一对应的 C.一个表可以属于多个模式

D)。

D.一个模式可以拥有多个表

30、某用户需要创建一个很小的表,但是该表会被许多查询使用,

这时用户应当在创建该表时指定下列哪个子句?(B)E和PCTUSED ING PACE

31、在Oracle中,(B)操作符返回并集操作并不包括重复行。

ect

all

32、在Oracle中,以下是STUDENTS表的结构:

SID NUMBER NOT NULL,Primary Key

SNAME VARCHAR2(30)

COURSE_ID VARCHAR2(10)NOT NULL

MARKS NUMBER 你需要查询参加了课程ID为C10的考试,并且分数排在前10名的学生,以下(D)语句能够实现此功能。

SID,marks,ROWNUM “Rank” FORM students

WHERE ROWNUM<=10 AND course_id='C10' ORDER BY marks

DESC;

SID,marks,ROWNUM“Rank” FORM students

WHERE ROWNUM<=10 AND course_id='C10' ORDER BY

marks; SID,marks,ROWNUM“Rank” FORM(SELECT

SID ,marks FORM students WHERE ROWNUM<=10 AND

course_id='C10')ORDER BY marks DESC;

SID,marks,ROWNUM“Rank” FORM(SELECT SID ,marks FORM

students WHERE course_id='C10' ORDER BY marks DESC)WHERE

ROWNUM<=10;

33、下面那个不是oracle程序设计中的循环语句(A)… end

for

…end loop

…end loop

… end loop

34、Select语句中用来连接字符串的符号是(C)。

A.“+”

B.“&”

C.“||”

D.“|”

35、以下PL/SQL语句块执行的结果是(D)set serveroutput

on;declare

var1 number:= 10;begin

loop

exit when var1 > 12;

var1:= var1 +1;

DBMS__LINE('a');

end loop;end;A.无输出 B.a C.a

a D.a

a

a

36、在Oracle中,当FETCH语句从游标获得数据时,下面叙述正确的是(A.游标打开 B.游标关闭

C.当前记录的数据加载到变量中 D.创建变量保存当前记录的数据

37、在Oracle中,不属于游标属性的是(B)。A.%NOTFOUND B.%FOUND C.%ISCLOSE D.%ISOPEN

38、在Oracle中,下列哪个语句允许检查UPDATE语句所影响的行数?(%NOTFOUND %FOUND

%ROWCOUNT %COUNT

39、在Oracle中,关于子程序的描述不正确的是(C)。

A.子程序是已命名的PL/SQL块,可带参数并可在需要时随时调用

B.子程序可以具有声明部分、可执行部分和异常处理部分

C)。C)。

C.子程序参数的模式只有IN和OUT两种模式 D.子程序可分为过程和函数两种类型

40、如果在程序包的主体中包括了一个过程,但没有在程序包规

范中声明这个过程,那么它将会被认为是(D)。

A.非法的 B.公有的 C.受限的 D.私有的

41、在Oracle中,用下列语句定义了一个过程:

CREATE PROCEDURE proc(value1 IN VARCHAR2, value2 OUT

NUMBER, value3 IN OUT VARCHAR2)IS BEGIN „ END;假定使用的变量v1/v2/v3都已经定义,下面对过程proc的调用语法正确的是(B)。

('tt', 10, v3)('tt', v2, v3)(v1, v2, „dd‟)('tt', 10,'dd')

42、在oracle中获取前10条的关键字是(D)

B)Limit

C)first

43、一个表有百万以上数据,其中一个列经常被作为查询条件并且只有25个不同数据,适合使用(C)索引提高查询速度。

A.B-Tree

B.反向

C.位图

D.函数索引

44、查看下面的语句创建了哪一种索引?(C)CREATE INDEX

test_index

索引

D.基于函数的索引

45、使用ALTER INDEX … … REBUILD语句不可以执行下面的哪个任务?(C)

A.将反向键索引重建为普通索引 B.将一个索引移动到另一个表空间 C.将位图索引更改为普通索引

D.将一个索引分区移动到另一个表空间

46、下面那个语句是错误的(D)

ON student(stuno, sname)TABLESPACE users

STORAGE(initial 64k, next 32k);A.全局分区索引 B.位图索引 C.复合

synonym dept_synon for

sequence dept_seque increment by 1 sequence

dept_seque increment by 2 dept_synon

47、下列不属于伪列的是(A)。

L

L

48、同义词的作用是(A)。

A.多用户协同开发中,可以屏蔽对象的名字及其持有者 B.加快速度

C.实现复杂功能

D.可以顺序增长

49、关于触发器,下列说法正确的是(B)A、可以在表上创建INSTEAD OF 触发器

B、语句级触发器不能使用“:old”和“:new” C、行级触发器不能用于审计功能 D、触发器可以显式调用

50、在Oracle中,关于触发器的描述正确的是(C)。A.触发器可以删除,但不能禁用 B.触发器只能用于表

C.触发器可以分为行级和语句级两种

D.触发器是一个对关联表发出insert、update、delete或select

„ for update语句时触发的存储过程

51、在Oracle中,INSTEAD OF触发器主要用于(D)。A.表

B.表和视图

C.基于单个表的视图 D.基于多个表的视图

52、下列关于提交事务的叙述哪一项是正确的?(A)

A.事务提交后,它对数据库所做的修改将永久保存到数据库中 B.事务提交后,还可以使用回滚语句取消它所做的操作 C.提交事务的响应速度与事务的规模有关

D.提交事务并不意味着事务的结束,它只是对事务以前所做的工作进行保存而已

53、下列关于Oracle支持的锁粒度描述正确的是?(A)A.数据库级、表级、行级、列级 B.数据库级、表级、行级 C.行级、列级 D.列级、表级

54、下列哪一个锁模式不属于Oracle ?(D)A.共享锁 B.排它锁

C.行级共享锁 D.死锁

55、授予sa用户在表中SAL列的更新权限的语句是:(B)

CHANGE

ON

TO

SA

UPDATE

ON

(SAL)

TO

SA

UPDATE(SAL)

ON

TO

SA

MODIFY

ON

TO

SA

56、假设用户USER1的默认表空间为USERS,他在该表空间的配额为10MB,则USER1在USERS表空间创建基本表时,他应具有什么权限?(D) TABLE USER TED

TABLESPACE D TABLESPACE

57、想在另一个模式中创建表,用户最少应该具有什么系统权限?(C)A、CREATE TABLE

B、CREATE ANY TABLE C、RESOURCE

D、DBA

58、下列哪一项资源不能在用户配置文件中限定?(A)A.各个会话的用户数 B.登录失败的次数 C.使用CPU时间

D.使用SGA区的大小

59、下面哪个系统预定义角色允许一个用户创建其他用户?(B)A、CONNECT

B、DBA

C、RESOURCE

D、SYSDBA

60、在创建表空间时,可以指定表空间中存储对象的默认存储参数,其中()参数用于设置分配给每一个对象的初始区大小。(A)L REASE ENTS

61、把一个表空间切换到OFFLINE状态时,可以使用4个参数,不包括下列哪一个选项?(D)ATE

ARY

FOR RECOVERY 62、建立一张表插入1行记录,之后使用exp导出数据,再次给表插入2行数据,之后把表格删除,重新使用imp命令导入导出的数据,导入后表中有(B)条记录。

A.0

B.1

C.2

D.3

将数据库启动到装载状态的命令(C)

A: startup

B: startup nomount

C: startup mount

D: startup open

使用shutdown命令关闭数据库,发生的次序是(B)A: 先关闭实例进程

B: 先关闭数据库

C: 先卸载数据库

D: 没有先后次序

执行shutdown transactional命令,下列正确的是(D)A: 数据库仍然允许新的用户连接

B: 数据库马上关闭

C: 等待当前所有会话结束后关闭

D: 如果没有执行中的数据库事物,即马上关闭

服务器断电,发生的现象是哪一个?(B)A: 数据缓冲区的修改写入数据库

B: 没有提交的事物自动撤销

C: 数据文件、控制文件和日志文件处于不一致状态

D: 下次启动,需要进行手工恢复

67用户SCOTT正在执行UPDATE语句,需要保证SCOTT的修改操作完成,理想的关闭实例方式是(D)

A: SHUTDOWN ABORT

B: SHUTDOWN IMMEDIATE C: SHUTDOWN

TRANSACTIONAL

D: SHUTDOWN NORMAL

68.以下创建表空间的正确语句是:(D)

TABLESPACE “TABLESPACENAME”

LOGGING

DATAFILE

'/home/oracle/app/oracle/oradata/orcl/' SIZE 5M

TABLESPACE “EVCHGJ4”

LOGGING

DATAFILE

'/home/oracle/app/oracle/oradata/orcl/'

TABLESPACE “EVCHGJ4”

LOGGING

SIZE 5M TABLESPACE “EVCHGJ4”

DATAFILE

'/home/oracle/app/oracle/oradata/orcl/' SIZE 5M

69.传统的Oracle数据库系统特权不包括。(C)

T CE

ANY TABLE

70.下列哪个语句能够会滚到特定地方。(D)...SAVEPOINT

to update_done;

ck;

六、多项选择题

1、Oracle内存结构可以分为(BC)A)备份区 B)程序全局区 C)系统全局区 D)还原区 E)调度区

3、以下关于归档日志的说法正确的是(ABC)

A)ORACLE要将填满的在线日志文件组归档时,则要建立归档日志

B)在操作系统或磁盘故障中可保证全部提交的事务可被恢复

C)数据库可运行在两种不同方式下:非归档模式和归档模式

D)数据库在ARCHIVELOG方式下使用时,不能进行在线日志的归档

4、在oracle环境下,以下说法中正确的是:(ABC)

A.<> 表示不等于

B._ 代表一个字符

C.% 代表0个或者多个字符 D.* 代表0个或者多个字符。

5、在下面有关子查询ANY运算符的描述中,哪一项是正确的?(BC)A)any表示大于最小值 D)都不对

update_done;Savepoint

...ROLLBACK TO update_done;

7、请选择以下那几项是oracle客户端的链接工具:(ABC)

A)IE浏览器

B)SQL*PLUS

C)PLSQL Developer

D)以上答案均不对

8、ORACLE常用的约束条件类型(ABCD)A)PRIMARY B)FOREIGN C)UNIQUE D)CHECK

9、在oracle环境下,需要创建表空间,当数据超过表空间大小时,要对表空间进行扩充,以下选项中扩充方式正确的有:(ABC)A、添加数据文件

B、改变数据文件的大小

C、允许数据文件自动扩展

D、表空间不能再用重新创建表空间。

10、表命名时需要遵循的规则中选择正确的是:(ABCD)A、表明的首字符应该为字母 B、不能使用保留字

C、可以使用下划线、数字、字母、但不能使用空格和单引号。D、同一用户下表名不能重复。

11、在Oracle中,PL/SQL块中定义了一个带参数的游标:

CURSOR emp_cursor(dnum NUMBER)IS SELECT sal,comm FORM

emp WHERE deptno=dnum;那么正确打开此游标的语句是(AD)。 emp_cursor(20); emp_cursor FOR 20;

emp_cursor USING 20; rmp_rec IN

emp_cursor(END LOOP;

12、下列关于约束和索引的说法中,正确的是(ABC)。

A.在字段上定义PRIMARY KEY约束时会自动创建B树唯一索引

B.在字段上定义UNIQUE约束时会自动创建一个B树唯一索引

C.默认情况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的索引

D.定义FOREIGN KEY约束时会创建一个B树唯一索引

七、综合题(共7小题,每题3分,共21分)将答案填写在“答

案.xls”对应空格上。

1.在oracle环境下,需要创建表空间,当数据超过表空间大小时,要对表空间进行扩充,请说出三种扩展方式。

当数据超过表空间大小时,要对表空间进行扩充。扩充有三种方式:

(1)添加数据文件

(2)改变数据文件大小

(3)允许数据文件自动扩展

(1)添加数据文件

--为test表空间添加一个3M的数据文件

alter tablespace test add datafile 'c:' size 2048k;(2)改变数据文件大小

--为test表空间的数据文件增加4M alter database datafile

'c:' resize 4096k;(3)允许数据文件自动扩展

--为test表空间的数据文件设置为自动增加

alter database datafile 'c:' autoextend on next

1m maxsize 20m;

第二篇:ORACLE数据库工作总结

2014-2015学第一学期ORACLE教学工作总结

班级:13高软班

数据库技术是计算机科学技术中发展最快的领域之一,也是应用最为广泛的技术之一,它已经成为计算机信息系统与应用的核心技术和重要基础。所以在学习这门课时,注重学生实际操作能力,安排了理论与上机操作相结合。以下是我的工作总结:

1、课前准备:备好课。认真学习贯彻教学大纲,钻研教材。了解教材的基本思想、基本概念、结构、重点与难点,掌握知识的逻辑。

了解学生原有的知识技能的质量,他们的兴趣、需要、方法、习惯,学习新知识可能会有哪些困难,采取相应的措施。

考虑教法,解决如何把已掌握的教材传授给学生,包括如何组织教学、如何安排每节课的活动。

2、课堂上的情况。组织好课堂教学,关注全体学生,注意信息反馈,调动学生的注意力,使其保持相对稳定性。同时,激发学生的情感,使他们产生愉悦的心境,创造良好的课堂气氛,课堂语言简洁明了,课堂提问面向全体学生,注意引发学生学习的兴趣,课堂上讲练结合,布置好课外作业,减轻学生的负担。

3、上机操作情况。让学生复习操作上节课的学习内容,布置一定的作业,做到每个学生的每个SQL语句,每个操作抖完全掌握。总之,作为一名教师,教学是我的基本工作,而教与学是一个良性互动的过程,在教中学,在学中教,才能实现自己在业务上的进步与飞跃。实施素质教育对教师的素质要求更高,在今后的教育教学中,我将严格要求自己,努力工作,发扬优点,开拓进取,为教育事业奉献自己的力量。

第三篇:Oracle数据库总结范文

创建表及命名规则?

表名和列名:

必须以字母开头 必须在1–30个字符之间

必须只能包含A–Z, a–z, 0–9, _, $, 和# 必须不能和用户定义的其他对象重名 必须不能是Oracle 的保留字 Oracle默认存储是都存为大写

增删改查语法?

增加: 例如:使用INSERT语句往customers表中插入数据,指定相关列和值 INSERT INTO customers(customer_id, first_name,

last_name, dob, phone)VALUES(6, 'Fred', 'Brown', '01-1月-1970',

'800-555-1215');

如果为表所有列都指定值,那么可以忽略列清单

INSERT INTO customersVALUES(6, 'Fred', 'Brown', '01-1月-1970', '800-555-1215');

可以使用NULL为某些列指定空值

INSERT INTO customersVALUES(8, 'Sophie', 'White', NULL,

NULL);

查询:select * fromcustomers;或者select字段

fromcustomerswhere条件 删除:deletefromcustomerswhere条件

更改:update customersset name = 'xiaoming',age =

‘16’(更改多个字段时候用逗号隔开)where 条件

对查询结果进行排序?

语句:select * fromcustomersorderby字段 desc;

(asc(升序),desc(降序)如果不写,默认升序)

NULL值了解么?

NULL值表示未知的值。它是一个特殊的值,但并不是空字符串,NULL值表示该列是未知的。当某些查询语句在输出结果列上看不到值的时候,可能就是NULL值

NVL()和NVL2():

NULL值被查询出来的时候没有显示信息,如何告知用户这是空字符串还是NULL,这可以通过NVL()函数来进行处理

NVL(x,value)是有value显示本身,null显示为替换的value

NVL2(x,value1,value2)是如果x不为NULL值,返回value1,否则返回value2 例程:

select name,nvl2(email,'已知','未知')from student;【代码含义:代表如果email字段中有值,则显示已知,null则显示未知,如果想显示本来的查询结果select name,nvl(email,'未知')from student;】

update student set name = replace(name,'小','大');【代码含义:代表将STUDENT表中NAME 字段中如果含有小字,那么就将小字替换为大字(操作的不是显示结果,而是将表中数据进行更改)】

Oracle中的简单函数?

字符串函数

 concat:将x和y拼接起来,并返回新字符串

例程:

select concat(first_name,'-'||last_name)姓名 from customers;

Instr字符查找,从1开始。

select instr('asdbcrdbewqrbmde','b')from dual;select

instr('asdbcrdbewqrbmde','b',5,2)from dual;【代表从第5个字符开始,第二个b所在的位置】

 Ltrim : LTRIM(x,[trim_string])从x字符串左侧去除所有的trim_string字符串,如果没有指定trim_string字符串,则默认为去除左侧空白字符

 Rtrim RTRIM(x,[trim_string])从x字符串右侧去除所有的trim_string字符串,如果没有指定trim_string字符串,则默认为去除右侧空白字符  Trim TRIM(trim_string FROM x)从x字符串两侧去除trim_string字符串

 Replace REPLACE(x, search_string, replace_string)从字符串x中搜索search_string字符串,并使用replace_string字符串替换。用select执行并不会修改数据库中原始值,但是用update执行可以修改。

 Substr SUBSTR(x, start,[length])返回字符串中的指定的字符,这些字符从字符串的第start个位置开始,长度为length个字符;如果start是负数,则从x字符串的末尾开始算起;如果length省略,则将返回一直到字符串末尾的所有字符

例程:

select substr('abcd月fg',4,2)from dual;(结果:d月)select

substr('abcdefg',-2)from dual;(结果:fq)

日期函数

 Sysdate 例程:

Selectsysdatefromdual;

Select to_char(sysdate, 'yyyy-mm-dd-hh-mm-ss')from dual;

 Add_months(d1,n1) last_day():

转换函数

 To_char TO_CHAR(x,[ format])将x转化为字符串。format为转换的格式,可以为数字格式或日期格式

select to_char(sysdate,'yyyy-mm-dd')from dual;【一般在查询时候使用,使返回的值成为指定格式】

 to_date TO_DATE(x,[format])将x字符串转换为日期

insert into student values(seq_l,'小明',to_date('1992-2-18','yyyy-mm-dd'),default,'北京',null);【一般在添加使用】 返回所查询的值中最后一个日期数据。

聚合函数

 Avg:平均数  Sum:求和  Max:最大值  Min:最小值 

Count:返回统计的行数  Round:四舍五入

例程:

select round(avg(bid),1)from bug;分组了解么?

有时需要对表中的行进行分组,然后统计每组的信息,可以使用GROUP BY进行分组,然后再对每组进行统计。

(1)可以使用GROUP BY对多个列进行分组

例:

SELECT product_id, avg(customer_id)FROM purchases

GROUP BY product_id;

(2)可以对分组后的行使用聚集函数,聚集函数会统计每组中的值,对于每组分别统计后返回一个值 例:

SELECT

product_type_id,BY

COUNT(ROWID)FROM

BY

productsGROUP product_type_id;注意:

product_type_idORDER a)如果查询中使用了聚集函数,被查询的列未使用聚集函数处理,那么这些列必须出现在GROUP BY子句后,否则,会提示ORA-00937错误

b)不能使用聚集函数作为WHERE子句的筛选条件,否则,会提示ORA-00934错误

c)可以使用HAVING子句过滤分组后的行

WHERE

必须有GROUP BY才有意义)

ORDER

BY...;(GROUP BY使用时可以不使用HAVING,但是使用HAVING时

(3)同时使用WHERE, GROUP BY和HAVING

a)首先,执行WHERE筛选掉不符合条件的行 b)然后,将符合条件的行使用GROUP BY进行分组 c)最后,使用HAVING对分组统计的结果进行再次筛选 例:

SELECT product_type_id, AVG(price)FROM products

WHERE price < 15

GROUP BY product_type_id HAVING AVG(price)> 13 ORDER

BY product_type_id;

表的约束条件?

目的:

确保表中数据的完整性。

常用的约束类型: 主键约束(PRIMARY KEY):要求主键列数据唯一,并且不允许为空 非空约束(NOT NULL):指定的列的值不允许为空

唯一键约束(UNIQUE):要求该列唯一,允许为空,但只能出现一个空

检查约束(CHECK):指定表中一列或多列可以接受的数据值格式

默认约束(DEFAULT):指定某列的默认值

外键约束(FOREIGN KEY):用于建立和加强两个表数据之间连接的一

列或多列。通过将表中的主键列添加到另一个表中。可以创建两个表之间的连接。这个主键的列就称为第二个表的外键。外键约束就可以确保添加到外键表中的任何行都在主表中都存在相应的行

多表查询?

不同的数据存储在不同的表中,通常要查询多张表才能找到需要的数据

例程: SELECT , product_ FROM

products, product_types WHERE

t_type_id

= product_t_type_id AND t_id

= 3;

products表和product_types表相关字段会用在SELECT语句及WHERE子句上,可以给表起别名,提高代码可读性、降低书写难度

例程:

SELECT , FROM products p, product_types pt

WHERE t_type_id = t_type_id AND

t_id = 3 注意:

如果查询两张表,并且没有定义连接条件,那么查询的结果集是两表相乘的结果,这样的情况称之为笛卡尔乘积。总结:多表查询WHERE时,连接次数=查询时连接表的数量-1

常见的三种连接类型:

内连接:

内连接返回的行只有满足连接条件才会返回。如果连接条件的列中有NULL值,那么该行则不会返回 外连接:

外连接返回的行满足连接条件,也包括在连接条件的列包含空值的行

自连接:

连接的表为同一张表

子查询?

子查询是嵌入到另一个SELECT语句中的一个SELECT语句。通过使用子查询,可以使用简单的语句组成强大的语句。当需要从表中选择行,而选择条件却取决于该表自身中的数据时,子查询非常有用。

单行子查询:(1)可以将另外一个查询作为WHERE子句的子查询

例:查询尾名是‘Brown’的首名和尾名

SELECT first_name, last_name FROM customers

WHERE customer_id =

(SELECT customer_id FROM customers WHERE last_name =

'Brown');(2)在单行子查询还可以使用其他比较运算符,如<>、、<=和>= 例:查询价格大于平均价格的商品编号、名称及价格

WHERE子句中使用>,以及子查询中使用AVG()聚集函数

SELECT product_id, name, price FROM products WHERE

price >(SELECT AVG(price)FROM products);(3)在HAVING子句中使用子查询

HAVING是在分组统计后用于过滤行,同样在HAVING子句后面可以跟子查询。单行子查询将返回结果用于HAVING子句过滤分组统计的行

例如:查询平均价格小于最大平均值的商品编号及平均值

SELECT product_type_id, AVG(price)FROM products GROUP

BY product_type_id HAVING AVG(price)

分页查询?

可以通过ROWNUM来实现。

序列?

序列是一个数据库对象,用于生成一系列的整数。

索引?

索引是与表关联的可选结构。可以创建索引以加快对表执行SQL语句的速度。就像书的索引可以帮助我们更快速的查找信息一样,Oracle中的索引也提供了一种更快地访问表数据的途径。

视图?

视图是基于一张表或多张表或另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。视图的数据都来自于某些表,这些表被称为基表。数据库中只在数据字典中存储对视图的定义。

第四篇:Oracle数据库实验报告

中南林业科技大学

实验报告

课程名称:

Oracle数据库 专业班级: 姓名:

学号:

****年**月**日

实验一

安装和使用Oracle数据库

【实验目的】

1.掌握Oracle软件安装过程,选择安装组件 2.掌握建立Oracle数据库,配置网络连接 3.掌握Oracle企业管理器的基本操作 4.使用SQL*Plus,登录到实例和数据库 5.掌握命令方式的关闭和启动实例及数据库 【实验内容】

1.查看已安装的Oracle组件

2.查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。

3.配置监听器,查看是否在服务中有LISTENER,是否能启动。4.配置本地net服务,提示:设置正确的服务器地址和端口号。5.打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。6.思考题:有几种打开SQL*Plus的方法?分别是什么? 7.用命令关闭实例和数据库,记录命令

8.用命令以NOMOUNT的方式启动实例,再加载数据库,打开数据库。

【实验结论】

1.查看已安装的Oracle组件

2.查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。

3.配置监听器,查看是否在服务中有LISTENER,是否能启动。

4.配置本地net服务,提示:设置正确的服务器地址和端口号。

5.打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。

6.思考题:有几种打开SQL*Plus的方法?分别是什么?(1)直接打开 sql plus 即窗口方式(2)cmd 命令行方式

(3)WEB 页面中 iSQL*Plus 方式 7.用命令关闭实例和数据库,记录命令 SQL>shutdown immediate

8.用命令以NOMOUNT的方式启动实例,再加载数据库,打开数

据库。

sql>startup nomount sql>alter database mount;sql>alter

database open;sql>startup

(1).用SQLplus 命令:show parameters参数名

(2).用select [列名] from 表名

2.初始化文件有几种?默认的保存位置在哪里?

初始化文件有三种:数据文件,日志文件,控制文件; 默认的保存位置E:oracleproduct10.2.0oradataorcl

4.打开OEM,查看三类物理文件信息

三类物理文件:数据文件、控制文件、日志文件 数据文件:.DBF存储表、索引及数据结构信息

日志文件:.LOG记录对数据库的所有修改信息,用于恢复

控制文件:.CTL二进制文件,记录数据库名、文件标识、检查点

5.分别用select命令查询V$parameter动态性能视图,用show命令查看全局数据库名、实例名、是否启动自动归档、标准数据块大小这四个参数的值,记录命令和结果。用select命令查询V$parameter动态性能视图

用show命令查看全局数据库名、实例名

用show命令查看是否启动自动归档、标准数据块大小

6.如何用命令查看数据文件、控制文件的文件名、存储位置和状态信息?

(1).查看数据文件的文件名、存储位置和状态信息

(2).查看控制文件的文件名、存储位置和状态信息

0

和服务器型文件都要找到),查看各类默认位置并记录下来(包括物理文件所在目录,该数据库相关的各个目录等),登录到mydb数据库。

2.用命令方式手工创建数据库testorcl

(1)创建批处理文件,建立必需的各级目录,参考第一题MYDB数据库的默认目录。

(4)运行数据库建立脚本,更改相关服务为手动启动方式

(5)运行数据字典等创建脚本

3.在DBCA中删除MYDB数据库。

Enter valuefor 4:runner Specify log path as parameter 5: Enter

valuefor 5: D:oracleproduct10.2.0db_2RDBMSlog

二、完成下面的查询,记录查询命令和结果。1.查询HR方案种有哪些表,列出表名 2.设置行宽为160,每页行数为40 3.查询employees表中所有薪水在3000到6000元之间的员工编号、姓、名、受聘日期、工作代号、薪水、经理代号、部门号,按部门号升序排列,同一部门按员工编号降序排列

4.查询每个部门的人数、平均薪水、最高薪水、最低薪水,按部门编号升序排列

5.查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称

6.在job_history表中查询任职时间超过1年的员工编号,任职历时月份(保留整数),工作代号,部门代号。

7.查询每个部门经理的员工编号、姓名、薪水、部门号。

【实验结论】

一、需要访问HR示例方案中的表,如果机器上没有该示例方案,则运行相关包和相应配置装入HR方案。

1.将解压到D:oracleproduct10.2.0db_2demoschema

human_resources目录下,然后在SQL*PLUS 中执行 hr_

二、完成下面的查询,记录查询命令和结果。1.查询HR方案种有哪些表,列出表名

5.查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称

738

实验五

PL/SQL编程

【实验目的】

1.熟悉PL/SQL的数据类型和书写规则 2.熟悉控制结构和游标的使

用 3.编写和运行函数、过程和触发器 【实验内容】

编写脚本文件,调试运行脚本文件,并记录结果。

1.在SQL*Plus中编写一个PL/SQL块,功能用于打印学生信息 在DECLARE部分完成:

(2)建立学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。均为可变长字符类型(3)编写本地子过程:学生信息打印过程PrintStuRecord,把(1)中定义的记录类型作为参数(4)定义学生信息记录变量stu_record 在BEGIN…END部分完成:

(1)为stu_record变量的各个元素赋值如下: 学号:‘*******’姓名:’李新’

性别:‘m’

籍贯:‘黑龙江省哈尔滨市’ 学习成绩:‘Excellent’

0

(1)建立学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。均为可变长字符类型

set serveroutput on declare type stu_record_type is record

(s_no varchar2(8), s_name varchar2(10), s_sex varchar2(2),

s_address varchar2(20), s_studyscore varchar2(10), s_activescore

varchar2(10));(2)编写本地子过程:学生信息打印过程PrintStuRecord,把中定义的记录类型作为参数

procedure PrintStuRecord as begin dbms__line('学号:'|| stu_record.s_no);dbms__line('姓名

性籍别贯:'||

:'||

:'||

stu_record.s_name);dbms__line('stu_record.s_sex);dbms__line('stu_record.s_address);dbms__line('学习成绩:'||

stu_record.s_studyscore);dbms__line('活动成绩:'||

stu_record.s_activescore);end PrintStuRecord;(3)定义学生信息记录变量stu_record stu_record stu_record_type;在BEGIN…END部分完成:

(4)为stu_record变量的各个元素赋值如下: 学号:‘*******’姓名:’李新’

性别:‘m’

籍贯:‘黑龙江省哈尔滨市’

2.建立对bookinfo表的DML触发器,一旦bookinfo表发生了任何变化,立即触发,对bookinfo表的数据进行统计,结果存储在数据统计表中

(1)如果没有则建立bookinfo表,选择建立在scott用户下,表结构为(bookno varchar2(36)Primary

authorname

key, bookname

null, varchar2(40)not null, varchar2(10)not

publishtime date, bookprice float)

create table bookinfo(bookno varchar2(36)Primary key,4

Selectcount(bookno),count(distinct

bookinfo;end;/

(4)在bookinfo表中插入、删除和更新信息,再查看major_stats表中数据的变化 <1>插入

647

实验六

模式对象管理与安全管理

【实验目的】

1.了解模式对象的类型

2.掌握在OEM中操作模式对象的方法

3.掌握命令方式建立表、视图、索引等常见对象的方法 4.熟悉Oracle中权限分类和设置,理解系统提供用户的角色和权限

5.熟练使用建立用户、角色,为用户授权、授予角色的命令

【实验内容】

1.创建一个TESTUSET用户,密码为test,默认表空间为user表空间

2.创建用户后为其授予登录数据库和创建数据库对象的权限 3.用TESTUSER用户登录数据库

authorname)from

4.创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。并完成下面的题目:

(1)再继续添加2条数据,设置一个保存点savepoint,再添加1条数据,执行回退到保存点的回退命令。查看此时表中数据(2)查询入学成绩大于480的学生信息(3)建立男生信息视图

(4)在“成绩”字段上建立B-树索引

5.创建一个表簇,名为empl_dep,容纳empl表和dep表,有公

第五篇:ORACLE数据库学习心得

ORACLE数据库结课论文

一个好的程序,必然联系着一个庞大的数据库网路...今年我们学习了 oracle数据库这门课程,起初的我,对这个字眼是要多陌生有多陌生,后来上课的时候听一会老师讲课,偶尔再跟上上机课,渐渐的学会了不少东西,但我感觉,我学到的仍是一些皮毛而已,怀着疑惑和求知的心态,我在网上搜索了关于 oracle数据库的一些知识。

的特点: 可移植性 ORACLE采用C语言开发而成,故产品与硬件和操作系统具有很强的独立性。从大型机到微机上都可运行ORACLE的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性 由于采用了国际标准的数据查询语言SQL,与IBM的SQL/DS、DB2等均兼容。并提供读取其它数据库文件的间接方法。

可联结性 对于不同通信协议,不同机型及不同操作系统组成的网络也可以运行ORAˉCLE数据库产品。

的总体结构

(1)ORACLE的文件结构 一个ORACLE数据库系统包括以下5类文件:ORACLE RDBMS的代码文件。

数据文件 一个数据库可有一个或多个数据文件,每个数据文件可以存有一个或多个表、视图、索引等信息。

日志文件 须有两个或两个以上,用来记录所有数据库的变化,用于数据库的恢复。控制文件 可以有备份,采用多个备份控制文件是为了防止控制文件的损坏。参数文件 含有数据库例程起时所需的配置参数。

(2)ORACLE的内存结构 一个ORACLE例程拥有一个系统全程区(SGA)和一组程序全程区(PGA)。

SGA(System Global Area)包括数据库缓冲区、日志缓冲区及共享区域。

PGA(Program Global Area)是每一个Server进程有一个。一个Server进程起动时,就为其分配一个PGA区,以存放数据及控制信息。

(3)ORACLE的进程结构ORACLE包括三类进程: ①用户进程 用来执行用户应用程序的。

②服务进程 处理与之相连的一组用户进程的请求。

③后台进程 ORACLE为每一个数据库例程创建一组后台进程,它为所有的用户进程服务,其中包括: DBWR(Database Writer)进程,负责把已修改的数据块从数据库缓冲区写到数据库中。LGWR(Log

Writer)进程,负责把日志从SGA中的缓冲区中写到日志文件中。

SMON(System Moniter)进程,该进程有规律地扫描SAG进程信息,注销失败的数据库例程,回收不再使用的内存空间。PMON(Process Moniter)进程,当一用户进程异常结束时,该进程负责恢复未完成的事务,注销失败的用户进程,释放用户进程占用的资源。ARCH(ARCHIVER)进程。每当联机日志文件写满时,该进程将其拷贝到归档存储设备上。另外还包括分布式DB中事务恢复进程RECO和对服务进程与用户进程进行匹配的Dnnn进程等。

的逻辑结构

构成ORACLE的数据库的逻辑结构包括:(1)表空间

(2)5种类型的段(segment)

①数据段;②索引段;③回滚(rollbock)段;④临时段;⑤自举(bootstrap)段。

段的分配单位叫范围(Extent)

表空间(Tablespace)一个数据库划分成的若干逻辑部分称为表空间。一个数据库可以有一个或多个表空间,初始的表空间命名为SYSTEM,每一个逻辑表空间对应于一个或多个物理文件。DBA使用

表空间做以下工作: 控制数据库对象,如表、索引和临时段的空间分配。为数据库用户设置空间配额。

利用个别表空间的在线或离线,控制数据的可用性。后备或恢复数据。

通过分配空间,以改进性能。

在每个数据库中都存在SYSTEM表空间,它在建立数据库时自动建立。在该表空间中,包含数据库的数据字典,其中存储全部数据库对象的名字和位置。SYSTEM表空间总是在线的,像其它表空间一样,可以通过增加新的数据库文件来扩大。一个表空间可包含许多表和索引。但一个表和索引不能跨越表空间,可跨越组成表空间的文件。在DB的打开的情况下,DBA利用ALTER TABLESPACE语句,可以实施表空间的在线或离线。SYSTEM表空间必须在线。表空间离线有下列原因: 一般为了使部分数据库不能使用,而允许正常存取数据库其余部分。执行表空间离线备份。

一个离线的表空间,不能被应用用户读或编辑。

可以增加数据文件扩大已有的表空间,也可增加新的表空间使数据库容量增大,或分配空间给某个应用。使用ALFER TABLESPACE

ADD FILE语句将另一个数据文件加入到已存在表空间中。使用CREATE TABLESPACE语句可建立一个新的表空间。段(segment)表空间中的全部数据存储在以段划分的数据库空间中。一个段是分配给数据库用于数据存储的范围的集合。数据可以是表、索引或RDBMS所需要的临时数据。段是表空间的下一个逻辑存储的级别。一个段不能跨越一个表空间,但可跨越表空间内的文件。一个数据库最多需要五种段类型: 数据段 一个包含一个表(或聚集)的全部数据,一个表(或聚集)总有一个单个数据段。

索引段 一个索引段包含对一个表(或聚集)建立的一个索引的全部索引数据。一个表可以有一个、多个或者没有索引段,取决于它所拥有的索引个数。一个聚集必须至少有一个索引段,即在聚集码上建立聚集索引。

回滚段 每个DB有一个或多个回滚段。一个回滚段是DB的一部

分,它记录在某一情况下被撤消的动作。回滚段用于事务控制和恢复。

临时段 在处理查询时,ORACLE需要临时工作空间,用于存储语句处理的中间结果,这个区称为临时段。

自举段 自举段在SYSTEM表空间中,在数据库建立时建立。它包括数据字典定义,在数据库打开时装入。

4.用户数据库对象

由用户建立的对象驻留在表空间中,含有真正的数据。数据库对象有表、视图、聚集、索引、伪列和序号生成器。

(1)聚集(Cluster)聚集是存储数据的一种可选择的方法。聚集包括存储在一起的一组表,它们共享公共列并经常一起使用。由于内容相关并且物理地存储在一起,存取时间得到改进,存储空间可以减少。聚集是一种优化措施。

聚集对性能的改进,依赖于数据的分布和SQL操作的内容。特别是使用聚集对连接非常有利。可以明显地提高连接的速度。建立聚集命令的基本格式: SQL>CREATE CLUSTER〈聚集名〉(列定义[,…]);利用聚集建立表命令基本格式: SQL>CREATE TABLE〈新表名〉(列定义[,…]CLUSTER〈聚集名〉(聚集列);在聚集码上必须建立一个聚集索引,对于每一数据块上每个聚集码值有一索引项。这个索引必须在DML语句对聚集表操作前建立。建立索引的语句是:CREATE INDEX索引名ON CLUSTER聚集名;(2)序号生成器 序号(SEQUENCE)生成器为表中的单列或多列生成顺序号。利用序号可自动地生成唯一主码。使用SQL语句定义序号,给出一些信息(如序号名、是升序或降序、每个序号间的间隔和其它信息)。所有序号存储在数据字典表中。

所有序号定义存储在数据字典的SEQUENCE表中。用户可以通过字典视图

USER-SE-QUENCES、ALL-SEQUENCES

和DBA-SEQUENCES查询和存取。建立序号生成器的语句是:

CREATE SEQUENCE序号生成器名 其它选项。

一旦序号生成器S被定义。可用l来引用S序号生成器的

当前值。用l产生下一个新的序号并加以引用。

(3)伪列 伪列的行为像表的一列,但不真正存在于表中,在查询时可引用伪列,但伪列不能插入、删除或修改。

5.数据字典

数据字典ORACLE RDBMS最重要的部分之一。数据字典含有一组系统定义的表,只能读,是关于数据库的引用指南。它可提供以下信息:ORACLE用户的用户名;每个用户被授予的权限和角色;实体的名字和定义;完整性约束 为数据库实体分配的空间;通用的数据库结构;审计信息;触发子程序等的存储。数据字典是以表和视图构成的,像其它数据库数据一样,可用SQL语言查询数据字典。

数据字典在DB建立时建立。每当DB进入操作,数据字典就由ORACLE RDBMS负责修改。数据库建立时有两个默认DBA用户:SYS、SYSTEM。SYS持有基本表中的数据。数据字典包含一组基表和相关的视图,可分为以下几类: 类

描 述

DBA-××× 只有DBA可存取的视图,给出数据库中定义的任何实体的信息

USER-××× 对任何用户可用的视图,给出他们自己的实体的信息

ALL-×××

对任何用户可用的视图,给出用户可存取的所有实体的信息

其中×××代表表名或视图名

下面列出的是一些常用的表或视图的名称。(1)DTAB 描述了组或数据字典的所有表。(2)TAB 用户建的所有基本表、视图和同义词。(3)COL 用户创建基本表的所有列的信息。

(4)SYNONYMS 用户可存取的同义名词、专用名和公用名。(5)CATALOG 用户可存取的表、视图、同义词、序列。(6)CONSTRAINTS 用户可存取的约束。(7)INDEXES 用户可存取的表和聚集的序列。(8)OBJECTS 用户可存取的对象。(9)TABLES 用户可存取的表。(10)USERS 查看当前全部用户。(11)VIEWS 查看用户可存取的视图。

(12)SYSTABAUTH 用户对数据对象的使用权限。可以用SQL>SELECT*FROM〈字典表名或视图名〉WHERE〈条件〉来读取有关信息。

可以用SQL>DESCRIBE〈表名〉来查看表的结构定义。但是数据库字典的结构不可改。用DESCRIBE命令还可以查看视图及过程的定义。

的SQL、PL/SQL与SQL*PLUS 作为ORACLE数据库核心的SQL语言是ANSI和ISO的标准SQL的扩充。用来存储、检索和维护数据库中的信息,并控制对数据库的存取事务。由于RDBMS执行SQL语句时,是一次只执行一条语句,它是非过程化的。这就使得单条的SQL语句使用方便,功能强大。用户只需说明操作目的,不必关心具体操作的实现方法。

但在实际数据库应用开发中,往往要依据前一步对数据库操作的结果或上一个事务提交的情况来确定下一步的操作。故ORACLE推出了一种PL/SQL工具,它扩充了SQL语句,使之具有可进行过程化编程的能力,如循环、分支功能。PL/SQL可支持变量和常量的使用。例如在SELECT查询语句的where子句中可以使用变量来书写条件表达式。SQL*PLUS是ORACLE用来存储、查询、操纵、控制和报告数据库中信息的一个交互式工具。它是一种集编辑、调试、运行于一体的开发环境。在SQL*PLUS的这种运行环境下,既可以使用SQL命令、PL/SQL语句、及SQL*PLUS自己提供的命令,又可以运行由上述三类命令(或语句)编辑而成的命令文件。SQL*PLUS提供的附加命令主要用来编辑、运行上述三类命令及命令文件和对查询结果进行格式化输出等功能。

7.数据库系统的管理

ORACLE作为一个大型的数据系统,通常包含很多用户的数据。在应用开发过程中,有许许多多的各类人员进行开发和应用。所以必须要求有人对数据库系统进行临时管理,并进行数据的备份等工作。这种人被称为数据库管理员(Data Base Administrator)。他们必须理解数据库系统管理,清楚数据库包含的数据内容、运行状况等。

一般说来,DBA不是指具体的人,而是指对数据库可以行使DBA特权的用户。DBA具有如下责任:(1)ORACLE服务器和客户工作站软件的安装和升级;(2)创建基本的数据库存储结构(表空间);(3)创建基本的数据库客体(表、视图、索引);(4)修改数据库结构;(5)给用户授权,维护系统安全;(6)控制和管理用户对数据库的访问;(7)监视和优化数据库的性能;(8)计算数据库信息的后备和恢复;(9)后备和恢复数据库;(10)构造ORACLE服务器,如创建数据库链、客体同义词等。而应用开发人员须完成:(1)应用程序设计;(2)应用的数据库结构设计和修改;(3)为DBA提供必要的信息;(4)完成应用程序的开发。

看了许多关于ORACLE的知识论坛,总算是对ORACLE有个整体的认识,不仅仅是拘泥于课堂上学习的知识而已,虽然自己对ORACLE学习并不是多么的透彻,但是总归多接触点新的东西总是好的。

这一个学期,也是临近毕业的时候了,很感谢贾老师的严格要求,让我在学习上有了很大的进步,同时也改掉了一些惰性,能积极的投入到学习中去了,不懂就大胆的问同学,请学习好的同学帮助讲解,最后,真心的祝福贾老师工作顺利,身体健康!


本文标签: 数据库 数据 用户 使用