欢迎来到天天文库
浏览记录
ID:8913411
大小:34.00 KB
页数:4页
时间:2018-04-12
《oracle数据库设计期末复习资料-简答题编程题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、简答题1.解释FUNCTION,PROCEDURE和PACKAGE区别?答:存储过程(procedure):存储过程是预先编译好的代码,可以作为PL/SQL语句直接调用执行;过程存储没有返回值;存储过程在规格说明中不包含return语句,即使包含也不起任何作用。函数(function):函数可以作为一个表达式的一部分使用;函数必须有返回值;函数在规格说明中必须包含至少一条return语句。包(package):包是一种数据库对象,将逻辑上相关的PL/SQL类型、对象和子程序组合成一个更大的单位;包有包头和包体两部分组成;包中可以将一些用于完成某功
2、能的函数和存储过程放进包中可以方便维护。2.什么是序列?如何取得取某个序列的当前值?答:1)序列是序列号生成器,可以为表中的行生成序列号,产生一组等间隔的系列数值。2)先通过调用nextval产生序列的下一个值,再调用currval产生序列的当前值。3.列举出至少三种表约束,各有什么作用?答:1)实体完整性约束:减少数据的冗余,作用于行,例如主键约束;2)域完整性约束:提高数据的准确性,作用于列,check检测;3)引用完整性约束:满足数据的一致性,作用于表与表之间,例如外键约束;4.取当前系统时间点日期(不包括年月)的SQL写法是怎样的?答:写
3、法一:selectto_char(sysdate,"ddhh24:mi:ss")fromdual;写法二:selectsubstr(to_char(sysdate,'YYYYMMDDh24hh:MM:SS'),)fromdual;5.什么是同义词,分为哪几类?答:1)同义词是数据库某些复杂对象的一个别名,用于简化对象访问和提高对象访问的安全性。2)同义词分公有和私有两类。公有同义词授权用户和system用户可以使用,私有同义词只有建立该同义词的用户才能使用。6.请说明Oracle中存储过程和函数有什么区别,分别如何定义?答:存储过程:存储过程是预
4、先编译好的代码,可以作为PL/SQL语句直接调用执行;过程存储没有返回值;存储过程在规格说明中不包含return语句,即使包含也不起任何作用。Createorreplaceprocedure存储过程名(参数名in[输入、默认方式]数据类型,参数名out参数类型)AsBegin…………--执行DML操作End;函数:函数可以作为一个表达式的一部分使用;函数必须有返回值;函数在规格说明中必须包含至少一条return语句。createfunction函数名(变量名类型,变量名类型)return返回类型is变量类型;begin…………--执行部分retu
5、rn返回值;End;7.什么是角色,如何创建一个角色并把角色赋予指定账户?答:1)角色是具有名称的一组相关权限的组合。2)创建角色有验证方式和非验证方式两种。例如:--创建public_role和private_role角色Createrolepublic_rolenotidentified;Createroleprivate_roleidentifiedbyprivate;--给public_role角色授予某些系统权限和对象权限,如select,updateGrantselect,updateonscott.emptopublic_role;
6、3)把角色赋予指定账户的sql语句和直接把某一权限赋予指定账户相似。例如:--把角色public_role授予给用户wangcaiGrantpublic_roletowangcaiwithadminoption;编程题:1.编写PL程序块循环给scott.emp表中所有职工增加工资,每次增加100元,直到平均工资高于5000或任一职工的工资超过6000元为止,最后显示出给所有员工一共增加了多少工资。DECLARE--声明变量avg_salemp.sal%TYPE;max_salemp.sal%TYPE;v_countnumber:=0;BEGIN
7、--循环遍历loopSELECTAVG(sal)INTOavg_salFROMemp;SELECTMAX(sal)INTOmax_salFROMemp;--退出条件判断EXITWHENavg_sal>5000ORmax_sal>6000;UPDATEempSETsal=sal+100;v_count:=v_count+SQL%ROWCOUNT;ENDLOOP;--打印结果dbms_output.put_line('职工工资增加了¥'
8、
9、v_count*100);END;2.编写一个PL块,定义一个静态游标存储scott.emp表中所有雇员的员em
10、pno、ename和sal,并使用循环打印出所有数据。declarecursorcur_empisselect*fromemp;--创建
此文档下载收益归作者所有