√ C 高效性。查询视图比直接查询表的效率要高
D 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立 31
下列关于存储过程的说法中错误的是______。 √ A 使用存储过程更加面向对象
B 使用存储过程能够实现较快的执行速度 C 使用存储过程能够减少网络流量 D 使用存储过程可加强数据安全性 32
下列语句的输出结果为______. declare
vvv number := 3; begin
if vvv is null then vvv := 3;
elsif vvv = 3 then vvv := null;
elsif vvv is not null then vvv := 2; end if;
dbms_output.put_line(nvl(vvv, 1)); end; A 3 B 2 √ C 1
D 无输出 33
SQL语言进行查询的主要语句是______。 A DECLARE B SET
C UPDATE √ D SELECT 34
下面描述错误的是:
SQL语言按照功能可以分为____。
A 数据查询语言DQL(Data query language):查询数据。
B 数据定义语言DDL(Data definition language):建立、删除和修改数据对象。
C 数据操纵语言DML(Data manipulation languge):完成数据操作的命令,包括查询。 √ D 数据异常语言DEL(Data exception languge):控制对数据库的异常处理
35
关于选择索引字段的原则错误的是_______。
√ A 为加快查询,可以考虑在所有字段上创建索引 B 不要在经常被修改的字段上建索引
C 选择在WHERE子句中最频繁使用的字段 D 可以考虑在外键字段上建索引 36 对查询语句SQL> select substr('130403721212',3,5) from dual; 返回结果是答案: 04037 37 在Oracle数据库中,完整性约束类型有束,check约束。 答案: Primary (key) 或主键 Foreign (key)或外键 约束、约束,Unique约38 在Oracle中发出的下列查询:SQL> select months_between(?15-MAR-83?,?15-MAR-97?) form dual;Oracle返回答案: 168 39 Oracle中,进行逻辑备份与恢复时使用的导出命令是。 答案: EXP IMP ;导入命令是40 SQL中的名称可由字母、 答案: 下划线 数字 或组成,长度小于32。 41 存在员工表employee,其数字型字段salary表示工资,现需使用SQL将工资大于等于5000的员工工资提高10%,请补齐此SQL。=42 SQL查询语句中使用排序功能后ASC代表进行升序,DESC代表进行(认使用()排序。 ),默 where salary5000。 employee salary 答案: update set salary*1.1 >= 答案: 降序 升序(ASC) 43 当前流行的数据库的数据模型有四种,即层次模型、网状模型、答案: 关系模型 面向对象模型 、。 44 2NF的缺点包括45 取余函数是天的函数是,取字符串长度的函数是,将字符串转换为日期的函数是,取某日期所在月份最后一。 、、和。 答案: 数据冗余 插入异常 删除异常 更新异常 答案: MOD LENGTH LAST_DAY TO_DATE 46 什么是数据库中的事务,事务有哪几个属性,分别是什么? 答: 事务是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。 事务必须有四个性质:原子性、一致性、隔离性、持久性。上述的四个性质称为事务的ACID性质。 47 简述规范化的概念。 规范化的目的就是使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。规范化的基本原则就是遵从概念单一化“一事一地”的原则,即一个关系只描述一个实体或者实体间的联系。若多于一个实体,就把它“分离”出来。规范化就是对原关系进行投影,消除决定属性不是候选键的任何函数依赖。具体可以分为以下几步:
1)对1NF关系进行投影,消除原关系中非主属性对键的部分函数依赖,将1NF关系转换成若干个2NF关系;
2)对2NF关系进行投影,消除原关系中非主属性对键的传递函数依赖,将2NF关系转换成若干个3NF关系;
3)对3NF关系进行投影,消除原关系中主属性对键的部分函数依赖和传递函数依赖,也就是说使决定因素都包含一个候选键。得到一组BCNF关系。 48
简述PL/SQL程序的结构。
答:组成PL/SQL程序的单元是逻辑块(Block),一个PL/SQL程序包含了一个或多个逻辑块,每个块都可以划分为三个部分:
1)声明部分:声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如果不需要声明变量或常量,那么可以忽略这一部分。
2)执行部分:执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始,所有的可执行语句都放在这一部分,其他的PL/SQL块也可以放在这一部分。
3)异常处理部分:该部分包含在执行部分里面,以EXCEPTION为标识,对程序执行中产生的异常情况进行处理。
49
设有教师表t_teacher(id,teacher_no,name,age,sal,tel,deptno)
其中:id(主键,number),teacher_no(教师编号 number),name(姓名 varchar),age(年龄 number ),sal(工资 number),tel(电话 varchar),deptno(系别编号 varchar)。 请按下列要求分别把SQL语句按1~5编码顺序填写在答案框中。 1)查询家有电话的教师信息。
2)查询工资在500至800元之间的教师信息
3)按年龄递增顺序显示教师编号、姓名、年龄、工资 4)求系别号为JSJ的平均工资
5)查找系别为JSJ的40岁以上而工资在4000元以下的教师名单。
答案:
1、select * from t_teacher where tel is not null;
2、select * from t_teacher where sal between 500 and 800 或者select * from t_teacher where sal>=500 and sal <=800 ;
3、select teacher_no,name,age,sal from t_teacher order by age asc; 4、select avg(sal) from t_teacher where deptno='JSJ';
5、select name from t_teacher where deptno='JSJ' and age>40 and sal<4000;
50
设有雇员表emp(empno,ename,age,sal,tel,deptno)
其中:empno(编号 number),ename(姓名 varchar2),age(年龄 number ),sal(工资 number),tel(电话 varchar2),deptno(部门号 varchar2)。
请按下列要求分别把SQL语句按1~5编码顺序填写在答案框中。 1)查询家有电话的职工信息。
2)查询工资在500至800元之间的雇员信息
3)按年龄递增顺序显示雇员编号、姓名、年龄、工资 4)求部门号为D_01的平均工资
5)查找部门号为D_01的40岁以上而工资在400元以下的雇员名单。
答案:
1、select * from emp where tel is not null;
2、select * from emp where sal between 500 and 800 或者select * from emp where sal>=500 and sal <=800 ;
3、select empno,ename,age,sal from emp order by age asc; 4、select avg(sal) from emp where deptno='D_01';
5、select ename from emp where deptno='D_01' and age>40 and sal<400;
上机 1 一. 开发环境 Oracle 11g。 二.上机题内容 1、在Oracle数据库中新建用户test,在test用户下建立下列所示的表。(8分) 学校表School: 字段 Id 类型 Number 说明 主键 Name Address 学生表Student: 字段 Id Name School_id Department Grade Birthday Code Nvarchar2(100) Nvarchar2(200) 类型 Number Nvarchar2(50) Number Nvarchar2(100) Number Date Nvarchar2(20) 学校名称 地址 说明 主键 学生姓名 所属学校ID 所属院系名称 年级 生日 学号 2、 针对上题中建立的学校和学生表,编写SQL语句完成下列功能。(22分) 1)查询所有姓王的学生 2)查询所有年龄大于20的王姓学生 3)查询清华大学所有年龄大于20的2009级王姓学生 4)查询人数最多的学校名称 5)统计每个学校的学生人数,查询结果包括学校名称、学生人数 6)统计每个学校、各个年级的学生人数,查询结果包括学校名称、年级、学生人数 7)统计每个学校、各个院系、各个年级的学生人数,查询结果包括学校名称、院系、年级、学生人数 8)统计每个学校、各个院系、各个年级、各个出生年份的学生人数,查询结果包括学校名称、院系、年级、出生年份、学生人数 2 编写项目,完成下列功能。 一. 开发环境 Oracle11g 二.详细要求 现有关系数据库如下: 1. 在Oracle数据库中建立下列所示的表(6分) 数据库名:hospital 1)t_doctor(医生表)(2分) 字段 ID1 name d_no 类型 number varchar2 varchar2 说明 主键 姓名 医生编号 sex grade 2)t_patient(病人表)(2分) 字段 ID2 name p_no nation idcard 3)t_ record(病例表)(2分) 字段 ID3 d_no p_no desc varchar2 varchar2 性别 职称 类型 number varchar2 varchar2 varchar2 varchar2 说明 主键 病人姓名 病人编号 民族 身份证号 类型 number varchar2 varchar2 varchar2 说明 主键 医生编号 病人编号 病例表述 2. 针对上题中建立的医生、病人、病例表编写SQL语句完成下列功能(24分) 用SQL语言实现下列功能的sql语句代码: 1)使用sql将下列医生信息添加到医生表(3分) 主键 编号 姓名 性别 职称 1 100001 杜医生 男 副主任医师 2 100002 郭医生 女 副主任医师 3 100003 刘医生 男 医师 2)修改编号为100002的医生职称为?医师?(3分) 3)删除编号为100003的医生信息 (3分) 4)写出查询所有杜姓的男性医生(3分)。 5)创建一个视图view_p,查询出所有病人编号、姓名、病历、以及病人所对应的医生编号(6分) 6)编写一个带参的存储过程,当输入某个病人编号可以输出这个病人对应的医生姓名。(6分) 三.提交方式 将数据库文件导出为sql文件,并打包为一个压缩包(名称为“学号.zip”)后上传到服务器。