oracle课后题答案总.docx

上传人:b****7 文档编号:26069528 上传时间:2023-06-17 格式:DOCX 页数:14 大小:26.61KB
下载 相关 举报
oracle课后题答案总.docx_第1页
第1页 / 共14页
oracle课后题答案总.docx_第2页
第2页 / 共14页
oracle课后题答案总.docx_第3页
第3页 / 共14页
oracle课后题答案总.docx_第4页
第4页 / 共14页
oracle课后题答案总.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

oracle课后题答案总.docx

《oracle课后题答案总.docx》由会员分享,可在线阅读,更多相关《oracle课后题答案总.docx(14页珍藏版)》请在冰豆网上搜索。

oracle课后题答案总.docx

oracle课后题答案总

第一章

1、选择题

1.若关系的某一属性组的值能唯一地标识一个元组,我们称之为(B)。

A、主码B、候选码C、外码D、联系

2.以下不属于数据库模式的三要素的是(C)。

A、数据结构B、数据操作C、数据控制D、完整性约束

3.以下对关系性质的描述中,哪个是错误的?

(B)

A、关系中每个属性值都是不可分解的

B、关系中允许出现相同的元组

C、定义关系模式时可随意指定属性的排列次序

D、关系中元组的排列次序可以任意交换

2、填空题

1.数据管理发展的三个阶段是人工管理、文件管理和数据库系统管理。

2.数据库系统的三级模式包括逻辑模式、用户模式、物理模式。

3、思考题

1.数据库管理系统的主要功能有哪些?

1)数据定义功能。

DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。

2)数据存取功能。

DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:

检索,插入,修改和删除。

3)数据库运行管理功能。

DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。

4)数据库的建立和维护功能。

包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。

5)数据库的传输;DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。

2.思考关系规范化的过程。

答:

对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。

3.思考数据库设计的步骤。

答:

1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。

 

第二章

1、选择题

