《sql server数据库技术》试卷一及答案
- 格式:doc
- 大小:43.50 KB
- 文档页数:4
一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括
号中)(本大题共10小题,每小题1分,总计20分)
1.下列四项中,不属于SQL2005实用程序的是( D )。
A.企业管理器 B.查询分析器
C.服务管理器
D.媒体播放器
2. SQL Server安装程序创建4个系统数据库,下列哪个不是(C)。
A.master B.model C.pub D. msdb
3. 下列哪个不是数据库对象()。
A.数据模型B.视图C.表D.用户
4. 下列哪个不是sql 数据库文件的后缀。
(C)
A..mdf B..ldf C..tif D..ndf
5. 在SQL中,建立表用的命令是 ( A )。
A.CREATE TABLE
B.CREATE RULE
C.CREATE VIEW
D.CREATE INDEX
6. SQL语言中,条件“年龄BETWEEN 40 AND 50”表示年龄在40至50之间,且( A )。
A.包括40岁和50岁
B.不包括40岁和50岁
C.包括40岁但不包括50岁
D.包括50岁但不包括40岁
7. 模式查找like '_a%',下面哪个结果是可能的(B)
A.aili
B. bai
C.bba
a
8. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。
A. sp_dbhelp
B. sp_db
C. sp_help
D. sp_helpdb
9. SQL语言中,删除记录的命令是( B )。
A. DELETE
B. DROP
C. CLEAR
D. REMOVE
10. SQL的视图是从( C )中导出的。
A.基本表 B. 视图C. 基本表或视图 D. 数据库
二、判断题:(对的打√,错的打×,填在题末的括号中)(每小题1分,共10分)
11. "xingming" 是SQL中的字符串常量( N )
12. "11.9" 是SQL中的实型常量( N )
13. 语句 select 22%4, 的执行结果是: 0 ( N )
14. "2005.11.09" 是SQL中的日期型常量( N )
16. 语句 select 15/2 的执行结果是: 7.5 ( N )
17. 'AB'>'CD' 比较运算的结果为真( N )
18. bigint是SQL的数据类型( Y )
19. 设置惟一约束的列可以为空( Y )
20.一个表可以创建多个主键( N )
三、填空题(每空1分,共30分)
21. 关系数据库关系运算___选择_____、__投影____和_连接____。
22. SQL Server 2000局部变量名字必须以____@_____开头,而全局变量名字必须以__@@__
开头。
23. 语句 select ascii('D')的执行结果是: __68___。
24. 语句 select upper('beautiful') , ltrim ('我心中的太阳') 的执行结果是:
BEAUTIFAL __和_我心中的太阳______。
25. 表或视图的操作权限有__select、insert、update、delete和dri。
26. 选择运算是根据某些条件对关系做___水平分割;投影是根据某些条件对关系做_垂
直__分割。
28. 数据完整性的类型有____实体完整性、___域完整性、_参照_完整性和___用户自定义
完整性。
四、简述题(每小题5分,共10分)
29.有学生成绩表,要保证每个学生的每门课程惟一标识的话考虑使用数据完整性方法。
将每个学生的学号和课程号定义为复合主键这样才能保证每个学生的每门课程惟一。
30. 简述数据完整性的类型以及如何确定使用哪个强制方法。
(1)域完整性:使用DEFAULT (默认值)、DEFAULT(默认技术)、CHECK(检查)、RULE (规则技术)的方法指定某列可接受值的范围或模式
(2)实体完整性:使用 PRIMARY KEY(主键)、UNIQUE(惟一键)、IDENTITY(标识列)来确保行的惟一性
(3)参照完整性:使用 FOREIGN KEY(外键)保证列与参照列的一致性
Ⅱ操作题部分
五、程序设计题(共40分)
现有关系数据库如下:
数据库名:教师数据库
教师表(编号 char(6),姓名,性别,民族,职称,身份证号)
课程表(课号 char(6),名称)
任课表(ID,教师编号,课号,课时数)
用SQL语言实现下列功能的sql语句代码:
1. 创建上述三表的建库、建表代码(5分);
要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID) create database [教师数据库]
use [教师数据库]
go
create table 教师表
([编号] char(6) primary key,
[姓名] nchar(4) not null,
[性别] nchar(1) check([性别] in ('男', '女')),
[民族] nchar(8) default '汉族' not null,
[职称] nchar(12),
[身份证号] char(18) unique
)
create table 课程表
([课号] char(6) primary key,
[名称] char(40) not null
)
create table 任课表
(ID IDENTITY(1, 1),
[教师编号] char(6) references 学生表(学号),
[课号] char(6) references 课程表(课号),
[课时数] integer check([课时数] between 0 and 200)
)
2. 将下列课程信息添加到课程表的代码(5分)
课号课程名称
100001 SQL Server数据库
100002 数据结构
100003 VB程序设计
修改课号为100003的课程名称:Visual Basic程序设计
删除课号为100003的课程信息
insert 课程表 values('100001', 'SQL Server数据库')
insert 课程表 values('100002', '数据结构')
insert 课程表 values('100003', 'VB程序设计')
update 课程表 set 名称='Visual Basic程序设计' where 课号='100003' delete 课程表 where 课号='100003'
3.写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;(5分)
create view [任课表视图] as
select 教师编号,姓名,课号, 课程名称,课时数 from 教师表,任课表
where 教师表.编号=任课表.教师编号
5.写出创建[统计课时数]:输出最大课时数、最低课时数、平均课时的存储过程以及执
行代码;(5分)
create procedure [统计课时数]
as
select 最大课时数=max(课时) ,最小课时数=min(课时),平均课时数=avg(课时) from 任课表
go
execute [统计课时]
6.写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。
执行:计算“郭老师”的总课时。
(5分)
create procedure [统计课时]
@教师名 nchar(16),
as
begin
declare @总课时 int
select @总课时=sum (课时) from 任课表视图
where 姓名 = @教师名
end
go
execute [统计课时] '郭老师'
7.检索有一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名。
(5
分)
select 编号, 姓名 from 教师表
where编号in (select distinct 教师编号from 任课表where课时数>=90)。