Oracle期末复习题 1. 2. 3. 4.
简单介绍一下Oracle数据库管理系统
举例说明Oracle与SQL Server的异同(至少说出2项以上) 简述Oracle数据库的体系结构
Oracle数据库的物理文件有哪几类?扩展名分别是什么?分别存储什么信息? 5.
创建一个用户,用户名是student,密码是userkey1,该用户具有connect、resource角色,同时该用户还可以访问scott用户下的salgrade表。请写出相应的SQL语句。 Create user student identified by userkey1; Grant connect, resource to student; Grant select on scott.salgrade to student; 6.
在SQL PLUS下,写出用student用户连接数据库的语句。
Conn student/userkey1; 7. 8. 9.
请举出3个Oracle 12c数据库常用工具。 Oracle 12c有哪几个系统内置用户? 查看当前连接的用户名字用什么命令?
Show user; 10. Disc; 11.
如何用SQL语句创建一个表的副本?比如创建scott用户下emp表的副本,写出SQL语句。 断开连接的命令?
Create table emp_copy As
Select * from emp; 12.
什么是游标?如何定义一个显式游标?如何读取游标中的数据?如何关闭游标? 13.
如何声明一个变量xs1,它和表XSB的行的类型相同?写出声明语句。——Declare xs1 xsb%rowtype; 14. 15.
列出3个Oracle中常用的DML语句。 列出3个Oracle中常用的DDL语句。
综合练习一:
1. 表EMP用来保存员工基本信息,表DEPT用来保存部门信息。写出创建两个表的SQL语
句。两个表的结构如下:
EMP 字段名 empid ename sex depid salary DEPT 数据类型 CHAR(4) VARCHAR2(10) VARCHAR2(2) char(2) NUMBER(6,1) 主键 约束 不为空 默认值是‘男’ 外键 姓名 性别 含义 员工号 部门编号 工资 字段名 depid dname dloc 数据类型 VARCHAR2(10) varchar2(20) varchar2(20) 约束 主键 不为空 含义 部门号 部门名称 地址
2. 向两个表中分别插入如下记录:
EMP表 empid ename sex depid salary 1001 2001 2002 2003 DEPT表 章凯 方方 田田 郑修远 男 女 女 男 10 20 20 20 8000 6400 5000 3200 depid 10 20 dname 人事部 技术部 dloc A座301 A座403 3. 对emp表创建名字为idx_depid的索引,索引列是depid。
Create index idx_depid on emp(depid);
4. 查询技术部员工的编号、姓名和工资信息,并按工资降序排列。
Select empid, ename, salary
from EMP inner join DEPT on dept.deptid= EMP.deptid order by salary desc
5. 查询各部门员工的人数、平均工资和总工资。
Select deptid, dname, count(*), avg(salary), sum(salary) From dept d join emp e on d.deptid=e.deptid Group by deptid, dname
6. 查询技术部工资最高的员工的姓名和工资。
Select empname, salary
From emp join dept on emp.deptid=dept.deptid
Where dname= ‘技术部’ and salary=(select max(salary) form emp where deptid=d.deptid))
7. 创建存储过程,修改指定员工的工资(说明:员工号、增加或减少的工资数为输入参数,修改成功返回0,不成功返回1)。
Create procdureusp_change_salary ( ygh IN char , Gz in number, Result out int ) As begin
result:=0;
Update emp set salary=salary+gz where empid=ygh; exception
When no_data_found then result:=1; endusp_change_salary;
8. 在PL/SQL块中,如何声明一个变量R,它和表KCB的行的类型相同。写出声明语句。 declare R KCB%rowtype;
9. 提交事务的语句是什么? commit;
10. 写出查看系统时间的SQL语句。 Select sysdate() from dual;
11.表quit_emp的结构与emp表的结构相同,存放的是退休员工的信息。创建emp表的删除触发器:当删除emp表中的记录时,将删除的记录添加到quit_emp表中。
create trigger tri_del_emp
after delete on emp for each row begin
Insert into quit_emp Select * from deleted end
综合练习二:
1. 有一个网上书店,现在要建两个表,一个是用来保存图书信息,一个用来保存销售信息。
两个表的结构分别如下: Book 字段名 BOOKID BOOKNAME BOOKTYPE PRICE STOCK Sale 数据类型 VARCHAR2(10) VARCHAR2(40) VARCHAR2(10) NUMBER(6,1) NUMBER(4) 主键 约束 不为空 不为空 含义 图书编号 图书名称 图书类别 单价 库存 字段名 BOOKID Amount Saledate 数据类型 VARCHAR2(10) Number(3) Date 外键 不为空 约束 含义 图书编号 销售数量 销售日期 默认值为系统时间
2. 在两个表中分别插入如下记录:
Book表 BOOKID TP-1001 TP-1002 TP-1003 I-001 I-002 S-001 Sale表 BOOKNAME ORACLE基础 程序设计基础 数据结构 红楼梦 平凡的世界 中国史 BOOKTYPE 计算机 计算机 计算机 文学 文学 历史 PRICE 28 21 32 68 46 52 STOCK 100 120 50 10 15 20 BOOKID TP-1001 TP-1001 TP-1002 I-002 3 40 17 2 AMOUNT 3. 完成如下操作: 1)查询有库存(即STOCK>0)的图书目录 2)查询计算机类图书信息 3)查询2016年的销售记录,包含:书号、书名、销售数量、销售金额
4)删除滞销图书(即没有顾客购买的图书) 5)将文学类图书的价格更改为原价格的90%。 6)统计不同类别图书的库存量。
7)查询库存量最大的图书编号和图书名称
4. 创建一个存储过程,修改指定图书的价格,书号、新价格由输入参数传递,修改成功返回0,不成功返回1。
5. 调用上面的存储过程,修改’TP-1001’图书的价格,改为20元
综合练习三:
对scott用户下的表进行的。
1. 在emp表中,查询最高的领导者(即MGR为空的记录)。 2. 查询有哪些工种(提示:emp表)
3. 在emp表中,查询工龄超过25年的员工信息(员工号、姓名、工龄、部门编号)。 4. 查询1987年入职的员工信息。
5. 查询收入(sal+comm)超过20000或者低于1000的员工信息。 6. 列出所有办事员的工号、姓名和部门编号。
(说明:办事员即:job是’CLERK’,但是为了注意大小写的问题,可以将条件设置为UPPER(job) =’CLERK’;)
综合练习四:
针对教材中的学生成绩管理数据库中的表,实现如下操作:
一、创建视图(使用SQL语句)
1. 创建计算机专业学生信息视图CS_XS
2. 创建一个包含学号、姓名、课程编号、课程名称、专业、成绩信息的视图XS_CJ 3. 创建一个包含学号、姓名以及平均成绩的视图XS_CJ_AVG 二、使用以上视图,完成如下操作:
1. 查询每门课程不及格学生人数,显示课程号、课程名以及不及格人数 提示:对XS_CJ视图进行汇总查询
2. 查询赵琳同学的成绩单(显示课程编号、课程名称以及成绩) 提示:对XS_CJ视图进行查询
3. 查询哪个同学的‘程序设计基础’课程成绩最高 参考代码: SELECT xh, xm FROM XS_CJ
WHERE kcm='数据库原理' and cj=(SELECT MAX(CJ) FROM XS_CJ
WHERE kcm='程序设计基础')
4. 计算机专业的学生都选了哪些课程 参考代码:
SELECT distinct kch,kcm FROM XS_CJ
WHERE zy='计算机';
5. 将学号‘151101’的学生计算机基础课程的分数修改为100
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Oracle期末复习题-带答案在线全文阅读。
相关推荐: