数据库基础与应用自检自测试题一、单选 (每空1分,共10分)1.在Access数据库系统中,不能建立索引的数据类型是()。
A.文本型 B.备注型 C.数值型 D.日期/时间型2.下面有关表的叙述中错误的是()。
A.表是Access数据库中的要素之一B.表设计的主要工作是设计表的结构C.Access数据库的各表之间相互独立D.可以将其他数据库的表导入到当前数据库中3. Access中包含有()个数据库对象。
A.5 B.6 C.7 D.4.在设计Access数据表时,“索引”属性有()取值。
A.1 B.2 C.3 D.45.下列()图标是Access中新建宏的标志。
A. B. C. D.6. 当一条SELECT语句访问一张大表里的有限几行数据时,SQL Server通常会()。
A. 为数据加上页级锁B. 为数据加上行级锁C. 需要用户的干涉和参与D. 使用户独占数据库7. 要想使SQL Server数据库管理系统开始工作,必须首先启动()。
A. SQL Server服务器B. 查询分析器C. 网络实用工具D. 数据导入和导出程序8. Transact-SQL对标准SQL的扩展主要表现为()。
A. 加入了程序控制结构和变量B. 加入了建库和建表语句C. 提供了分组(Group By)查询功能D. 提供了Min、Max等统计函数9. 使用“CREATE DATABASE AAA”命令所建立数据库文件的初始大小是()字节。
A. 1MB. 2MC. 3MD. 4M10. 不属于SQL Server系统全局变量的是()。
A. @@ErrorB. @@ConnectionsC. @@Fetch_StatusD. @Records二、填空 (每空1分,共20分)1.在__________系统中,不容易做到数据共享,在__________系统中,容易做到数据共享。
2.分布式数据库系统除了具有一般数据库系统的优点之外,还具有________、________、数据量大、客户数多等优点。
3.若实体A和B是1对多的联系,实体B和C是多对1的联系,则实体A和C是________对________的联系。
4.关系中的每一行称为一个________,每一列称为一个________。
5.数据库管理系统的下层支持软件是________,上层软件是数据库应用________。
6.DBMS的主要功能之一是________和________数据字典。
7.在参照和被参照的关系中,每个外码值或者为________,或者等于某个________值。
8.设一个关系模式为R(A,B,C),对应的关系内容为R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}},则ПB(δC<70(R))的运算结果中包含有________个元组,每个元组包含有________个分量。
9.在一个关系R中,若属性集X函数决定属性集Y,则记作为________,称X为________。
10.已知“职工号→性别”成立,则“(职工号,性别)→性别”既是________函数依赖,又是________函数依赖。
三、填空 (每空1分,共20分)1.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,C→D,(A,C)→E},则该关系的候选码为________,该候选码含有______属性。
2.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,A→C,C→D,C→E},该关系满足________范式,若要规范化为高一级的范式,则将得到________个关系。
3.数据库系统的外模式在SQL中称为________,它由________产生出来。
4.在SQL中,列级完整性约束分为____种情况,表级完整性约束分为____种情况。
5.在SQL中,通过使用视图,能够使在关系规范化时被分解的关系________起来,能够增强数据库的________性。
6.在列举的购物活动中,商品实体同销售实体之间是______对______的联系。
7.Access是办公套件中的一个重要组成部分。
8.Access“表”结构设计窗口分为两个部分,上半部分是,下半部分是。
9.在Access中,如果要对大批量的数据进行修改,为了提高效率,最好使用________查询。
10.在Access 2000中报表中有________和________视图,而没有数据表视图。
11.宏和菜单的主要区别是它们对数据库施加作用的和不同。
四、填空 (每空1分,共20分)1. SQL Server提供了动态的自我管理机制,能够自动增大或缩小数据库所占用的______ 。
2. 在SQL Server中,通常使用________数据类型来表示逻辑数据。
3. 从是否改变基本表记录的物理位置角度可将索引分为__________和__________索引两类。
4. 使用create database命令定义一个数据库,包括定义__________文件和__________文件两个部分。
5. 单行或行尾注释的开始标记为________,多行注释的开始标记为________,结束标记为________。
6. 在SQL Server中,CASE函数具有______种格式,每种格式中可以带有________个WHEN 选项,可以带有______个ELSE选项。
7. 每次执行使用游标的取数、修改或________操作的语句时,能够对表中的________个记录进行操作。
8. 创建和删除一个触发器的语句关键字为________________和________________。
9. Visual FoxPro 6.0是运行于Windows 95和Windows NT平台的__________位的__________型数据库开发系统。
10. 在传统数据库系统中,结构与行为_____________。
面向对象数据库技术是数据库技术与__________________技术的结合。
五、根据主教材第四章所给的商品库和教学库,按照下列前三小题的每条SQL查询语句写出相应的功能,或者按照下列后两小题的每种功能写出相应的SQL查询语句。
在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int)商品表2(商品代号 char(8),产地 char(6),品牌 char(6))在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,专业 char(10),年级 int) 课程(课程号 char(4),课程名 char(10),课程学分 int)选课(学生号 char(7),课程号 char(4),成绩 int)1.select x.商品代号,分类名,产地,品牌from 商品表1 x,商品表2 ywhere x.商品代号=y.商品代号 and (品牌='熊猫' or 品牌='春兰')2.select *from 课程where not exists (select *from 选课where 课程.课程号=选课.课程号)3.select 专业,性别,count(*) as 人数from 学生group by 专业,性别order by 专业4.从商品库中查询出每类(即分类名相同)商品的总数量。
5.从商品库中查询出每种商品的总价值,并按降序排列出来。
六、根据下面所给的AAA数据库,按照第1小题写出执行结果,按照第2、3、4小题写出其实现功能,按照第5小题写出对应的Transact-SQL语句。
(每小题3分,共15分)假设使用名称为AAA的数据库,它包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名varchar(10),成绩 numeric(5,2))两张表。
1. SELECT FLOOR(888.33),FLOOE(-888.33)2. SELECT * FROM StudentsWHERE DATEPART(year,入学日期) =DATEPART(year,GETDATE())3. declare @a char(8),@b varchar(10),@c numeric(5,2)declare @d intset @d=0declare xxx cursorfor select 学号,课程名,成绩from scoreopen xxxfetch xxx into @a,@b,@cwhile @@fetch_status=0beginset @d=@d+1fetch from xxx into @a,@b,@cendclose xxxdeallocate xxxprint @d4.create function xxk8(@a char(8),@b char(8))returns int asbeginif( not exists(select * from students where 学号=@a ) ornot exists(select * from students where 学号=@b ))return -2if(exists(select *from Students xwhere x.学号=@a and not exists (select *from Students y inner join Score z on y.学号=z.学号where y.学号=@b and not exists (select *from Score wwhere x.学号=w.学号 and z.课程名=w.课程名)))andexists(select *from Students xwhere x.学号=@b and not exists (select *from Students y inner join Score z on y.学号=z.学号 where y.学号=@a and not exists (select *from Score wwhere x.学号=w.学号 and z.课程名=w.课程名))))return 0else return -1end5. 从名字为“My Table”的表中查询出所有记录。