收藏 分销(赏)

oracle课后题答案总.doc

上传人:仙人****88 文档编号:9150606 上传时间:2025-03-15 格式:DOC 页数:11 大小:74.08KB
下载 相关 举报
oracle课后题答案总.doc_第1页
第1页 / 共11页
oracle课后题答案总.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述
第一章 一、 选择题 1. 若关系的某一属性组的值能唯一地标识一个元组,我们称之为( B )。 A、 主码 B、候选码 C、外码 D、联系 2. 以下不属于数据库模式的三要素的是( C )。 A、数据结构 B、数据操作 C、数据控制 D、完整性约束 3. 以下对关系性质的描述中,哪个是错误的?( B ) A、关系中每个属性值都是不可分解的 B、关系中允许出现相同的元组 C、定义关系模式时可随意指定属性的排列次序 D、关系中元组的排列次序可以任意交换 二、 填空题 1. 数据管理发展的三个阶段是 人工管理 、 文件管理 和 数据库系统管理。 2. 数据库系统的三级模式包括 逻辑模式 、 用户模式 、物理模式。 三、 思考题 1. 数据库管理系统的主要功能有哪些? 1)数据定义功能。DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。 2)数据存取功能。DBMS提供数据操纵语言(DML),实 现对数据库数据的基本存取操作:检索,插入,修改和删除。 3)数据库运行管理功能。DBMS提供数据控制功能,即是 数据的安全性、完整性和并发控制等对数据库运行进行有效地控 制和管理,以确保数据正确有效。 4)数据库的建立和维护功能。包括数据库初始数据的装入, 数据库的转储、恢复、重组织,系统性能监视、分析等功能。 5)数据库的传输;DBMS提供处理数据的传输,实现用户 程序与DBMS之间的通信,通常与操作系统协调完成。 2. 思考关系规范化的过程。 答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。 3. 思考数据库设计的步骤。 答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。 第二章 一、 选择题 1、Oracle 11g不具备的版本是(C) A.个人版 B.标准版 C. 扩展板 D.企业版 2、oracle 数据库的数据字典不能做的工作有(B) A. 查找oracle数据库用户信息 B. 查找oracle数据库表中的信息 C. 查找oracle数据库模式对象的信息 D. 查找oracle数据库存储结构的信息 二、填空题 1、 Oracle体系结构由内存结构、进程结构和存储结构组成。 2、Oracle数据库中,段包括 数据段、牵引段、回滚段和临时段四种。 3、 Oracle物理存储结构包含三种数据文件:控制文件、数据文件和日志文件 三.思考题 1. 名词解释: 数据块: 是数据块使用的I/O最小单元,也是最基础的存储单位,又称逻辑块或oracle块。数据块包括块头和存储区。 区: 是数据存储空间分配的逻辑单元,,在一个段中可以存在多个区间,区间是数据一次性预留的一个较大的存储空间。 段: 是对象在数据库中占用的空间。从数据库存储的角度来看,段和数据库对象时一一对应的。一个段只能属于一个表空间,一个表空间可以有多个段。 表空间。 2. Oracle的物理结构主要包括那些类型的文件? 答:控制文件、数据文件 、重做日志文件等操作系统文件等。 第三章 一:选择题 1.下列操作系统中,不能运行Oracle 11g的是( C )。 A.Windows B.Linux C.Macintosh D.Unix 2.以下不属于Oracle安装前的准备工作的是( C )。 A.对服务器进行正确的网络配置,并且记录IP地址、域名的网络配置信息,如果采用动态IP,需先将Microsoft LoopBack Adapter配置为系统的主网络适配 B.卸载其他的数据库管理系统 C.如果服务器上运行有其他Oracle服务,必须在安装前将他们全部停止 D.关闭Windows防火墙和某些杀毒软件 二:填空题 1.卸载Oracle需要经过停止服务、卸载组件和删除遗留成分三个步骤。 2.Oracle数据库监听器的启用有3种方法:利用Enterprise Manager、用监听器控制实用程序和利用Net Manager提供的“监听程序”。 第四章 一、 选择题 1、 SQL语言中不属于数据定义的命令动词是(C)。 A、 CREATE B、DROP C、GRANT D、ALTER 2、 在同样的条件下,下面的哪个操作得到的结果集有可能最多?(D) A、 内连接 B、左外连接 C、右外连接 D、完全连接 3、 下列操作权限中,在视图上不具备的是(B)。 A、 SELECT B、ALTER C、DELETE D、INSERT 二、 填空题 1、 SQL语言的功能主要包括 数据定义 、 数据操作 和 数据控制 三类。 2、 希望删除查询结果集中重复的行,需要使用 distinct 关键字。 3、 常用的统计函数有 count 、MIN、MAX、 sum 和AVG。 三、 实训题 1、 登陆Oracle,进入HR方案,使用DESC和SELECT命令查看各个表的结构以及现有的数据。 代码如下: (1)a.查看JOBS表的结构:DESC JOBS; b.查看JOBS 表的部分数据:SELECT * FROM JOBS; (2)a.查看EMPLOYEES表的结构:DESC EMPLOYEES; b.查看EMPLOYEES表的部分数据:SELECT * FROM EMPLOYEES ; (3)a.查看表的结构:DESC DEPARTMENTS; b.查看DEPARTMENTS表的部分数据:SELECT * FROM DEPARTMENTS; (4)a.查看REGIONS表的结构:DESC REGIONS; b.查看REGIONS表的部分数据:SELECT * FROM REGIONS; (5)a.查看LOCATIONS表的结构:DESC LOCATIONS; b.查看LOCATIONS表的部分数据:SELECT * FROM LOCATIONS; (6)a.查看COUNTRIES表的结构:DESC COUNTRIES; b.查看COUNTRIES表的部分数据:SELECT * FROM COUNTRIES; (7)a.查看JOB_JISTORY表的结构:DESC JOB_JISTORY; b.查看JOB_JISTORY表的部分数据:SELECT * FROM JOB_JISTORY; 2、 在HR方案中进行表的创建、修改和删除(CREATE、DROP、ALTER命令)。 创建表:CREATE TABLE MANAGER( MANAGER_ID NUMBER2(6) NOT NULL UNIQUE, FIRST_NAME VARCHAR2(20), LAST_NAME VARCHAR2(25), DEPT_ID VARCHAR2(10)); 修改:ALTER TABLE MANAGER ADD SEX VARCHAR2(2); ALTER TABLE MANAGER MODIFY MANAGER_ID UNMBER(8); 删除:ALTER TABLE MANAGER DROP UNIQUE(MANAGER_ID) ; DROP TABLE MANAGER; 3. 在HR方案中完成对EMPLOYEES表以及相关各表的各种查询操作(WHERE子句GROUP BY子句以及各种连接等)。 代码如下: 查询: SELECT * FROM HR.COUNTRIES,HR.DEPARTMENTS,HR.EMPLOYEES; GROUP BY 语句:SELECT DEPARTMENT_ID,COUNT(*),AVG(SALARY) FROM EMPLOYEES GROUP BY ROLLUP(DEPARTMENT_ID); 各种连接: (1) 简单连接:SELECT EMPLOYEES.*,JOBS.* FROM EMPLOYEES,DEPARTMENTS;(连接EMPLOYEES和DEPARTMENTS) (2) 内链接:SELECT EMPLOYEES.LAST_NAME,JOBS.JOB_TITLE FROM EMPLOYEES INNER JOIN JOBS ON EMPLOYEES.JOB_ID=JOBS.JOB_ID (3) 自然连接:SELECT EMPLOYEES EM.LAST_NAME,EM.FIRST_NAME,EM.EMPLOYEE_ID,DEP.DEPARTMENT_NAME FROM EMPLOYEES EM NATURAL JOIN DEPARTMENTS DEP WHERE DEP.DEPARTMENT_NAME=”SALES” (4) 外连接:SELECT EM.EMPLOYEE_ID,EM.LAST_NAME, DEP.DEPARTMENT_NAME FROM EMPLOYEES EM LEFT OUTER JOIN DEPARTMENTS DEP ON EM.DEPARTMENT_ID = DEP. DEPARTMENT WHERE EM.JOB_ID=’IT_PROG’; (左连接) (5) 自身连接:SELECT EMPLOYEES_ID ,LAST_NAME,JOB_ID FROM EMPOYEES ORDER BY EMPLOYEE_ID 4. 在HR方案中,针对EMPLOYEES表进行数据的创建、修改和删除操作(INSERT、UPDATE、DELETE命令)。 代码如下: INSERT: INSERT INTO EMPLOYEES VALUES(‘2001’,’TOM’,’KING’,’SKING’,516.123.3456,1999.12.12,’IT_PROG’,20006,103,60) UPDATE:UPDATE EMPLOYEES SET SALARY=SALAY+100 WHERE JOB_ID=”IT_PROG”;(IT_PROG部门的薪水涨100$) DELETE:DELETE FROM EMPLOYEES WHERE FIRST_NAME=’TOM’;(删除真名叫tom的人的信息) 第五章 一、选择题 1、下列属于Oracle PL/SQL的数据类型是(A.DATE)。. 2、下面不属于Oracle PL/SQL 的参数类型是(D.null)。 二、填空题 1、显示游标的处理包括声明游标、打开游标、提取游标和关闭游标4个步骤。 2、包有两个独立的部分:说明部分和包体部分。 3、触发器的类型包括DML触发器、INSTEND OF触发器 和 系统触发器。 三、实训题 1、实现一个游标,完成对emplouees表的遍历; SQL> create or replace procedure show_all_employees 2 as 3 emp_row employees%rowtype; 4 cursor emp_cur is select * from employees;--声明游标 5 begin 6 OPEN emp_cur;--打开游标 7 LOOP 8 FETCH emp_cur INTO emp_row;--提取行 9 EXIT WHEN emp_cur%NOTFOUND; 10 DBMS_OUTPUT.PUT_LINE('雇员ID是:'||emp_row.employee_id||' 姓名是:'||emp_row.first_name||' '||emp_row.last_name); 11 END LOOP; 12 CLOSE emp_cur;--关闭游标 13 end; 14 / Procedure created SQL> execute show_all_employees(); 2、 实现一个过程,完成对emplouees表中job_id为'IT_PROG'的员工salary的增加,增加额度为800; create or replace procedure salary_add(jobid in employees.JOB_ID%type,adds in employees.SALARY%type) 2 as 3 begin 4 update employees set SALARY=SALARY+adds where JOB_ID=jobid; 5 dbms_output.put_line('emploees表中列的'||jobid||'增加的salary为'||adds); 6 end salary_add; 7 / Procedure created SQL> set serverout on; SQL> EXECUTE salary_add('IT_PROG',800); create or replace procedure salary_add 2 as 3 begin 4 update employees set SALARY=SALARY+800 where JOB_ID=’IT_PROG’; 5 dbms_output.put_line('为IT_PROG增加工资800’); 6 end salary_add; 7 / Procedure created SQL> set serverout on; SQL> EXECUTE salary_add; 3.实现一个函数,完成对EMPLOYEES表中JOB_ID为“IT_PROG的员工SALARY的增加” create or replace function incr_emp_salary_func(inrement in number) return boolean IS begin update employees set salary=salary+inrement where job_id='IT_PROG'; if sql%notfound then return false; end if; return true; end; Create or replace function sal_fuc(sal_add in number default 10) return varchar2(30) As begin Update employees set salary=salary+sal_add where job_id=’ IT_PROG’; Return ‘为IT_PROG的员工增加工资800’ ; end; / Set serverout on; Declare salary varchar2(50); begin salary:=sal_fun(800); Dbms_output.put_line(salary); end; / 第六章 一. 选择题 1. 下面属于Oracle PL/SQL的数据类型的是(A) A. DATE B.TIME C. DATETIME D.SMALLDATETIME 2. 下面不属于Oracle PL/SQL的参数类型是(D) A. In B.out C. inout D. null 二. 填空题 1.显示游标的处理:声明游标、打开游标、提取游标、关闭游标 2.包的两个独立部分:说明部分、包体部分 3.触发器的类型包括:DML触发器、INSTEND OF触发器、系统触发器 第七章 一、选择题 1. create user 命令中的default tablespace语句用于下列哪种中设置?( A ) A、 用户创建的数据库对象 B、 用户创建的临时对象 C、 用户创建的系统对象 D、 以上都不对 2. 下列哪一种不属于系统权限( A )。 A、Select B、Update Any C、Create View D、Create Session 3. 哪一种操作受表空间配额的限制?( C ) A、Update B、Delete C、Create D、以上全是 二、填空题 1. 数据库中的权限包括 系统权限 和 对象权限 两类。 2. Oracle数据库安全控制机制包括用户管理、 权限管理 、 角色管理 、表空间设置和配额、 概要文件管理 、数据库审计6个方面。 三、实训题 1. 创建一个口令认证的数据库用户usera_exer,口令为usera,默认表空间为USERS,配额为10MB,初始账户为锁定状态。 create user usera_exer identifiled by usera default tablesspace users quota 10m on users account lock; 2. 创建一个口令认证的数据库用户userb_exer,口令userb。 create user userb_exer identifiled by userb; 3. 将用户usera_exer的账户解锁。 alter user usera_exer account unlock; 4. 为usera_exer用户授权Create Session权限、Scott.emp的select权限和update权限,同时允许该用户将获取的权限授予其他用户。 grant create session to usera_exer with option; grant select,update on scott.emp to usera_exer with option; 第八章 一. 选择题 2.创建控制文件时,数据库必须:(B.未加载) 3.以下哪一种数据字典视图显示出数据库处于ARCHIVELOG方式:(C. V$DATABASE) 二. 填空题 1.Oracle数据库逻辑存储结构包括:表空间、段、区、数据块 四种 2.Oracle数据库物理存储结构是指存储在磁盘上的物理文件,包括:数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、跟踪文件、口令文件、警告文件、备份文件 建立2个表,一个是stuInfo(学号sno,姓名sname,年龄sage,性别smale,系编号deptNo),一个是department(系编号deptNo,系名称deptName)。 要求: 每个表有主键,stuInfo表建立外键,学生的姓名不能为空,学生的年龄要在18到50之间,学生的性别必须是男女之一,默认是男。stuInfo表的deptNo列,要参照department表的deptNo列; 11、 添加约束:允许stuInfo中的姓名可以为空;允许stuInfo中的姓名不能重复;创建deptName_check,要求department的系名称列的内容,必须大于4个字符长度; Alter table stuInfo modify sname null; Alter table stuInfo add constraints sname_unique unique(sname); Alter table department add constraints deptName_check check(length(deptName)>4); 12、 删除约束:删除刚才建立的department表上的deptName_check 约束,删除主键语句; Alter table department drop constraint deptName_check; Alter table department drop primary key cascade; 2、创建视图Managers_2,该视图显示出所有部门经理的信息,其中部门显示的不是部门编码,而是部门名称。提示:要从employees表和departments表中联合查询,连接条件是两个表中的department_id字段相同。 create view managers_2 as select emp.employee_id,emp.first_name,emp.last_name,emp.email,emp.phone_number,emp.job_id,emp.salary,dep.department_name from employees emp,departments dep where emp.employee_id in (select distinct manager_id from departments) and emp.department_id=dep.department_id; 3. 使用GROUP BY子句对薪金记录进行分组,使用SQL函数计算每个JOB_ID的平均薪金(AVG)、所有薪金的总和(SUM),以及最高薪金(MAX)和各组的行数; Select job_id,sum(salary),avg(salary),max(salary),count(job_id) form employees group by job_id; 实现一个函数,完成对employees表中job_id为'IT_PROG'的员工salary的增加,增加额度为800,输出员工所在的部门收入的名次,增加额度作为参数传入 Create or replace function sal_fuc(sal_add in number default 10) return varchar2(30) As begin Update employees set salary=salary+sal_add where job_id=’ IT_PROG’; Return ‘为IT_PROG的员工增加工资800’ ; end; / Set serverout on; Declare salary varchar2(50); begin salary:=sal_fun(800); Dbms_output.put_line(salary); end; /
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服