Oracle习题答案(课后题)
- 格式:doc
- 大小:245.00 KB
- 文档页数:20
oracle习题汇总答案Oracle习题汇总答案在学习Oracle数据库的过程中,练习题是非常重要的一部分。
通过解答习题,我们可以更好地掌握数据库的知识和技能。
下面是一些常见的Oracle数据库习题及其答案汇总,希望能够帮助大家更好地学习和理解Oracle数据库。
1. 什么是Oracle数据库?Oracle数据库是一种关系型数据库管理系统,由美国Oracle公司开发。
它是目前世界上最流行的企业级数据库之一,被广泛应用于各种企业和组织的信息管理系统中。
2. Oracle数据库的特点有哪些?Oracle数据库具有高性能、高可用性、高安全性和可扩展性等特点。
它支持多种操作系统平台,能够处理大规模的数据,具有强大的事务处理能力和灵活的数据管理功能。
3. 如何创建一个新的数据库用户?可以使用CREATE USER语句来创建一个新的数据库用户,例如:```sqlCREATE USER new_user IDENTIFIED BY password;```4. 如何查询数据库中的表结构?可以使用DESCRIBE语句或者查询数据字典来查询数据库中的表结构,例如:```sqlDESCRIBE table_name;SELECT * FROM user_tab_columns WHERE table_name = 'table_name';```5. 如何在Oracle数据库中插入新的数据?可以使用INSERT INTO语句来插入新的数据,例如:```sqlINSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);```6. 如何更新数据库中的数据?可以使用UPDATE语句来更新数据库中的数据,例如:```sqlUPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; ```7. 如何删除数据库中的数据?可以使用DELETE FROM语句来删除数据库中的数据,例如:```sqlDELETE FROM table_name WHERE condition;```通过不断地练习和积累,我们可以更加熟练地掌握Oracle数据库的知识和技能。
Oracle数据库试题100题(附答案)1.当Oracle服务器启动时,下列哪种文件不是必须的(D)。
A.数据文件B.控制文件C.日志文件D.归档日志文件2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据(B)。
A.用户进程B.服务器进程C.日志写入进程(LGWRD.检查点进程(CKPT)3.在Oracle中,一个用户拥有的所有数据库对象统称为(B)。
A.数据库B.模式C.表空间D.实例4.在Oracle中,有一个教师表teacher的结构如下:ID NUMBER(5)NAME V ARCHAR2(25)EMAIL VARCHAR2(50)下面哪个语句显示没有Email地址的教师姓名(C)。
A.SELECT name FROM teacher WHERE email = NULL;B.SELECT name FROM teacher WHERE email NULL;C.SELECT name FROM teacher WHERE email IS NULL;D.SELECT name FROM teacher WHERE email IS NOT NULL;5.在Oracle数据库的逻辑结构中有以下组件:A 表空间B 数据块C 区D 段这些组件从大到小依次是(B)。
A.A→B→C→DB.A→D→C→BC.A→C→B→DD.D→A→C→B6.在Windows操作系统中,Oracle的(A)服务监听并接受来自客户端应用程序的连接请求。
A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle 就将(B)表空间分配给用户作为默认表空间。
oracle习题答案Oracle习题答案Oracle数据库是全球领先的企业级关系型数据库管理系统,被广泛应用于各种企业和组织中。
学习Oracle数据库管理是IT从业人员必备的技能之一,因此掌握Oracle习题答案对于提升自己的技能水平至关重要。
在学习Oracle数据库管理的过程中,经常会遇到各种习题和练习题,通过解答这些习题可以加深对Oracle数据库的理解和掌握。
下面我们就来看一些常见的Oracle习题以及它们的答案。
1. 什么是Oracle数据库?答:Oracle数据库是由美国Oracle公司开发的一款关系型数据库管理系统,它是一种高性能、可靠性强的数据库系统,被广泛应用于企业级应用中。
2. 如何创建一个新的数据库用户?答:可以使用CREATE USER语句来创建一个新的数据库用户,例如:CREATE USER new_user IDENTIFIED BY password;3. 如何查询表中的数据?答:可以使用SELECT语句来查询表中的数据,例如:SELECT * FROM table_name;4. 如何删除数据库中的数据表?答:可以使用DROP TABLE语句来删除数据库中的数据表,例如:DROP TABLE table_name;5. 如何备份Oracle数据库?答:可以使用RMAN工具来备份Oracle数据库,例如:RMAN> BACKUP DATABASE;通过解答这些习题,我们可以加深对Oracle数据库管理的理解和掌握,提升自己的技能水平。
希望以上Oracle习题答案对大家有所帮助,也希望大家在学习Oracle数据库管理的过程中能够不断提升自己的技能,成为一名优秀的数据库管理人员。
练习62.实训题(2)Create table exer_class(CNO number(2) primary key,CNAME varchar2(20),NUM number(3));Create table exer_student(SNO number(4) primary key,SNAME varchar2(10) unique,SAGE number,SEX char(2),CNO number(2));(3)Alter table exer_student add constraint ck_sage check (sage>0 and sage<=100);(4)Alter table exer_student add constraint ck_stu check(sex='M' or sex='F') modify sex default 'M';(5)Create unique index ind_cname on exer_class(cname);(6)Create view stu_class_view (e_sno,e_sname,e_cno,e_cname) ASselect sno,sname,cno,cnameFrom exer_student;(7)Create sequence exer_student_seqstart with 100000001nocyclenocache;(8)Create table exer_student_range(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by range(sage)(partition part1 values less than(20) tablespace example,partition part2 values less than(30) tablespace orcltbs1,partition part3 values less than(maxvalue) tablespace orcltbs2);(9)Create table exer_student_list(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by list(sex)(partition man values('M') tablespace orcltbs1,partition woman values('F') tablespace orcltbs2);(10)题目修改为“为exer_student_range表的SAGE列上创建本地分区索引。
第一章一选择题D D C A D D B二填空题1 视图2 索引3 簇4 DB_Block_size5 system6 数据文件日志文件控制文件7系统全局区SGA 程序全局区PGA三简答题1 P3——P52 P7——P83 P94 P13第二章一选择题B D B二填空题1 orcl2 oracle_sid3 OracleOraDb10g_home1TNSListener第三章一选择题D B B二填空题1 emctl start dbconsole2 主目录性能管理维护3 Oracle Net4 v$database第四章一选择题D C C A二填空题1 shutdown immediate2 startup force3 alter database4 spfile5 db_block_size6 alter system set7 数据库管理员安全官员网络管理员应用程序开发员应用程序管理员数据库用户三操作题4 P635 P65第五章一选择题B C D二填空题1 v$tablespace2 create tablespace3 bigfile4 alter tablespace5 offline6 alter logfile member2 P75——P763 P764 P77——P785 P816 P83第六章一选择题B A A B D二填空题1 grant2 v$pwfile_users3 create user4 password expire5 account lock6 alter role三操作题3 P95第七章一选择题B BC C二填空题1 primary key2 rename column…to3 where4 like5 inner join三操作题2 create table departments(depid number primary key,Depname varchar2(40) not null,Descr varchar(400),Upperid number check(upperid>0));注意:书上的desc是保留字,不能作为表名。
oracle的习题及答案1. 如何启动实例、如何装载数据库,如何打开数据库。
Startup nomount alter database mount alter database openStartup mountStartup2. 如何禁止用户的操作系统认证修改SQLNET.ora nts为none3. 如何控制用户不可以远程登陆。
Alter system set remote_login_passwordfile=noneScope=spfile;4. sys/sias@orcl as sysdba 中orcl的解析这里将用到sqlnet.ora文件,如果names.directory_path=(tnsnames,hostname),客户端首先会在tnsnames.ora文件中找到orcl的记录,如果没有相应的记录则尝试把orcl当做一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip,如果解析路径中没有hostname,客户端就只从tnsnames.ora查找orcl的记录。
5. 修改服务器端orcl 的监听端口。
可以用net manager修改或直接修改参数文件6. 创建密码文件。
host orapwd file=e:\orapwd.ora Password=nzg entries=30;7. 怎么样从spfile生成pfileCreate pfile=’d:\pfileorcl.ora’ from spfile;Create spfile=’e:\spfileorcl.or a’ from pfile=’d:\pfileorcl.ora’;8. 通过参数文件查看控制文件的位置Show parameter control_file; select name from v$controlfile;(在例程连接数据库后Mount可执行)。
可通过以下几个动态数据字典视图中获得有关控制文件的信息V$controlfile v$database V$controlfile_record_sectionSelect name from v$database; 显示数据库名称。
第1章Oracle安装配置1.Oracle服务端安装好之后,在命令提示符下,利用echo %Path%命令查看此时的系统变量Path。
在Windows系统中,单击【开始】|【运行】,并键入“cmd”,如下图所示:单击【确定】按钮,将进入Windows命令提示符,如下图所示:键入echo %path%,并按下回车键,将显示此时变量path的值,如下图所示:2.利用java –version命令,查看此时java环境的版本,以确认是否为Oracle安装时自带的Java 文件。
在Windows的【Command】窗口中执行java –version命令,将看到本机Java环境的版本,如下图所示:3.Oracle数据库服务器安装之后,在硬盘上搜寻名为oradata的文件夹。
其中包含了所有数据库的物理文件,查看已有数据库的子文件夹及文件。
一个数据库的典型文件包括:后缀为CTL的控制文件;后缀为LOG的重做日志;后缀为DBF的数据文件。
第2章Oracle常用工具1.有时无法连接数据库,是由于多次安装了服务端/客户端,而导致客户端软件寻找TNS配置文件时,混淆了当前有效的路径。
此时,可以利用将DNS描述直接作为参数传递给客户端软件的方式来登录数据库,从而不再使用TNS配置文件。
尝试利用数据库ORCL的TNS描述直接登录数据库。
利用sqlplus+TNS配置登录数据库的命令如下所示:sqlplussys/abc123@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.16.5)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl))) as sysdba 登录成功的界面如下所示:2.EZConnect是EasyConnect的简称。
利用EZConnect可以在客户端以IP+SID的方式登录数据。
ORACLE 10g 课后参考答案(答案仅供参考)第一章ORACLE 10g简介一、选择题1.下面不属于ORACLE 10g产品系列的是(D)A.Oracle数据库10g标准版1B.Oracle数据库10g标准版C.Oracle数据库10g企业版D.Oracle数据库10g网络版2.ORACLE 10g中的g表示(D)A.版本B.网络C.数据库D.网格计算3.下面关于ORACLE 10g数据库逻辑结构的描述错误的是(C)A.数据库由若干个表空间组成B.表空间由表组成C.表由数据块组成D.段由区间组成4.ORACLE管理数据库存储空间的最小存储单位是(A)A.数据块B.表空间C.表D.区间5.ORACLE分配磁盘空间的最小单位是(D)A.数据块B.表空间C.表D.区间6.下列不属于ORACLE表空间的是(D)A.大文件表空间B.系统表空间C.撤销表空间D.网格表空间7.当数据库服务器上的一个数据库启动时,ORACLE将分配一块内存区间,叫做系统全局区,英文缩写为(B)A.VGAB.SGAC.PGAD.GLOBAL二、填空题1.__视图__ 是虚拟的表,它在物理上并不存在。
可以把它看成是一个存储的查询。
2.创建___索引__可以提高读取数据的效率。
它的功能类似于书的目录,读者可以通过目录很快的在书中找到需要的内容。
3.有些表共享公共的列,并经常被同时访问,为了提高数据存取效率,把这些表在物理上存储在一起,得到的表的组合就是____簇____。
4.一个数据块对应磁盘上的一定数量的数据库空间,标准的数据块大小由初始参数(DB_BLOCK_SIZE )指定。
5.每个数据库都至少有一个系统表空间,被称为__SYSTEM_表空间。
6.每个ORACLE数据库都由3种类型的文件组成:数据文件、日志文件、控制文件。
7.ORACLE有两种内存结构,即_系统全局区_和_程序全局区_。
三、简答题1.简述ORACLE数据库逻辑结构中各要素之间的关系。
第一章一、选择题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 Z间的通信,通常与操作系统协调完成。
2.思考关系规范化的过程。
答:对于存在数据兀余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。
3.思考数据库设计的步骤。
答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。
第二章一、选择题1、Oracle llg不具备的版本是(C)A.个人版B.标准版C.扩展板D.企业版2、oracle数据库的数据字典不能做的工作有(B)A.查找oracle数据库用户信息B.查找oracle数据库表中的信息C.查找oracl e数据库模式对象的信息D.查找oracle数据库存储结构的信息二、填空题1、Oracle体系结构由内存结构、进程结构和存储结构组成。
o r a c l e练习题及答案(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--试题一一、填空题(每小题4分,共20分)1、数据库管理技术经历了___人工管理、文件系统、数据库系统__三个阶段2、数据库三级数据结构是:外模式、模式、内模式3、Oracle数据库中,SGA由_数据库缓冲区,重做日志缓冲区,共享池组成4、在Oracle数据库中,完正性约束类型有:Primay key约束。
Foreign key约束,Unique约束,check约束,not need约束5、PL/SQL中游标操作包括:声明游标,打开游标,提取游标,关闭游标二、正误判断题(每小题2分,共20分)1、数据库中存储的基本对象是数据(T)2、数据库系统的核心是DBMS(T)3、关系操作的特点是集合操作(T)4、关系代数中五种基本运算是并、差、选择、投影、连接(F)5、Oracle进程就是服务器进程(F)6、oraclet系统中SGA所有用户进程和服务器进程所共享(T)7、oracle数据库系统中数据块的大小与操作系统有关(T)8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例(T)9、PL/SQL中游标的数据是可以改变的(F)10、数据库概念模型主要用于数据库概念结构设计(T)三、简答题(每小题7分,共35分)1、何谓数据与程序的逻辑独立性和物理独立性2、试述关系代数中等值连接与自然连接的区别与联系3、何谓数据库,数据库设计一般分为哪些阶段4、简述Oracle逻辑数据库的组成5、试任举一例说明游标的使用方法五、设有雇员表emp(empno,ename,age,sal,tel,deptno),其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话deptno-----部门号。
请按下列要求分别晨SQL*PLUS下编程。
1.1跟我学Oracle从入门到精通培训教程——Oracle课程的课后作业及答案1.1.1课后作业1及答案1、按照如下的要求设计一个数据库中的三个数据库表结构及定义每个数据库表的完整性要求(最好在Oracle和MySQL中同时实现)(1)Student学生数据库表的结构Student(Sno,Sname,Ssex,Sage,Sdept),其中属性Sno、Sname、Ssex、Sage 和Sdept分别表示学号、姓名、性别、年龄和所在系。
该Student数据库表的完整性要求如下:Sno为主键Sname不为空Ssex只能为“男”或者“女”Sage只能在15-35岁之间Sdept的默认值为软件学院(2)Course课程信息数据库表的结构Course(Cno,Cname,Cpno,Ccredit),其中属性Cno、Cname、Cpno和Ccredit 分别表示课程号、课程名、先修课号和学分。
该Course数据库表的完整性要求如下:Cno为主键Cname不为空Cpno 不为空,并且只能在1—10之间Ccredit不为空,并且只能是1、2、4三种可能的值(3)CourseResult学生选课结果信息数据库表结构CourseResult(Sno,Cno,Grade),其中属性Sno、Cno和Grade分别表示学号、课程号和成绩。
该CourseResult数据库表的完整性要求如下:主键为复合主键(Sno,Cno),不能为空值Grade为百分制成绩(0---100之间)2、对上面的Student、Course和CourseResult三个数据库表按照如下的要求设计出相关的查询SQL语句(高级部分,其中需要用到明天学习的内容,可以提前预习)(1)查询每个学生(姓名)选了哪门课(课程名)得了多少分?(2)查询计算机系中男生、女生分别多少人?(3)查询选修人数在三人(包括三人)的课程(4)查询哪个学生没有选课?(使用not in、not exists以及外关联三种方法)--创建学生表create table student(sno number primary key,sname varchar(20) ,ssex char(2) check(ssex in('男','女')),sage number(3) check(sage>18 and sage<120),sdept varchar(20));drop table student; --删除学生表--创建课程表create table course(cno number primary key ,cname varchar(20),cpno number,ccredit number(2) check(ccredit>0 and ccredit<5));drop table course; --删除课程表--创建学生选课表create table CourseResult (sno number references student(sno),cno number references course(cno),grade number(3) check(grade >0 and grade <101),primary key(sno,cno)--复合组键);drop table CourseResult; --删除学生选课表--添加信息insert into student(sno,sname,ssex,sage,sdept) values(0903100216,'李闯','男',23,'计算机系'); insert into student(sno,sname,ssex,sage,sdept) values(0903100206,'张三','女',24,'商贸旅游系'); insert into student(sno,sname,ssex,sage,sdept) values(0903100222,'王五','男',24,'机械系'); insert into student(sno,sname,ssex,sage,sdept) values(0903100221,'武大','男',24,'外语系'); insert into student(sno,sname,ssex,sage,sdept) values(0903100220,'孙悟空','男',24,'工商系'); insert into student(sno,sname,ssex,sage,sdept) values(0903100219,'猪八戒','女',22,'外语系'); insert into student(sno,sname,ssex,sage,sdept) values(0903100218,'沙僧','女',28,'电气系'); insert into course(cno,cname,cpno,ccredit) values(001,'java高级编程',10086,2);insert into course(cno,cname,cpno,ccredit) values(002,'旅游英语',10010,2);insert into course(cno,cname,cpno,ccredit) values(003,'自动化',11000,2);insert into course(cno,cname,cpno,ccredit) values(004,'数控机床',11110,2);insert into CourseResult (sno,cno,grade) values(0903100216,001,90);insert into CourseResult (sno,cno,grade) values(0903100206,002,70);insert into CourseResult (sno,cno,grade) values(0903100222,003,80);insert into CourseResult (sno,cno,grade) values(0903100221,003,50);insert into CourseResult (sno,cno,grade) values(0903100220,003,60);--查询信息select * from student ;select * from course ;select * from CourseResult;--查询每个学生选了哪门课得了多少分(1)应用内连接实现select student.sname,ame, CourseResult.grade fromstudent inner join CourseResult on student.sno=CourseResult.snoinner join course on o=o;(2)应用左外连接实现select student.sname,ame, CourseResult.grade fromstudent left join CourseResult on student.sno=CourseResult.snoleft join course on o=o;--查询选修人数在三人(包括三人)的课程select cname from course wherecno in(select cno from CourseResult group by(cno) having count(sno)>=3);--查询计算机系中的男生、女生分别多少人(1)不采用分组实现select count(ssex) from student where ssex='男';select count(ssex) from student where ssex='女';(2)采用分组实现,并应用having条件select count(*) from student group by ssex,sdept having sdept='计算机系';(3)采用分组实现,并应用where条件select count(*) from student where sdept='计算机系'group by ssex;--查询哪个学生没有选课select * from student where sno not in (select CourseResult.sno from CourseResult);select * from student where not exists (select CourseResult.sno from CourseResult);1.1.2课后作业2及答案1、已知客户表customer的结构为(customerID、name、address)、登陆流水表loginLanding 的结构为(id、customerID、time)、购物流水表shopLanding的结构为(id、customerID、time、productid、productnum)(1)获得每个客户的最新登陆时间time、姓名name和客户customerID等信息(2)采用一条SQL语句实现查最新登陆并且已经购买商品的客户的customerID和name、登陆的时间time等信息create table customer(customerid number primary key not null,name varchar(20) ,address varchar(20));create table loginlanding(id number primary key not null,customerid number references customer(customerid),time date default sysdate);create table shoplanding(id number references loginlanding(id),customerid number references customer(customerid),time date default sysdate,productid number ,productnum number,primary key (productid));insert into customer (customerid,name,address) values(001,'张三','河北省');insert into customer (customerid,name,address) values(002,'李四','河北省');insert into customer (customerid,name,address) values(003,'王五','北京市');insert into customer (customerid,name,address) values(004,'赵六','河南省');insert into customer (customerid,name,address) values(005,'李大伟','湖南省'); select * from customer;insert into loginlanding (id,customerid,time) values(9001,001,sysdate);insert into loginlanding (id,customerid,time) values(9002,002,sysdate);insert into loginlanding (id,customerid,time) values(9003,003,sysdate);insert into loginlanding (id,customerid,time) values(9004,004,sysdate);select * from loginlanding;insert into shoplanding (id,customerid,time,productid,productnum)values(9001,001,sysdate,1001,20);insert into shoplanding (id,customerid,time,productid,productnum)values(9002,002,sysdate,1002,50);insert into shoplanding (id,customerid,time,productid,productnum)values(9003,003,sysdate,1003,100);select * from shoplanding;(1)获得每个客户的每次登陆时间time、姓名name和客户customerID等信息select customer.customerid,,loginlanding.timefrom customer inner join loginlandingon customer.customerid = loginlanding.customerid;(2)获得每个客户的最新登陆时间time、姓名name和客户customerID等信息select customer.customerid,,max(loginlanding.time)from customer inner join loginlandingon customer.customerid = loginlanding.customeridgroup by customer.customerid,;(3)获得所有客户的登录状况信息(已登录或者没有登录过系统)select customer.customerid,,max(loginlanding.time)from customer left outer join loginlandingon customer.customerid = loginlanding.customeridgroup by customer.customerid,;selectshoplanding.customerid,shoplanding.productid,shoplanding.productnum,,customer.a ddress,loginlanding.time fromcustomer inner join loginlanding on customer.customerid=loginlanding.customeridinner join shoplanding on shoplanding.customerid=customer.customerid;1.1.3课后作业3及答案1、现有如下的数据库表1)员工信息表employees中主要有employee_id(员工编号)、last_name(姓名)、job_id(职位)、yearSalary(年薪)、department_id(部门编号)等字段;2)职位信息表jobs中主要有job_id(职位)、job_title(职位全称)、grade_id(工资级别编号)等字段;3)工资级别表salgrades中主要有grade_id(工资级别编号)、grade_level(工资级别)、lowest_salary(最低工资)、highest_salary(最高工资)等字段;4)部门信息表departments中主要包括有department_id(部门编号)、department_name(部门名称)、location_id(位置编号)等字段;(1)试创建视图v_emp_80,包含80号部门的员工编号,姓名,年薪列。
.1.6 习题一.填空题1、关系模型提供了 3 类完整性规则,分别是_______、 _______、 _______。
参考答案:实体完整性规则、参照完整性规则、用户定义的完整性规则2、 RDBMS 由两部分组成,即_______、 _______两部分。
答案:数据库系统内核、数据字典3、关系数据库模型支持三种类型的表关联关系:_______、 _______、 _______。
答案:一对一、一对多以及多对多4、数据模型的种类有很多,例如_______、 _______、 _______和 _______等。
目前理论最成熟、使用最普及的是_______。
答案:层次模型、网状模型、关系数据模型、面向对象模型。
关系数据模型二、选择题1、 Oracle 11g 版本号中字母“g”的含义是()A .产品类型的“代”( generation)B.网格 (gridding)C.集成( integration )D.无含义答案: A2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()A .关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案: A3、消除了部分函数依赖的1NF 的关系模式必定是()A . 1NFB . 2NF C. 3NF D.4NF答案: B4、当 B 属于函数依赖于 A 属性时,属性 B 与 A 的联系是()A .1 对多B.多对1 C.多对多D.以上都不是答案:B5、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。
下面“部门”关系中,因哪个属性而使它不满足第一范式?部门(部门号,部门名,部门成员,部门总经理)A .部门总经理B.部门成员C.部门名D.部门号答案: B6、下列不属于Oracle 数据库数据类型的是()A . NUMBER B. FLOAT C. CLOB D. BOOLEAN答案: D三、简答题1、简述数据库与数据库管理系统的区别。
参考答案:数据库是用来存储信息或数据的机制,是按照数据结构来组织、存储和管理数据的仓库。
第二章一、填空题1. Oracle 数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、丨I 志文件、 控制文件。
(另外还包含一些参数文件)2. 用户对数据库的操作如果产生口志信息、则该LI 志信息首先被存储在LL 忐缓冲区中,随后 由LGWR 进程保存到口志文件。
3. 一个表空间物理上对应一个或多个数据文件。
4. 在Oracle 的逻辑存储结构屮,根据存储数据的类型,可以将段分为数据段、索引段、冋 退段、LOB 段和临时段。
5. 在Oracle 的逻辑存储结构屮,数据块是最小的1/0单元。
6. 在多进程Oracle 实例系统中,进程分为用户进程、示台进程和服务器进穆。
当一个用户 运行应用程序,如PRO*C 程序或一个Oracle T 具(如SQL*Plus ),系统将为用户运行的应 用程序建立一个用户进程。
二、选择题1•下列选项中,哪一部分不是Oracle 实例的组成部分? CA. 系统全局区SGAB. PMON 后台进程C.控制文件2. 在全局存储区SGA 屮,哪部分内存区域是循环使用的? BA. 数据缓冲区B. U 志缓冲区C.共享池3. 解析后的SQL 语句在SGA 的哪个区域屮进行缓存? CA. 数据缓冲区B. 口志缓冲区C.共享池4. 如果一个服务进程非正常终止,Oracle 系统将使用下列哪一个进程来释放它所占川的资 源? DA. DBWRB. LGWRC. SMOND. PMON 5. 如果服务器进稈无法在数据缓冲区屮找到空闲缓存块,以添加从数据文件屮读取的数据 块,则将启动如下哪一个进程? DA. CKPTB. SMONC. LGWRD. DBWR 6. 下列关于共享服务器模式的叙述哪一项不正确? AA. 在共享服务器操作模式下,毎一个用户进程必须对应一个服务器进程B. 一个数据库实例可以启动多个调度进程C. 在共享服务器操作模式下,Oracle 实例将启动调度进^.Dnnn 为用户进稈分配服务进稈D. 共享服务器操作模式可以实现少量服务器进程为大量用户进程提供服务7. 当数据库运行在归档模式下时,如果发生口志切换,为了保证不覆盖旧的I 」志信息,系统 将启动如下哪一个进程? DA. DBWRB. LGWRC. SMOND. ARCH 8. 下列哪一个进程和数据库部件可以保证用户对数据库所做的修改在没有保存的情况下,不 会发生丢失修改数据? CA. DBWR 和数据文件B. LGWR 和日志文件组C. CKPT 和控制文件D. ARCH 和归档丨I 志文件 D. Dnnn 调度进程 D.大池 D.大池9.下列哪一个进稈用于将修改过的数据从内存保存到磁盘数据文件屮? AA. DBWRB. LGWRC. RECOD. ARCH10.如果要查询数据库屮所有表的信息,应当使用下列哪种数据字典视图? A11.下列哪一项是Oracle数据库屮最小的存储分配单元? DA.表空间B.段C.盘区D.数据块12.下面的各项屮哪一个正确描述了Oracle数据库的逻辑存储结构? AA.表空间由段组成,段由盘区组成,盘区由数据块组成B段由表空间纟R成,表空间由盘区纟R成,盘区由数据块组成C.盘区由数据块组成,数据块由段组成,段由表空间组成D.数据块由段组成,段由盘区组成,盘区由表空间组成第三章一、填空题1.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)o2.在需要滤除杏询结果屮重复的行时,必须使用关键字Distinct;在需要返I叫杳询结果中的所有行时,可以使用关键字沁1。
1.查询工资大于12000的员工姓名和工资Select last_name||' '||first_name,salary from employees where salary >12000;2.查询员工号为176的员工的姓名和部门号Select last_name||' '||first_name,department_id from employees where employee_id=176;3.选择工资不在5000到12000的员工的姓名和工资Select last_name||' '||first_name,salary from employees where salary not between 5000 and 12000;4.选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间Select last_name||' '||first_name,job_id,hire_date from employees where hire_date between '1-2月-98' and '1-5月-98';5.选择在20或50号部门工作的员工姓名和部门号Select last_name||' '||first_name,department_id from employees where department_id in (20,50);6.选择在1994年雇用的员工的姓名和雇用时间Select last_name||' '||first_name,hire_date from employees where hire_date like '%94';7.选择公司中没有管理者的员工姓名及job_idSelect last_name||' '||first_name,job_id from employees where Manger_id is null;8.选择公司中有奖金的员工姓名,工资和奖金Select last_name||' '||first_name,salary,commission_pct from employees where commission_pct is not null;9.选择员工姓名的第三个字母是a的员工姓名Select last_name||' '||first_name from employees where last_name||' '||first_name like '___a%';10.选择姓名中有字母a和e的员工姓名Select last_name||' '||first_name from employees where last_name||first_name like '%a%e%' or last_name||first_name like '%e%a%';多表查询11.显示所有员工的姓名,部门号和部门名称。
Oracle课后答案岳国华1.(1)关系型数据库管理系统,简称RDBMS。
是在E.F.Codd 博士发表的论文《大规模共享数据银行的关系型模型》基础上设计出来的。
它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。
RDBMS 是SQL的基础,同样也是所有现代数据库系统的基础。
(2)在关系型数据库中,标准二维表是基本的数据存储单元,里边存储了实体的属性和实体间的关系。
2.关系型数据库中,表与表之间包括的三种关系是:一对一、一对多和多对多。
(1)一对一:有两个表,表A和表B。
表A中的一条记录在表B 中有一条记录与之对应。
反过来,表B中的一条记录在表A中也仅有一条记录与之对应。
(2)一对多:有两个表,表A和表B。
表A中的一条记录在表B中有多条记录与之对应。
反过来,表B中的一条记录在表A中仅有一条记录与之对应。
(3)多对多:有两个表,表A和表B。
表A中的一条记录在表B中有多条记录与之对应。
反过来,表B中的一条记录在表A中也有多条记录与之对应。
3. Oracle 10g提供了四个版本,分别是:Oracle 10g标准版1、Oracle10g 标准版、Oracle 10g 企业版、Oracle 10g个人版。
4.(1)客户机/服务器结构:简称CIS结构,是软件系统的一种体系结构。
数据库和数据库管理系统运行在服务器端,各种 Oracle 管理工具运行在客户机上,二者通过SQL*NET进行通信。
(2)浏览器/服务器结构:简称BS结构,是随着Web技术兴起后的一种新型软件系统结构。
它通常分为三层:数据库服务器,用来存储和管理数据库;应用程序服务器,与数据库服务器进行交互完成各种数据处理工作;客户端浏览器,与应用程序服务器进行交互,负责提交数据处理请求并获得和显示结果。
5.(1) SYS:该用户被默认创建并授予DBA角色,它是Oracle数据库中权限最大的管理员账号。
数据库中所有数据字典的基本表和视图都被存储在SYS 的方案中,这些基本表和视图对于Oracle数据库的操作非常重要。
第1章案例数据库设计【简答题】1.简要说明数据库设计的基本流程,并结合实例说明数据库设计各阶段的主要任务。
数据库设计的基本流程:按照规范的设计方法,将数据库设计分为六个阶段:(1)需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)物理结构设计;(5)数据库实施;(6)数据库的运行和维护。
需要说明的是,数据库设计还包含了应用系统的设计过程。
每个阶段的主要任务是:(1)需求分析:通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户需求,确定新系统的功能。
(2)概念结构设计:应用E-R模型真实地反映现实世界,包括事物和相互之间的了解,能满足用户对数据的处理要求,是现实世界的一个真实模型;易于理解、易于更改、易于向关系、网状、层次等各种数据模型转换。
概念结构设计有以下四种方法:①自顶向下;②自底向上;③逐步扩张;④混合策略。
(3)逻辑结构设计:逻辑结构设计的目的是把概念设计阶段的基本E—R图转换成与选用的具体机器上DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。
逻辑结构设计有如下三个步骤:①将概念模型(E—R图)转换为一般的关系、网状、层次模型;②将关系、网状、层次模型向特定的DBMS支持下的数据模型转换;③对数据模型进行优化。
(4)物理结构设计:对于一个给定的逻辑数据模式选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。
(5)数据库实施:建立实际数据库结构;试运行;装入数据;同时进行数据库的重新组织设计;故障恢复方案设计;安全性考虑;事务控制;(6)数据库的运行和维护:数据库的日常维护(安全性、完整性控制,数据库的转储和恢复);性能的监督、分析与改进;扩充新功能;修改错误。
2.依据你对数据库管理员和程序员职业岗位的了解,说明这两个岗位对数据库知识和能力的需求。
要求学生通过前程无忧(bbb://aaa51jobaaa)等人才招聘网站进行了解。
/zhenyulu/articles/330494.html第一章略第二章5、已知一个关系数据库的模式如下:S (SNO,SNAME,SCITY)P (PNO,PNAME,COLOR,WEIGHT)J (JNO,JNAME,JCITY)SPJ (SNO,PNO,JNO,QTY)供应商S由供应商代码SNO、供应商姓名SNAME、供应商所在城市SCITY组成;零件P由零件代码PNO、零件名PNAME、颜色COLOR、重量WEIGHT组成;工程项目J由工程项目代码JNO、工程项目名JNAME、和所在城市JCITY组成;供应情况SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY组成。
用关系代数表达式表示下面的查询要求:(1)求供应工程J1零件的供应商代码SNO(2)求供应工程J1零件P1的供应上代码SNO(3)求供应工程J1零件为红色的供应商代码SNO(4)求没有使用天津供应商生产的红色零件的工程项目代码JNO(5)求至少用了供应商S1所供应的全部零件的工程项目代码JNO答:(1)))(('1'SPJ J JNO SNO =σπ (2)))(('1''1'SPJ P PNO J JNO SNO =∧=σπ (3)))(('''1'SPJ P CO LO R J JNO SNO 红色=∧=σπ(4)))()(()(''''P SPJ S J CO LO R CITY JNO JNO 红色天津==-σσππ (5)))(()('1',SPJ SPJ S SNO PNO JNO PNO =÷σππ第三章22.建立一个关于系、学生、班级、学会等诸信息的关系数据库。
学生:学号、姓名、出生年月、系名、班号、宿舍区。
班级:班号、专业名、系名、人数、入校年份。
系:系名、系号、系办公地点、人数。
学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系模式的候选码、外部码,有没有全码存在?解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Sloc)班级:C(Class,Major,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:P(Pname,Pyear,Paddr,Pnum)学生--学会SP(Sno,Pname,SPyear)(2)每个关系模式的最小函数依赖集如下:(a)、学生S (Sno,Sname,Sbirth,Dept,Class,Sloc) 的最小函数依赖集如下:Sno→Sname,Sno→Sbirth,Sno→Class,Class→Dept,Dept→Sloc传递依赖如下:由于Sno→Class,Class → Sno,Class→Dept所以Sno与Dept之间存在着传递函数依赖。
由于Sno→Dept,Dept → Sno,Dept→Sloc所以Sno与Sloc之间存在着传递函数依赖。
由于Class→Dept,Dept → Class,Dept→Sloc所以Class与Sloc之间存在着传递函数依赖。
(b)、班级C(Class,Major,Dept,Cnum,Cyear)的最小函数依赖集如下:Class→Major,Class→Cnum,Class→Cyear,Major →Dept,(Major,Cyear)→Class由于Class→ Major,Major →Class,Major →Dept所以Class与Dept之间存在着传递函数依赖。
(c)、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:Dept→Dno,Dno→Dept,Dno→Office,Dno→Dnum根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。
(d)、学会P(Pname,Pyear,Paddr,Pnum)的最小函数依赖集如下:Pname→Pyear,Pname→Paddr,Pname→Pnum该模式不存在传递依赖。
(e)、学生--学会SP的最小函数依赖集如下:(Sno,Pname)→SPyear(3)各关系模式的候选码、外部码,全码如下:A、学生S候选码:Sno;外部码:Dept、Class;无全码B、班级C候选码:Class和(Major,Cyear);外部码:Dept;无全码C、系D候选码:Dept或Dno;无外部码;无全码D、学会P候选码:Pname;无外部码;无全码学生--学会SP候选码:(Sno,Pname)外部码:Sno,Pname;无全码23 .试由amstrong 公理系统推导出下面三条推理规则:(1)合并规则:若X→Z,X→Y,则有X→YZ(2)伪传递规则:由X→Y,WY→Z有XW→Z(3)分解规则:X→Y,Z 包含于Y,有X→Z证明:(1)已知X→Z,由增广律知XY→YZ,又因为X→Y,可得XX →XY→YZ,最后根据传递律得X→YZ。
(2)已知X→Y,据增广律得XW→WY,因为WY→Z,所以XW→WY→Z,通过传递律可知XW→Z。
(3)已知Z 包含于Y,根据自反律知Y→Z,又因为X→Y,所以由传递律可得X→Z。
第四章5.请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。
select ename,job,sal from emp where sal<2000 order by sal desc;6.请从表中查询工作是CLERK的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。
select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=’CLERK’;7.查询表EMP中所有的工资大于等于2000的雇员姓名和他的经理的名字。
select a.ename,b.ename from emp a,emp b wherea.mgr=b.empno and a.sal>=2000;8.在表EMP中查询所有工资高于JONES的所有雇员姓名、工作和工资。
select ename,job,sal from emp where sal>(select sal from emp where ename=’JONES’);9.列出没有对应部门表信息的所有雇员的姓名、工作以及部门号。
select ename,job,deptno from emp where deptno not in (select deptno from dept);10.查找工资在1000~3000之间的雇员所在部门的所有人员信息select * from emp where deptno in (select distinct deptno from emp where sal between 1000 and 3000);11.查询列出来公司就职时间超过24年的员工名单select ename from emp wherehiredate<=add_months(sysdate,-288);12.查询显示每个雇员加入公司的准确时间,按××××年××月××日时分秒显示。
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;13.查询所有81年7月1日以前来的员工姓名、工资、所属部门的名字select ename,sal,dname from emp,dept whereemp.deptno=dept.deptno andhiredate<=to_date(‘1981-07-01’,’yyyy-mm-dd’);14.查询公司中按年份月份统计各地的录用职工数量select to_char(hiredate,'yyyy-mm'),loc,count(*) from emp,dept where emp.deptno=dept.deptnogroup by to_char(hiredate,'yyyy-mm'),loc;15.查询部门平均工资最高的部门名称和最低的部门名称select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) ) where rownum<=1)union all select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order byavg(sal) desc ) where rownum<=1);第五章5.对每一个雇员,显示 employee_id、last_name、salary 和 salary 增加 15%,并且表示成整数,列标签显示为 New_SalarySELECT employee_id, last_name, salary,ROUND(salary * 1.15, 0) "New Salary"FROM employees;6. 写一个查询用首字母大写,其它字母小写显示雇员的last_names,显示名字的长度,对所有名字开始字母是J、A 或M 的雇员,给每列一个适当的标签。
用雇员的last_names 排序结果。
SELECT INITCAP(last_name) "Name",LENGTH(last_name) "Length"FROM employeesWHERE last_name LIKE 'J%'OR last_name LIKE 'M%'OR last_name LIKE 'A%'ORDER BY last_name;7.对每一个雇员,显示其last_name,并计算从雇员受雇日期到今天的月数,列标签MONTHS_WORKED。