数据库复习题答案.doc
一、选择题1.在数据库系统中,把可以相互区别的客观事物称为( D )A属性 B. 字段C.文件 D.实体2.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是( B )A. 多对多 B. 一对多C. 多对一 D. 一对一3下列叙述中正确的是 ( )A、数据库是一个独立的系统,不需要操作系统的支持B、数据库设计是指设计数据库管理系统C、数据库技术的根本目标是要解决数据共享的问题D、数据库系统中,数据的物理结构必须与逻辑结构一致4下列模式中,能够给出数据库物理存储结构与物理存取方法的是 ( )A、内模式 B、外模式C、概念模式D、逻辑模式注:外模式又称子模式或用户模式,对应于用户级。模式又称概念模式或逻辑模式,对应于概念级。内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述。6要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表( )A、是同一个数据库中的两个表B、不同数据库中的两个表C、两个自由表 D、一个是数据库表另一个是自由表注:【自由表】和数据库无关联的表。5. 建立关系之间联系的主关键字与外部关键字引用的约束条件是指( )A.参照完整性B.实体完整性 (只跟主键有关,唯一,非空)C.用户自定义完整性D. 以上都不对6.在嵌入式SQL中,为了把集合操作转换成单记录处理方式,引进了以下哪个概念( B )A宿主语言 B.游标C. DDL语言 D.DML语言8.在SQL中,下列涉空值的操作,不正确的() AAGE IS NULLBAGE IS NOT NULLCAGE=NULLDNOT(AGE IS NULL)9索引字段值不唯一,应该选择的索引类型为 ( )A、主索引 唯一B、普通索引 非唯一索引C、候选索引唯一D、唯一索引 唯一9.数据库系统的特点不包括(B)A. 数据结构化B. 数据独立性高C. 数据冗余度低D. 应用程序管理数据-DBMS11.下列SQL语句中,修改表结构的是()A.MODIFY B.ALTER C.RENAME D.DELETE12.概念模型独立于()A. DBMSB.E-R图C.信息世界D.现实世界在基本的关系中,下列说法正确的是(C)A 行列顺序有关 B 属性名允许重名 C 任意两个元组不允许重复 (元组即列)D 一列数据中的元素类型可以不同24. 数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指( D )。A. 同一应用的多个程序共享一个数据集合 B. 多个用户、同一语言共享 C. 多个用户共享同一个数据文件D. 多种应用、多种语言、多个用户相互覆盖地使用数据集合28. 现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业,出生日期),它的主键是()。A.宿舍编号 B. 学号 C.宿舍地址,姓名 D.宿舍编号,学号35.有一个关系,学生(学号,姓名,系别)规定学号的值域是个数字组成的字符串,这一规则属于()A.参照完整性B.实体完整性C.用户自定义完整性D. 以上都不对39. ( )是数据库系统的核心 A.DBS B.DB C.DBMS D.DATA41. 应用数据库的主要目的是( )。 A.解决数据保密问题 B.解决数据完整性问题C.解决数据共享问题 D.解决数据量大的问题45.DBMS通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的( )。A可靠性 B一致性 C完整性 D安全性46、SQL SELECT语句为了将查询结果存放到临时表中应该使用 ( )短语Ainto cursor Binto table Cinto temp Dinto tablespace二、填空题1、关系数据库的实体完整性规则规定基本关系的( 主键 )不能取空值。2.数据的存储结构包括( 物理存储结构 )和( 逻辑存储结构 );3、关系的基本运算是(选择 )、投影和( 连接 )。4、在DBMS的授权子系统中,授权和回收权限的语句分别是( grant )和( revoke )语句。5、DBMS提供数据操纵语言对数据库的操纵功能分成两种:检索和更新。其中更新操作包括(insert)(delete)(update)。6、在SQL Select语句中要去掉查询结果中的重复记录应使用(distinct)关键字。综合题1、根据dept及emp表,查询所有部门及其员工的信息:select ename,empno,sal,dept.deptno,dname,locfrom emp_right join_scott.dept on_emp.deptno=dept.deptno_;(dept 10 20 30 40 emp 10 20 30 右外连接)根据Oracle数据库scott模式下的emp表和dept表,完成查询工资、奖金与10号部门某员工工资、奖金都相同的员工的信息:select * from emp where ( sal,nvl(comm,0) ) _in/=any_(select sal,nvl(comm,0) from emp where_deptno=10_);根据Oracle数据库scott模式下的emp表和dept表,完成将各部门员工的工资修改为该员工所在部门平均工资加1000:update emp e set sal=1000+(_avg(sal)_ from emp where deptno=e.deptno);2、设有如下三个基本表,表结构如下:BORROWER(借书证号,姓名,系名,班级)LOANS(借书证号,图书登记号,借书日期)BOOKS(索书号,书名,作者,图书登记号,出版社,价格)试用SQL语言进行查询:(1) 求图书管中总共有多少个出版社的图书SELECT_count(distinct 出版社)_FROM BOOKS(2) 检索各位学生的借书证号、姓名、系名和借书数量。Select borrower.借书证号,姓名,系名,count(*)From borrower,loans where borrower.借书证号=loans.借书证号Group by borrower.借书证号;(3) 检索作者为张三或者李四且价格在20到50之间的图书的书名、出版社和价格。Select 书名,出版社,价格From booksWhere 作者in(张三,李四)and 价格 between 20 and 50;3、假设有三个关系模式如下:学生表:S(SNO,SNAME,SEX)各属性含义依次为学号、姓名和性别;课程表:C(CNO,CNAME,CREDIT)各属性含义依次为课程号、课程名、学分;学生选课表:SC(SNO,CNO,MARK)各属性含义依次为学号、课程号和成绩。基于以上关系模式回答3639题。1. 试用SQL语句统计男生和女生的人数。Select count(*) from S group by SEX;2.试用SQL语句写出下列查询:检索出所有男生的姓名、所选课程号和成绩。Select SNAME,CNO,MARK From S,SCWhere SEX=男 and S.SNO=SC.SNO;编写一个PL/SQL块,输出10号部门所有员工的员工信息。DeclareBeginFor v_emp in(select * from emp where deptno=10) loopDbms_output.put_line(v_emp.empno| |v_emp.ename);End loop;End;创建一个存储过程,以部门号为参数,返回该部门的最低工资。Create or replace procedure min_sal(v_deptno emp.deptno%type)AsV_sal emp.sal%type;BeginSelect min(sal) into v_sal from emp where deptno=v_deptno;Dbms_output.put_line(v_sal);End;创建一个函数,以部门号为参数,返回该部门的最低工资。Create or replace function min_sal2(v_deptno emp.deptno%type)Return emp.sal%typeAs V_sal emp.sal%type;Begin Select min(sal) into v_sal from emp where deptno=v_deptno; Dbms_output.put_line(v_sal);Return v_sal;End;