《数据库应用与开发》 A 卷
一. 单选题(每题1分,共20分)
1. Microsoft SQL Server是一种基于客户机/服务器的关系型数据库管理系统,它使用(B)语言在服务器和客户机之间传递请求。
A. TCP/IP B. Transact-SQL C. C D. ASP
2.A(D)是一个图形界面的查询工具,用它可以提交Transact-SQL语言,然后发送到服务器,并返回执行结果,该工具支持基于任何服务器的任何数据库连接。
A. SQL Server Management Studio B. 事件探测器
C. SQL 管理对象 D. DTS
3.一个关系中,能唯一标识元组的属性集称为关系的(B)键。
A. 副键 B. 主键 C. 从键 D. 参数
4.下面哪些字符可以用于Transact-SQL单行注释(A)。
A. -- B. @@ C. ** D. /*...*/
5.利用T—SQL语言创建表时,语句是(B)。
A. Delete Table
B. Create Table
C. Add Table
D. Drop Table
6.在数据库标准语言SQL中,关于NULL值叙述正确选项是( D )。
A. NULL 表示空格
B. NULL表示0
C. NULL既可以表示0,也可以表示是空格
D. NULL表示空值
7.下列函数中,返回值数据类型为 int 的是(B )。
A. LEFT B. LEN
C. LTRIM D. SUNSTRING
8.下列关于ALTER TABLE语句叙述错误的是B( C)。
A.可以添加字段 B.可以删除字段
C.可以修改字段名称 D.可以修改字段数据类型
9.在一个表上,最多可以定义多少个聚集索引(A)。
A. 1 B. 2 C. 3 D.4
10.在Transact-SQL的模式匹配中,使用(C)符号表示匹配任意长度的字符串
A. * B. - C. % D. #
11.不属于SQL Server 2005系统全局变量的是(D )。
A. @@Error B. @@Connections
C. @@Fetch_Status D. @Records
12.语句"USE master GO SELECT * FROM sysfiles GO"包括( B )个批处理。
A. 1 B. 2 C. 3 D.4
13. 下面几项中,关开视图叙述正确的是:C(D )。
A. 视图是一张虚表,所有的视图中不含有数据
B. 数据库中的视图只能使用所属数据库的表,不能访问其他数据库的表
C. 视图既可以通过表得到,也可以通过其他视图得到
D. 用户不允许使用视图修改表数据
第14到第16题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE.为成绩。
14. 检索所有比"王华"年龄大的学生姓名、年龄和性别。正确的SELECT语句是__B__。
A、SELECT SN, AGE, SEX FROM S WHERE SN='王华'
B、SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN='王华')
C、SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE WHERE SN='王华')
D、SELECT SN, AGE, SEX FROM S WHERE AGE>王华.AGE
15.检索选修课程"C2"的学生中成绩最高的学生的学号。正确的SELECT语句是__D__。
A、SELECT S# FORM SC WHERE C#='C2' AND GRADE>=(SELECT GRADE FORM SC WHERE C#='C2')
B、SELECT S# FORM SC WHERE C#='C2' AND GRADE IN (SELECT GRADE FORM SC WHERE C#='C2')
C、SELECT S# FORM SC WHERE C#='C2' AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#='C2')
D、SELECT S# FROM SC WHERE C#='C2' AND GRADE>=ALL(SELECT GRADE FROM SC WHERE C#='C2')
16.检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是___C_。
A、SELECT S.SN, SC.C#, SC.GRADE FROM S WHERE S.S#=SC.S#
B、SELECT S.SN, SC.C#, SC.GRADE FROM SC WHERE S.S#=SC.GRADE
C、SELECT S.SN, SC.C#, SC.GRADE FROM S, SC WHERE S.S#=SC.S#
D、SELECT S.SN, SC.C#, SC.GRADE FROM S.SC
17. SQL语言具有B____的功能。
A、关系规范化、数据操纵、数据控制
B、数据定义、数据操纵、数据控制
C、数据定义、关系规范化、数据控制
D、数据定义、关系规范化、数据操纵
18. 在SQL SERVER中,实现实体完整性有哪些方法(C)
A. 主键约束,默认对象
B. 规则,触发器
C. 主键约束,唯一约束
D. 主键约束,外键约束
19. 事务必须具有的性质不包括( D )
A、原子性 B、一致性 B、独立性 D、封闭性。
20. SQL Server安装程序创建4个系统数据库,下列哪个不是( C )。
A.master B.model C.pub D. msdb
二. 判断题(每题1分,共10分)
1. "xingming" 是SQL中的字符串常量吗?N
2. bigint是SQL的数据类型吗?Y
3. 设置惟一约束的列可以为空吗?y
4. 一个表可以创建多个主键吗?N
5. 连接、选择和投影三种关系运算具有相同的结果。N
6. 定义外键级级联是为了保证相关表之间数据的一致性吗?Y
7. 存储过程的输出结果可以传递给一个变量。Y
8. 视图具有与表相同的功能,在视图上也可以创建触发器N
9. SQL Server 2005不具有数据的导入与导出功能。N
10. 缺省情况下,所创建的索引是非聚集索引 ?Y
三. 填空题(每题1分,共20分)
1. ___数据库____是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。
2. 在关系运算中,选取符合条件的元组是__选择_____运算。
3. 用于求系统日期的函数是__getdate()_____。
4. SQL语言主要由__数据定义语言______________、____数据操作语言___________和数据控制语言(DCL)组成。
5. __视图_____是由一个或多个数据表(基本表)或视图导出的虚拟表。
6. __实体完整性_________用于保证数据库中数据表的每一个特定实体的记录都是惟一的。
7. ___存储过程______是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。
8. 触发器定义在一个表中,当在表中执行_INSERT_______、___UPDATE_____或delete操作时被触发自动执行。
9. 数据完整性的类型有___实体_____完整性、__域______完整性、__参照______完整性和___用户自定义_____完整性。
10. _____触发器_____是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。
11. SQL Server 2005提供的数据库备份方法有___差异____数据库备份和___完整_____数据库备份、事务日志备份和文件和文件组备份。
12. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型是__一对多_____
13. 表达实体之间逻辑联系的E-R模型,是数据库的___概念模型____
14. SQL server 数据库文件有三类,其中主数据文件的后缀为:_mdf______
四. 根据所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能,或者按照下列所给的每种功能写出相应的SQL查询语句。(每小题2分,共10分)
在名称为商品库的数据库中包含有商品表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 distinct 产地 from 商品表2
1. 从商品库中查询出所有商品的不同产地。
2.select * from 学生 where 学生号 in (select 学生号 from 选课 group by 学生号 having count(*)=1
从教学库中查询出只选修了一门课程的全部学生。
3.select * from 学生 where 学生号 in (select 学生号 from 选课 group by 学生号 having count(*)<=2 ) or not exists (select * from 选课 where 学生.学生号=选课.学生号) 从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。
4.从商品库中查询出每类(即分类名相同)商品的最高单价。select 分类名,max(单价) as 最高单价 from 商品表1group by 分类名
5.从教学库中查询出至少选修了姓名为@m1学生所选课程中一门课的全部学生。select distinct 学生.* from 学生,选课where 学生.学生号=选课.学生号 and 课程号=any(select 课程号from 学生,选课where 学生.学生号=选课.学生号 and 姓名=@m1 )
五. 设计题(每题5分,共40分)
现有一个zwnorth数据库,该数据库中有
产品(产品ID, 产品名称,供应商ID,类别ID,单位数量,单价,库存量,订购量,再订购量,中止)
类别(类别ID,类别名称,说明)
供应商(供应商ID,公司名称,联系人姓名,联系人头衔,地址,城市,地区)
表中的部分数据如下:
用T-sql语句实现下列功能
1. 在【产品】表中,查询“类别ID”为 4 , “库存量”大于 0 的所有产品的“产品ID”, “产品名称”,“ 单价”,“订购量”
1.select产品ID, 产品名称, 单价, 订购量 from产品 where类别ID='4' and库存量 >0
2. 在【产品】表中,统计“类别ID”为 4 产品的 平均订购量
select avg(订购量) 平均订购量 from产品 group by类别ID having类别ID=4
3. 在zwnorth数据库中查询,类别名称 为 “点心”所有产品的“供应商ID”, “产品名称”,“ 单价”,“公司名称”,“联系人姓名”
4. 创建存储过程[getdetail],通过输入类别名称(如"饮料"),筛选出该类产品的产品ID,产品名称,库存量,供应商ID,公司名称
create proc getdetail(@名称 char(10)) as select 产品ID, 产品名称, 库存量, 供应商ID, 公司名称
from供应商join产品 on 产品. 供应商ID=供应商. 供应商ID join类别 on 产品. 类别ID =类别. 类别ID
and 类别名称=@类别名称
return
5. 创建存储过程[getavg],通过输入类别ID(如"1"),筛选出该类产品的平均订购量
create proc getavg(@类别ID char(10))reyurns int
as
declare
- 1
- 2
前往页