《《数据库原理及应用》复习资料(共20页).doc》由会员分享,可在线阅读,更多相关《《数据库原理及应用》复习资料(共20页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据库原理及应用复习资料第一部分1、SQL语句中,对输出结果排序的子句是(B)group by)order byC)whereD)having2、使用create database语句建立的是(A)数据库)表)视图)索引3、SELECT语句中使用group by sno时,sno必须(C)在where中出现B)在from中出现)在select中出现 )在having中出现4、使用图方法的三要素是(C)实体、属性、主键)实体、域、候选键)实体、属性、联系)实体、主键、联系5、事务的属性包括(A)。A)原子性、一致性、隔离性和持久性B)原子性、正确性、一致性和持久性C)原
2、子性、正确性、可读性、隔离性D)确定性、原子性、一致性和持久性6、修改表的命令是(B)A)Create tableB)Alter tableC)Drop table D)Delete table7、下列关于触发器和存储过程叙述错误的是( B )A) 触发器是一种特殊的存储过程。B) 存储过程是触发器。C) 触发器不能由用户显示调用。D) 存储过程可以由用户显示调用。8、下列关于事务的隔离等级和并发性的叙述,正确的是( A )A) 事务的隔离等级越高,则并发性越差。B) 事务的隔离等级越高,则并发性越好。C) 事务的隔离等级和并发性之间没有关系。D) 事务的隔离等级越低,则并发性越差。9、要通过
3、表“tabstudent”创建一个新表“tabnew”,并且把“tabstudent”中的所有数据插入到“tabnew”中,正确的选项是(B)select * from tabstudent into tabnew)select * into tabnew from tabstudent)select * from tabstudent into table tabnew)select * into table tabnew from tabstudent10、要按“性别”分组统计“学生信息表”中学生 “入学成绩”的平均值,正确的选项是(A)select 性别,average(入学成绩) fr
4、om 学生信息表 group by 性别 )select 性别,average(入学成绩) from 学生信息表 group by 性别 having 性别=男)select 性别,average(入学成绩) from 学生信息表 group by 性别 where 性别=男)select 性别,average(入学成绩) from 学生信息表11、关系数据库的标准语言是(C)A)关系代数)关系演算)SQL)ORACLE12、SQL Server2000默认的事务隔离级别是( B )。A)未提交读B)提交读C)可重复读D)可串行读13、在SQL Server2000中操作游标的正确顺序是( B
5、 )。A)定义游标、提取数据、打开游标、关闭游标、释放游标;B)定义游标、打开游标、提取数据、关闭游标、释放游标;C) 定义游标、打开游标、提取数据、释放游标、关闭游标;D) 定义游标、打开游标、提取数据、关闭游标。14、在SQL语句中要对查询结果进行降序排序,必须在排序表达式后面加上关键字( B )。A)ascB)descC)order byD)distinct15、在SQL Server2000中打开一个游标,游标中的行数存放在变量( B )中。A)cursor_rowsB)cursor_rowsC)fetch_statusD)都不对16、设有一个表,表中的某个字段的值可以是0个字符,也可
6、以200个字符,则该字段的类型应定义为( B )类型最合适。A)charB)varcharC)textD)string17、在SQL Server2000中,一个表中只能定义一个( )。A) 聚集索引B) 非聚集索引C)唯一索引D)组合索引18、( B )约束标识表之间的关系,用于为表中一列或多列提供参照完整性。A)Primary keyB)Foreign keyC)uniqueD)check19、设有如下的SQL语句:create table tab1(c1 int not null unique,c2 int not null check(c120 and c160_。7、设有学生成绩表s
7、core(sno,cno,degree),要查询该表中记录数的正确的SQL语句是:_select count(*) from score_。8、设有教师信息表teacher(tid,tname,tsex,tzc),其中tid是教师号、tname是教师姓名、tsex是教师性别,tzc是教师职称,则查询teacher表中不同的职称信息的SQL语句是:select distinct tzc from teacher。9、开始事务的语句是: beging transaction ;提交事务的语句是: commit transaction ;回滚事务的语句是: rollback transaction
8、。10、要删除表teacher中的所有记录的SQL语句是:_delete from teacher_;要删除表student的SQL语句是:_drop table teacher_。11、在SQL Server2000中,变量snums是_局部_变量;全局变量必须以_2_个”符号开头。12、在SQL Server2000中,打开游标c_student的语句是:_open c_student_;关闭游标c_student的语句是:_close c_student_;释放游标c_student的语句是:_deallocate c_student_。13、数据库的完整性包括,实体完整性、_参照_完整
9、性和自定义完整性三个方面的内容。14、在SQL Server2000中有三种常用的触发器,分别是:_Insert_触发器、delete触发器和_Update_触发器。15、_视图_是一个虚拟表,其内容是有查询定义的,但它和表不一样。16、为保证数据库的完整性,通常使用_约束_、默认值和规则来实现。比如教师信息表中有一个字段电子邮件,要求该字段的值必须符合电子邮件的标准格式,应通过在该字段上定义_规则(或check约束)_来实现。17、存储过程是SQL语句和可选控制流语句的预编译集合,它可以带输出参数,但在定义存储过程时该输出参数必须使用关键字_output 进行说明。18、要把数据库stude
10、ntdb备份到磁盘“D:databack”下,备份文件名是student.bak,则正确的备份命令是:backup database studentdb to disk=d:databackstudent.bak;要用备份到“D:databack”下的文件student.bak还原数据库student的恢复命令是:_restore database studentdb from disk=d:databackstudent.bak_。1、现有关系数据库如下: 学生(学号,姓名,性别,系别) 、课程(课程号,课程名,学分) 、选课(学号,课程号,成绩) 。(12分)(1)SQL实现下列查询;查询
11、男生信息,包括学号、姓名、性别、课程号和成绩。(3分)select学生.学号,学生.姓名,学生.性别,选课.课程号,选课.成绩 from 学生,选课 where学生.学号=选课.学号.and 学生.性别=男查询“计科系”中选修了课程“C语言”的学生姓名。(3分)select 姓名 from 学生,选课,课程 where 学生.学号选课.学号 and 学生.系别=计科系 and 课程. 课程号=选课. 课程号 and 课程.课程名C语言写一个存储过程up_selectedcourse查询至少选修一门课程的学生的学号和姓名。(3分)Create proc p1AsSelect 学生.学号,学生.姓
12、名 from 学生,选课 where学生.学号=选课.学号Go(2)画出此关系数据库的E-R图。(3分)学生课程选课学号学号姓名性别系别课程号课程名学分课程号成绩mn2、设数据库“学生成绩管理”中有表2示的“学生成绩表”。(8分)表2 学生成绩表学号姓名性别籍贯班级课程代码课程名称学分成绩001Mike男蒙自9510001数据库585001Mike男蒙自9510002VC569002Kate女个旧030001数据库568002Kate女个旧030002VC586(1) 试分析上述表符合第几范式?它存在哪些问题?(4分)第一范式,存在数据冗于,插入、删除、更新异常(2) 要将上述表规范化为第三范
13、式,应如何设计?并指明各个表中作为主键的字段。(4分)学生(学号,姓名,性别,几个,班级),主键是学号;课程(课程代码,课程名称,学分),课程代码是主键;成绩(学号,课程代码,成绩),主键是学号和课程代码。第二部分1.创建规则应使用的语句是( B )。A)create default B)create ruleC)create index D)create trigger2.设有表student,则删除表中所有数据的SQL语句是( C )。A)delete * from studentB)drop table studentC)delete from studentD)delete from
14、table student3.启动一个显示事务的语句是( A )。A)begin transaction B)commit transactionC)rollback transaction D)commit work4.释放游标c_class的语句是( D )。A)close c_class B)open c_classC)fetch next from c_classD)deallocate c_class5.下列有关数据库的并发性和事务的隔离级别的叙述正确的是( B )。A) 事务的隔离级别越高,则数据库的并发性越好。B) 适当降低事务的隔离级别,可以提高数据库的并发性。C) SQL S
15、erver默认的事务隔离级别是未提交读。D) 事务的隔离级别和数据库的并发性是两个相互独立的,没有联系。6.查看SQL Server锁定的存储过程是( C )。A)sp_helptextB)sp_bindefaultC)sp_lock D)sp_unbindrule7.设有关系课程(课程号、课程名、学分)和教师(教师号、姓名)。若要查询课程和教师所有可能的组合应使用( C )。A)左向外联接B)右向外联接C)完全外联接D)交叉联接8.设有关系学生(学号、姓名、性别、籍贯、入学日期),其中入学日期为datetime类型,其他字段为字符型。若要分组查询男女学生人数及其明细,应使用( C )。A)s
16、elect * from 学生compute count(学号) by 性别B)select * from 学生 order by性别compute count(学号) by 性别C)select 性别,count(*) from 学生 group by 性别D)select 性别,count(*) from 学生 group by 性别 order by 性别9. 设有关系学生(学号、姓名、性别、籍贯、入学成绩),其中入学成绩为float类型,其他字段为字符型。要统计所有男同学的平均入学成绩,正确的SQL语句是( A )。A)select avg(入学成绩) from 学生 where性别=
17、男B)select avg(入学成绩) from 学生 where性别=男C)select avg(入学成绩) from 学生 group by 性别 where 性别=男D)select avg(入学成绩) from 学生 group by 性别 having 性别=男10.SQL中使用游标的操作顺序正确的是( B )A)定义游标打开游标提取数据释放游标关闭游标。B)定义游标打开游标提取数据关闭游标释放游标。C)定义游标提取数据打开游标关闭游标释放游标。D)定义游标提取数据打开游标释放游标关闭游标。11.下列叙述正确的是( C )A)触发器和存储过程类似,可以由用户显示调用。B)视图和表是基
18、本相同的,可以存放数据。C)要限制表中某一列的取值是字符0或1,可以使用约束,也可以使用规则。D)SQL Server中的全局变量可以自行定义和赋值。12.下列有关索引的叙述正确的是( B )A)使用索引可以提高数据查询速度和数据更新速度 。B)使用索引可以提高数据查询速度,但会降低数据更新速度 。C)使用索引可以提高数据查询速度,对数据更新速度没有影响 。D)使用索引对数据查询速度和数据更新速度均没有影响。13. 要通过表“tabstudent”创建一个新表“tabnew”,并且把“tabstudent”中的所有数据插入到“tabnew”中,正确的选项是( B)select * from t
19、abstudent into tabnew)select * into tabnew from tabstudent)select * from tabstudent into table tabnew)select * into table tabnew from tabstudent14. 在SQL语句中要对查询结果进行降序排序,必须在排序表达式后面加上关键字( B )。A)ascB)descC)order byD)distinct15. 在SQL Server2000中打开一个游标,游标中的行数存放在变量(B )中。A)cursor_rowsB)cursor_rows C)fetch_s
20、tatus D)都不对16. ( B )约束标识表之间的关系,用于为表中一列或多列提供参照完整性。A)Primary keyB)Foreign keyC)uniqueD)check17.设有存储过程up_studentscore(xh char(10),cno char(10),它的功能是查询指定学号和课程的学生成绩,其中xh表示学号,cno表示课程号,它们都是字符型数据,现要使用该存储过程查询学号为,课程号为001的学生成绩,则正确的调用表达式是( C )。A)exec up_studentcourse ,001B)exec up_studentcourse 001,C)exec up_st
21、udentcourse ,001E) exec up_studentcourse 001,18. 设有关系student(sno,sname,cno)和class(cno,cname,cnums),现要求创建一个触发器,当往student中插入新的记录时,自动修改class中cno的值和插入的新记录的cno值相同的记录的cnums,使其值加1,则正确的创建触发器的命令是( A )。A)create trigger t_insert on studentfor insertasupdate class set cnums=cnums+1 where cno=(select cno from in
22、serted)B) create trigger t_insert on classfor insertasupdate class set cnums=cnums+1 where cno=(select cno from inserted)C)create trigger t_insert on studentfor insertasupdate class set cnums=cnums+1D) create trigger t_insert on classfor insertasupdate class set cnums=cnums+119.关系S(学号,课程号,成绩),则函数依赖(
23、学号,课程号)成绩是(A )。A)完全函数依赖B)部分函数依赖C)传递函数依赖D)平凡函数依赖20.设属性x与y之间是1:n的关系,则下列选项正确的是( A )。A)xyB)yx C)xy,yxD)以上都不对1.DBMS的主要功能是( 数据库定义 )功能、数据存取功能、( 数据库运行 )功能和数据库的建立和维护功能。2.实体间的联系方式有( 一对一 )联系、( 一对多 )联系和多对多的联系三种。3.数据库的类型是根据数据模型划分的,目前常用的数据模型有(层次)(网状)和关系模型;SQL Server是(关系)数据库管理系统。4.关系的完整性有三个方面的内容,分别是有实体完整性、( 参照 )和用
24、户定义完整性;一个字段的值不能为空属于( 实体 )完整性。5.传统的集合运算有并、差、(交)和(笛卡尔积)四种。6.事务的ACID属性指的是原子性、( 一致性)、(隔离性)和持久性。7.SQL Server支持四种隔离级别,它们是未提交读、提交读、(可重复读)和(可串行读)。8.依据索引的顺序和数据库的物理存储顺序是否相同可以将索引分为两类,分别是(集聚索引)和(非集聚索引),一个表只能有一个( 集聚)索引。9.设有数据库studentmis,现要把它备份到磁盘“D:databaseback”下,备份文件名是studentmis.bak,则正确的备份命令是(backup database st
25、udentmis to disk=d:databasebackstudentmis.bak);若要使用磁盘备份文件“D:databasebackstudentmis.bak”来恢复该数据库,正确的命令是(restore database from disk=d:databasebackstudentmis.bak)。三、设有如下教师任课的关系模式,请完成如下工作。(共10分)工号姓名性别民族课程学分周课时100张三男汉数据库66100张三男汉C54101李四女彝C54101李四女彝数据库66102李娟女彝数据结构661.该关系模式达到第几范式?存在何种问题,分别说明。(5分)2.要达到3NF的
26、要求,应如何分解?并指明分解后所得关系的主键。(5分)四、设关系模式R,ABCDEF是它的属性集的子集,R满足下列函数依赖:F=ABC,CDEF,证明:函数依赖ADF成立。(共5分)ABCAC ADCDCDEFADEF ADFADBEF五、设有如下的选课模型,请写出实现下列操作的SQL语句。(共25分)字段类型是否能取空值主键课程号intNoPK课程名varchar(20)No学分intNo课程表:学生表:字段类型是否能取空值主键学号intNoPK姓名varchar(8)No性别char(2)No选课表:字段类型是否能取空值主键学号intNoPK课程号intNoPK成绩floatNo1.创建上
27、述三个表。(3分)create table 课程表(课程号 int primary key,课程名 varchar(20) not null,学分 int not null)create table 学生表(学号 int primary key,姓名 varchar(8) not null,性别 char(2) not null)create table 选课表(学号 int not null,课程号 int not null,成绩 float not null,constraint pk_1 primary key(学号,课程号)2.查询选修了全部课程的学生的学号和姓名。(2分)select
28、 学号,姓名 from 学生表 where 学号 in(select 学号 from 选课表 group by 学号 having count(学号)=(select count(*) from 课程表)3.询选修过课程“数据库原理”的学生的学号和姓名。(2分)select学号,姓名 from学生表,课程表,选课表 where 学生表.学号=选课表.学号 and课程表.课程号=课程表.课程号 and 课程表.课程名=数据库原理4.查询至少选修过一门课程的学生的学号和姓名。(2分)select学号,姓名 from学生表,选课表 where 学生表.学号=选课表.学号5.定义视图查询所有学生的姓名
29、、课程名和对应的成绩。(2分)create view v_score as select 姓名,课程名,成绩 from 学生表,课程表,选课表 where 学生表.学号=选课表.学号 and课程表.课程号=课程表.课程号6.定义规则限制性别列只能输入男或女,并绑定到学生表的性别列。(2分)create rule r_sex as val in(男,女)exec sp_bindrule r_sex,学生表.性别7.定义存储过程查询指定学号的学生的学号、课程号和成绩。(2分)create proc up_1(xh int)asselect * from 选课表 where 学号=xhgo8.查询平
30、均成绩比学号为2411的学生的平均成绩高的学生的学号和姓名。(2分)select 学生表.学号, 学生表.姓名 from 学生表,选课表 where 学生表.学号=选课表.学号 group by 学生表.学号,学生表.姓名 having avg(选课表.成绩)(select avg(成绩) from 选课表 where 学号=2411)9.按学号分组查询所有学生的平均成绩。(2分)select 学号,avg(成绩) from 选课表 group by 学号10.修改表把选课表中的学号设为foreign key,使之参照学生表中的学号。(2分)alter table 选课表 add constr
31、aint fk_xh foreign key (学号) references 学生表(学号)11.在学生表的姓名列上创建非聚集索引,排序方式为升序排列。(2分)create index inx_dd on 学生表(姓名 asc)12.查询学号为2114的学生的“数据库原理”这门课程的成绩,如果成绩大于等于90分显示“优秀”,如果成绩小于90分而大于等于70分显示“良好”,否则显示一般。(2分)select 学号,case when选课表.成绩=90 then 优秀when 成绩=70 and 成绩90 then 良好when 成绩70 then 一般end as 成绩from 选课表,课程表
32、where 选课表.课程号=课程表.课程号 and 课程表.课程名=数据库原理第三部分一、单项选择题(每题2分,共40分)1.创建默认应使用的语句是( a )。A)create defaultB)create ruleC)create indexD)create trigger2.设有表student,则删除表中所有数据的SQL语句是( c )。A)delete * from studentB)drop table studentC)delete from studentD)delete from table student3.启动一个显示事务的语句是( a )。A)begin transac
33、tionB)commit transactionC)rollback transactionD)commit work4.释放游标c_class的语句是( d )。A)close c_classB)open c_classC)fetch next from c_classD)deallocate c_class5.下列有关数据库的并发性和事务的隔离级别的叙述正确的是( b )。F) 事务的隔离级别越高,则数据库的并发性越好。G) 适当降低事务的隔离级别,可以提高数据库的并发性。H) SQL Server默认的事务隔离级别是未提交读。I) 事务的隔离级别和数据库的并发性是两个相互独立的东西,没有
34、联系。6.查看SQL Server锁定的存储过程是( c )。A)sp_helptextB)sp_bindefaultC)sp_lockD)sp_unbindrule7.设有关系课程(课程号、课程名、学分)和教师(教师号、姓名)。若要查询课程和教师所有可能的组合应使用( d )。A)左向外联接B)右向外联接C)完全外联接D)交叉联接8.设有关系学生(学号、姓名、性别、籍贯、入学日期),其中入学日期为datetime类型,其他字段为字符型。若要分组查询男女学生人数及其明细,应使用( b )。A)select * from 学生compute count(学号) by 性别B)select * f
35、rom 学生 order by性别compute count(学号) by 性别C)select 性别,count(*) from 学生 group by 性别D)select 性别,count(*) from 学生 group by 性别 order by 性别9. 要按“性别”分组统计“学生信息表”中学生 “入学成绩”的平均值,正确的选项是(a)select 性别,average(入学成绩) from 学生信息表 group by 性别 )select 性别,average(入学成绩) from 学生信息表 group by 性别 having 性别=男)select 性别,average(入学成绩) from 学生信息表 group by 性别 where 性别=男)select 性别,average(入学成绩) from 学生信息表10.SQL中使用游标的操作顺序正确的是( b )A)定义游标打开游标提取数据释放游标关闭游标。B)定义游标打开游标提取数据关闭游标释放游标。C)定义游标提取数据打开游标关闭游标释放游标。D)定义游标提取数据打开游标释放游标关闭游标。11.下列叙述正确的是( c )A)触发器和存储过程类似,可以由用户显示调用。B)视图和表是基本相同的,可以存放数据。C)要限制表中某一列的取值是字符0或1,可
限制150内