当前位置:首页 > 《Oracle数据库应用》练习题及答案
2. 简述PL/SQL语言的组成(3分)
3. 简单介绍表空间,并写出一种建立表空间的方法。(4分)
五、 程序题(40分,2题4分,其余每题3分)
Scott用户下有表emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL,COMM ,DEPTNO)和表dept(DEPTNO ,DNAME,LOC)其中emp表为雇员表,各字段的中文含义为:雇员表(雇员号,雇员名,职位,上级编号,入职时间,月工资,奖金,部门号)dept表为部门表,各字段的中文含义为:部门表(部门编号,部门名,部门所在地点)
1. 创建表空间data1,该表空间有两个数据文件data1和data2,初始大小分别是10M和20M。
2. 在data1表空间中创建部门表mydept的,要求deptno为字符型数据,长度为2,主键;dname字符型数据,长度为10,唯一;loc字符型数据,长度4,只能是北京,上海,天津。
3. 在data1表空间创建表myemp,字段名及类型内容同scott用户下的emp 4. 将所有销售人员(即职位为销售salesman)的奖金加100
5. 修改myemp表,增加性别字段,性别字段默认为男,性别字段的值只能是男或女
6. 查询myemp表,显示第三个字符为大写O的所有员工的姓名和工资? 7. 查询myem表,显示每个部门的每种岗位的平均工资和最低工资? 8. 查询平均工资低于2000的部门名和它的平均工资?
9. 创建只读的雇员信息视图xin,显示雇员号,雇员名,岗位,部门名,地址,工资级别,并查询视图 10.
创建用户myuser,密码m123,授予myuser连接数据库,创建表的
系统权限,并能够级联授权。 11.
授予myuser查询,修改,删除scott用户的emp表的权限,并能够
级联授权。 12.
创建存储过程pro_sum,该存储过程输入参数vdeptno,实现统计某
个部门人数并输出,执行该过程,显示10号部门的人数。 13.
创建一个system方案中的函数fn1,函数的作用为:将指定empno
号的记录中的sal字段值乘以1.05。
参考 答案
一、 选择题(20分)
1---5 ABDCA 6—10 DBCBC 11 --15BBBCD 16—20 BBDAD
二、 填空题(20分)
@文件名 2. 数据文件重做日志文件 3. 物理数据文件(data file) 4. desc
12.Updata 5. EXPIMP 6.声明部分、执行部分和异常处理部分。
7. select * from employee 8. Create function 9. 定义打开关闭 10. 包头包体 11. out 和 in out
三、 判断题(10分)
1---10 ××××√ √×√√√
四、 简答题(10分)
1.简述数据完整性的分类(3分)
答:实体完整性 域完整性和参照完整性 2.简述PL/SQL语言的组成(3分)
? 数据定义语句(create alter drop ) ? 数据操纵语句(insert update delete select) ? 数据控制语句(grant revoke )。
3.简单介绍表空间,并写出一种建立表空间的方法。(4分)
答:表空间是Oracle逻辑存储结构的最高层,一个数据库就是若干个表空间组成的。每个表空间对应操作系统中的一个或多个数据文件,但每个数据文件只能属于一个表空间。
Create tablespace表空间名datafile 数据文件名;
五、 程序题(40分,2题4分,其余每题3分)
1.创建表空间data,该表空间有两个数据文件data1和data2,初始大小分别是10M和20M。 createtablespace data
datafile 'c:\\data1.dbf' size 10M reuse,'c:\\data2.dbf' size 20M reuse autoextend off;
2. 在data表空间中创建部门表mydept的,要求deptno为字符型数据,长度为2,主键;dname字符型数据,长度为10,唯一;loc字符型数据,长度4,只能是北京,上海,天津。
Create table mydept(deptno varchar2(2) primary key,dname char(10) unique,log varchar2(4) check(loc in (‘北京’,’上海’,’天津’)))
3. 在data表空间创建表myemp,字段名及类型内容同scott用户下的emp Create tablemyemp as select * from scott.emp default tablespace data1
4. 将所有销售人员(即职位为销售salesman)的奖金加100 Update myemp set comm=comm+100 WHERE JOB=’salesman’
5. 修改myemp表,增加性别字段,性别字段默认为男,性别字段的值只能是男或女
ALTER TABLE MYEMP add sex char(2) default ‘男’ check(性别=‘男’ or 性别=‘女’)
6. 查询myemp表,显示第三个字符为大写O的所有员工的姓名和工资? selectename,sal from scott.emp where ename like '__O%'; 7. 查询myem表,显示每个部门的每种岗位的平均工资和最低工资? selectdeptno,job,max(sal),avg(sal) job,deptno;
8.查询平均工资低于2000的部门名和它的平均工资?
select dname as 部门名,avg(sal)as 平均工资 from scott.emp,scott.dept where scott.emp.deptno=scott.dept.deptno group by dname having avg(sal)<2000;
9.创建只读的雇员信息视图xin,显示雇员号,雇员名,岗位,部门名,地
址,并查询视图
Create view xin as select empno,ename,job,dname,loc from meemp,medept where myemp.deptno=mydept.deptno
from
myemp
group
by
Select * from xin 10.
创建用户myuser,密码m123,授予myuser连接数据库,创建表的
系统权限,并能够级联授权。E
Create user myuser identified by m123;
Grant create session,create table to myuser with admin option; 11.
授予myuser查询,修改,删除scott用户的emp表的权限,并能够
级联授权。
Grant select ,update,delete on scott.emp to myuser with grant option 12.
创建存储过程pro_sum,该存储过程输入参数vdeptno,实现统计某
个部门人数并输出,执行该过程,显示 10号部门的人数。 Create or replace procedure pro_sum(vdeptno in varchar2) As
V_rsnumber(3); Begin
Select count(*) into v_rs from emp where deptno=vdeptno; Dbms_output.put_line(v_rs) End;
Exec pro_sum(‘10’) 13.
创建一个system方案中的函数fn1,函数的作用为:将指定empno
号的记录中的sal字段值乘以1.05。
答:create or replace function system.fn1(v_idscott.emp.empno% type) return number as
new_salaryscott.emp.sal% type; begin
selectsal into new_salary fromscott.emp where empno=v_id; new_salary:=new_salary*1.05; returnnew_salary; end;
共分享92篇相关文档