1、Oracle11g不具备的版本是(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.下列操作系统中,不能运行Oracle11g的是(C)。

2.以下不属于Oracle安装前的准备工作的是(C)。

A.对服务器进行正确的网络配置,并且记录IP地址、域名的网络配置信息,如果采用动态IP,需先将MicrosoftLoopBackAdapter配置为系统的主网络适配

B.卸载其他的数据库管理系统

C.如果服务器上运行有其他Oracle服务,必须在安装前将他们全部停止

D.关闭Windows防火墙和某些杀毒软件

二:

填空题

1.卸载Oracle需要经过停止服务、卸载组件和删除遗留成分三个步骤。

数据库监听器的启用有3种方法:

利用EnterpriseManager、用监听器控制实用程序和利用NetManager提供的“监听程序”。

第四章

1、选择题

1、SQL语言中不属于数据定义的命令动词是(C)。

A、CREATEB、DROP

C、GRANTD、ALTER

2、在同样的条件下,下面的哪个操作得到的结果集有可能最多?

(D)

A、内连接B、左外连接

C、右外连接D、完全连接

3、下列操作权限中,在视图上不具备的是(B)。

A、SELECTB、ALTER

C、DELETED、INSERT

2、填空题

1、SQL语言的功能主要包括数据定义、数据操作和数据控制三类。

2、希望删除查询结果集中重复的行,需要使用distinct关键字。

3、常用的统计函数有count、MIN、MAX、sum和AVG。

3、实训题

1、登陆Oracle,进入HR方案,使用DESC和SELECT命令查看各个表的结构以及现有的数据。

代码如下:

(1)a.查看JOBS表的结构:

DESCJOBS;

b.查看JOBS表的部分数据:

SELECT*FROMJOBS;

(2)a.查看EMPLOYEES表的结构:

DESCEMPLOYEES;

b.查看EMPLOYEES表的部分数据:

SELECT*FROMEMPLOYEES;

(3)a.查看表的结构:

DESCDEPARTMENTS;

b.查看DEPARTMENTS表的部分数据:

SELECT*FROMDEPARTMENTS;

(4)a.查看REGIONS表的结构:

DESCREGIONS;

b.查看REGIONS表的部分数据:

SELECT*FROMREGIONS;

(5)a.查看LOCATIONS表的结构:

DESCLOCATIONS;

b.查看LOCATIONS表的部分数据:

SELECT*FROMLOCATIONS;

(6)a.查看COUNTRIES表的结构:

DESCCOUNTRIES;

b.查看COUNTRIES表的部分数据:

SELECT*FROMCOUNTRIES;

(7)a.查看JOB_JISTORY表的结构:

DESCJOB_JISTORY;

b.查看JOB_JISTORY表的部分数据:

SELECT*FROMJOB_JISTORY;

2、在HR方案中进行表的创建、修改和删除(CREATE、DROP、ALTER命令)。

创建表:

CREATETABLEMANAGER(

MANAGER_IDNUMBER2(6)NOTNULLUNIQUE,

FIRST_NAMEVARCHAR2(20),

LAST_NAMEVARCHAR2(25),

DEPT_IDVARCHAR2(10));

修改:

ALTERTABLEMANAGERADDSEXVARCHAR2

(2);

ALTERTABLEMANAGERMODIFYMANAGER_IDUNMBER(8);

删除:

ALTERTABLEMANAGERDROPUNIQUE(MANAGER_ID);

DROPTABLEMANAGER;

3.在HR方案中完成对EMPLOYEES表以及相关各表的各种查询操作(WHERE子句GROUPBY子句以及各种连接等)。

代码如下:

查询:

SELECT*FROM,,;

GROUPBY语句:

SELECTDEPARTMENT_ID,COUNT(*),AVG(SALARY)

FROMEMPLOYEES

GROUPBYROLLUP(DEPARTMENT_ID);

各种连接:

(1)简单连接:

SELECTEMPLOYEES.*,JOBS.*FROMEMPLOYEES,DEPARTMENTS;(连接EMPLOYEES和DEPARTMENTS)

(2)内链接:

SELECT,FROMEMPLOYEESINNERJOINJOBSON=

(3)自然连接:

SELECTEMPLOYEES,,,

FROMEMPLOYEESEMNATURALJOINDEPARTMENTSDEPWHERE=”SALES”

(4)外连接:

SELECT,,

FROMEMPLOYEESEMLEFTOUTERJOINDEPARTMENTSDEP

ON=DEP.DEPARTMENT

WHERE=’IT_PROG’;(左连接)

(5)自身连接:

SELECTEMPLOYEES_ID,LAST_NAME,JOB_ID

FROMEMPOYEES

ORDERBYEMPLOYEE_ID

4.在HR方案中,针对EMPLOYEES表进行数据的创建、修改和删除操作(INSERT、UPDATE、DELETE命令)。

代码如下:

INSERT:

INSERTINTOEMPLOYEESVALUES(‘2001’,’TOM’,’KING’,’SKING’,EMPLOYEES

SETSALARY=SALAY+100

WHEREJOB_ID=”IT_PROG”;(IT_PROG部门的薪水涨100$)

DELETE:

DELETEFROMEMPLOYEES

WHEREFIRST_NAME=’TOM’;(删除真名叫tom的人的信息)

第五章

一、选择题

1、下列属于OraclePL/SQL的数据类型是()。

.

2、下面不属于OraclePL/SQL的参数类型是()。

二、填空题

1、显示游标的处理包括声明游标、打开游标、提取游标和关闭游标4个步骤。

2、包有两个独立的部分:

说明部分和包体部分。

3、触发器的类型包括DML触发器、INSTENDOF触发器和系统触发器。

三、实训题

1、实现一个游标,完成对emplouees表的遍历;

SQL>createorreplaceprocedureshow_all_employees

2as

3emp_rowemployees%rowtype;

4cursoremp_curisselect*fromemployees;--声明游标

5begin

6OPENemp_cur;--打开游标

7LOOP

8FETCHemp_curINTOemp_row;--提取行

9EXITWHENemp_cur%NOTFOUND;

10('雇员ID是:

'||||'姓名是:

'||||''||;

11ENDLOOP;

12CLOSEemp_cur;--关闭游标

13end;

14/

Procedurecreated

SQL>executeshow_all_employees();

2、实现一个过程,完成对emplouees表中job_id为'IT_PROG'的员工salary的增加,增加额度为800;

createorreplaceproceduresalary_add(jobidin%type,addsin%type)

2as

3begin

4updateemployeessetSALARY=SALARY+addswhereJOB_ID=jobid;

5('emploees表中列的'||jobid||'增加的salary为'||adds);

6endsalary_add;

7/

Procedurecreated

SQL>setserverouton;

SQL>EXECUTEsalary_add('IT_PROG',800);

createorreplaceproceduresalary_add

2as

3begin

4updateemployeessetSALARY=SALARY+800whereJOB_ID=’IT_PROG’;

5('为IT_PROG增加工资800’);

6endsalary_add;

7/

Procedurecreated

SQL>setserverouton;

SQL>EXECUTEsalary_add;

3.实现一个函数,完成对EMPLOYEES表中JOB_ID为“IT_PROG的员工SALARY的增加”

createorreplacefunction

incr_emp_salary_func(inrementinnumber)returnboolean

IS

begin

updateemployeessetsalary=salary+inrementwhere

job_id='IT_PROG';

ifsql%notfoundthen

returnfalse;

endif;

returntrue;

end;

Createorreplacefunctionsal_fuc(sal_addinnumberdefault10)returnvarchar2(30)

As

begin

Updateemployeessetsalary=salary+sal_addwherejob_id=’IT_PROG’;

Return‘为IT_PROG的员工增加工资800’;

end;

/

Setserverouton;

Declare

salaryvarchar2(50);

begin

salary:

=sal_fun(800);

(salary);

end;

/

第六章

1.选择题

1.下面属于OraclePL/SQL的数据类型的是(A)

A.DATEC.DATETIME

2.下面不属于OraclePL/SQL的参数类型是(D)

A.InC.inoutD.null

2.填空题

1.显示游标的处理:

声明游标、打开游标、提取游标、关闭游标

2.包的两个独立部分:

说明部分、包体部分

3.触发器的类型包括:

DML触发器、INSTENDOF触发器、系统触发器

第七章

一、选择题

1.createuser命令中的defaulttablespace语句用于下列哪种中设置?

(A)

A、用户创建的数据库对象

B、用户创建的临时对象

C、用户创建的系统对象

D、以上都不对

2.下列哪一种不属于系统权限(A)。

A、SelectB、UpdateAnyC、CreateViewD、CreateSession

3.哪一种操作受表空间配额的限制?

(C)

A、UpdateB、DeleteC、CreateD、以上全是

二、填空题

1.数据库中的权限包括系统权限和对象权限两类。

2.Oracle数据库安全控制机制包括用户管理、权限管理、角色管理、表空间设置和配额、概要文件管理、数据库审计6个方面。

三、实训题

1.创建一个口令认证的数据库用户usera_exer,口令为usera,默认表空间为USERS,配额为10MB,初始账户为锁定状态。

createuserusera_exeridentifiledbyuseradefaulttablesspaceusersquota10monusersaccountlock;

2.创建一个口令认证的数据库用户userb_exer,口令userb。

createuseruserb_exeridentifiledbyuserb;

3.将用户usera_exer的账户解锁。

alteruserusera_exeraccountunlock;

4.为usera_exer用户授权CreateSession权限、的select权限和update权限,同时允许该用户将获取的权限授予其他用户。

grantcreatesessiontousera_exerwithoption;

grantselect,updateontousera_exerwithoption;

第八章

1.选择题

2.创建控制文件时,数据库必须:

(B.未加载)

3.以下哪一种数据字典视图显示出数据库处于ARCHIVELOG方式:

(C.V$DATABASE)

2.填空题

数据库逻辑存储结构包括:

表空间、段、区、数据块四种

数据库物理存储结构是指存储在磁盘上的物理文件,包括:

数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、跟踪文件、口令文件、警告文件、备份文件

建立2个表,一个是stuInfo(学号sno,姓名sname,年龄sage,性别smale,系编号deptNo),一个是department(系编号deptNo,系名称deptName)。

要求:

每个表有主键,stuInfo表建立外键,学生的姓名不能为空,学生的年龄要在18到50之间,学生的性别必须是男女之一,默认是男。

stuInfo表的deptNo列,要参照department表的deptNo列;

11、添加约束:

允许stuInfo中的姓名可以为空;允许stuInfo中的姓名不能重复;创建deptName_check,要求department的系名称列的内容,必须大于4个字符长度;

AltertablestuInfomodifysnamenull;

AltertablestuInfoaddconstraintssname_uniqueunique(sname);

AltertabledepartmentaddconstraintsdeptName_checkcheck(length(deptName)>4);

12、删除约束:

删除刚才建立的department表上的deptName_check约束,删除主键语句;

AltertabledepartmentdropconstraintdeptName_check;

Altertabledepartmentdropprimarykeycascade;

2、创建视图Managers_2,该视图显示出所有部门经理的信息,其中部门显示的不是部门编码,而是部门名称。

提示:

要从employees表和departments表中联合查询,连接条件是两个表中的department_id字段相同。

createviewmanagers_2asselect,,,,,,,fromemployeesemp,departmentsdepwherein(selectdistinctmanager_idfromdepartments)and=;

3.使用GROUPBY子句对薪金记录进行分组,使用SQL函数计算每个JOB_ID的平均薪金(AVG)、所有薪金的总和(SUM),以及最高薪金(MAX)和各组的行数;

Selectjob_id,sum(salary),avg(salary),max(salary),count(job_id)formemployeesgroupbyjob_id;

实现一个函数,完成对employees表中job_id为'IT_PROG'的员工salary的增加,增加额度为800,输出员工所在的部门收入的名次,增加额度作为参数传入

Createorreplacefunctionsal_fuc(sal_addinnumberdefault10)returnvarchar2(30)

As

begin

Updateemployeessetsalary=salary+sal_addwherejob_id=’IT_PROG’;

Return‘为IT_PROG的员工增加工资800’;

end;

/

Setserverouton;

Declare

salaryvarchar2(50);

begin

salary:

=sal_fun(800);

(salary);

end;

/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1