sql server期末复习题试卷全套15套.zip
sql server期末复习题试卷全套15套,《sql server数据库设计》期末复习题一、单项选择题(每小题1分,共10分)1.c2.d3. a4.d5.a6.b7.b 8.b9.d10.c1. 下列四项中说法不正确的是( c)a.数据库减少了数据冗余b.数据库中的数据可以共享 c.数据库避免了一切数据的重复d.数据库具有较高的数据独立性 2. 下列哪个不是s...
该文档为压缩文件,包含的文件列表如下:
内容介绍
原文档由会员 yeyun 发布
《SQL SERVER数据库设计》期末复习题
一、单项选择题(每小题1分,共10分)
1.C 2.D 3. A 4.D 5.A 6.B 7.B 8.B 9.D 10.C
1. 下列四项中说法不正确的是( C)
A.数据库减少了数据冗余 B.数据库中的数据可以共享
C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性
2. 下列哪个不是SQL Server服务( D )。
A.SQL Server B.SQL Server Agent
C.MS DTC D. PWS
3. 下列哪个不是数据库对象( a )。
A.数据类型 B.规则
C.默认 D.用户
4. SQL Server对象的完整名称不包括下面哪个( D )。
A.服务器名 B.数据库名
C.对象名 D.文件夹名
5. 数据定义语言的缩写词为 ( A )。
A.DDL B.DCL
C.DML D.DBL
6. SQL语言中,条件表示年龄在40至50之间的表达式为 ( B )。
A. IN (40,50) B. BETWEEN 40 AND 50
C. BETWEEN 40 OR 50 D. BETWEEN 40 ,50
7.表示职称为副教授同时性别为男的表达式为( B )
A. 职称='副教授' OR 性别='男' B. 职称='副教授' AND 性别='男'
C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')
8. 下面哪个不是SQL Server 的合法标识符( B )。字母,下划线,@或#开头152页
A. a12 B. 12a
C. @a12 D. #qq
9. SQL语言中,不是逻辑运算符号的( D )。
A. AND B. NOT
C. OR D. XOR
10.下面哪个函数是属于字符串运算的( C )。
A.ABS绝对值 B. SIN
C. STR D. ROUND
二、判断题(每空1分,共10分)
1. N 2.Y 3.N 4.N 5.N 6.N 7. N 8.Y 9.N 10.Y
1. 视图和表是完全一样的? N
2. SQL Server允许用户自定义类型?Y
3. 惟一键就是主键?N
4. SQL Server不允许字段名为汉字? N
5. ¥2005.89 是SQL中的货币型常量吗?N 应该是$作为前缀的整型或实型常量数据如-$45.4 +$34
6. 语句 select 15%2 的执行结果是: 7.5 吗? N
7. 作为字符串型数据'李白'是排在'杜甫' 的前面吗? N
8. smallint是SQL的数据类型吗?Y
9. 设置惟一约束的列不允许为空?N
10.主键可以是复合键吗?Y
三、填空题(每空1分,共20分)
1. 创建、修改和删除表命令分别是create table、alter table和drop table。
2. SQL Server 2000以 # 开头的标识符,表示临时表或过程;局部变量名字必须以 @ 开头,而全局变量名字必须以 @@ 开头。
3. 语句 select char(65), len('我们快放假了.')的执行结果是 A 、 7 。
4. 语句 select lower('beautiful'), ltrim (' 我心中的太阳 ')(删除字符串前空格) 的执行结果是: beautiful 和我心中的太阳 。
5. left outer join 运算是 左外连接。
6. SELECT YEAR('2005-12-22')结果是 2005 。
7. ROUND( )函数的是 四舍五入 函数。
8. 检索姓名字段中含有'娟'的表达式为 姓名like’%娟% ’。
9. 语句权限是指用户能否当前数据库上执行backup database、backup log、create database、create table 、create view 、create procedure、create function、create rule、create default语句。
10.SQL Server复制把服务器分为 发布 服务器、 分发 服务器和 订阅 服务器三种。
四、简述题(每小题5分,共10分)
1. 视图的好处是什么?
答:(1) 为用户集中需要的数据,简化了数据的用户操作;
(2) 对用户隐藏了数据库设计的复杂性;
(3) 简化用户权限的管理
2. 流程控制语句包括哪些语句,他们各自的作用是什么?
答:1. IF…ELSE是条件判断语句
2. BEGIN …END能将多个SQL语句组合成一个语句块,并视为一个单元处理
3. CASE多情况语句,将其中一个符合条件的结果表达式返回
4. WHILE…COUNTINUE…BREAK设置循环语句,COUNTINUE可以终止本次循环,开始下一次循环,BREAK中断循环,跳出循环外
5. GOTO可以使程序跳到指定的标有标识符的位置处继续执行
6. WAITFOR暂时停止执行SQL语句、语句块或者存储过程
7. RETURN无条件的终止一个查询、存储过程或批处理
五、设计题(共50分)
现有关系数据库如下:
数据库名:医院数据库
医生表(编号,姓名,性别,出生日期,职称)
病人表(编号,姓名,性别,民族,身份证号)
病历表(ID,病人编号,医生编号,病历描述)
用SQL语言实现下列功能的sql语句代码:
1. 创建上述三表的建库、建表代码;
要求使用:主键(医生表.编号,病人表.编号)、外键(病历表.医生编号,病历表.病人编号)、非空(职称,姓名)、检查(性别),自动编号(ID) (16分)
Create database 医院数据库
use 医院数据库
go
create table 医生表
( 编号 char(6) primary key,
姓名 nchar(4) not null,
性别 nchar(1) check(性别 in ('男', '女')),
出生日期 datetime ,
职称 char(6) not null
)
create table 病人表
( 课号 char(6) primary key,
姓名 nchar(4) not null,
性别 nchar(1) check([性别] in ('男', '女')),
民族 nchar(10),
身份证号 char(18) not null
)
create table病历表
( ID IDENTITY(1, 1),
病人编号char(6) references 病人表(编号),
医生编号 char(6) references 医生表(编号),
病历描述 varchar(1000)
)
2. 将下列医生信息添加到医生表的代码
编号 姓名 性别 出生日期 职称
100001 杜医生 男 1963-5-18 副主任医师
100002 郭医生 女 1950-7-26 副主任医师
100003 刘医生 男 1973-9-18 医师
insert into 医生表 values('100001', '杜医生', '男', '1963-5-18', '副主任医师')
insert into 医生表 values('100002', '郭医生', '女', '1950-7-26', '副主任医师')
insert into 医生表 values('100003', '刘医生', '男', '1973-9-18', '医师')
①修改编号为100002的医生职称为‘主任医师’
Update 医生表 set职称='主任医师' where 编号='100002'
② 删除 编号为10..
一、单项选择题(每小题1分,共10分)
1.C 2.D 3. A 4.D 5.A 6.B 7.B 8.B 9.D 10.C
1. 下列四项中说法不正确的是( C)
A.数据库减少了数据冗余 B.数据库中的数据可以共享
C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性
2. 下列哪个不是SQL Server服务( D )。
A.SQL Server B.SQL Server Agent
C.MS DTC D. PWS
3. 下列哪个不是数据库对象( a )。
A.数据类型 B.规则
C.默认 D.用户
4. SQL Server对象的完整名称不包括下面哪个( D )。
A.服务器名 B.数据库名
C.对象名 D.文件夹名
5. 数据定义语言的缩写词为 ( A )。
A.DDL B.DCL
C.DML D.DBL
6. SQL语言中,条件表示年龄在40至50之间的表达式为 ( B )。
A. IN (40,50) B. BETWEEN 40 AND 50
C. BETWEEN 40 OR 50 D. BETWEEN 40 ,50
7.表示职称为副教授同时性别为男的表达式为( B )
A. 职称='副教授' OR 性别='男' B. 职称='副教授' AND 性别='男'
C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')
8. 下面哪个不是SQL Server 的合法标识符( B )。字母,下划线,@或#开头152页
A. a12 B. 12a
C. @a12 D. #qq
9. SQL语言中,不是逻辑运算符号的( D )。
A. AND B. NOT
C. OR D. XOR
10.下面哪个函数是属于字符串运算的( C )。
A.ABS绝对值 B. SIN
C. STR D. ROUND
二、判断题(每空1分,共10分)
1. N 2.Y 3.N 4.N 5.N 6.N 7. N 8.Y 9.N 10.Y
1. 视图和表是完全一样的? N
2. SQL Server允许用户自定义类型?Y
3. 惟一键就是主键?N
4. SQL Server不允许字段名为汉字? N
5. ¥2005.89 是SQL中的货币型常量吗?N 应该是$作为前缀的整型或实型常量数据如-$45.4 +$34
6. 语句 select 15%2 的执行结果是: 7.5 吗? N
7. 作为字符串型数据'李白'是排在'杜甫' 的前面吗? N
8. smallint是SQL的数据类型吗?Y
9. 设置惟一约束的列不允许为空?N
10.主键可以是复合键吗?Y
三、填空题(每空1分,共20分)
1. 创建、修改和删除表命令分别是create table、alter table和drop table。
2. SQL Server 2000以 # 开头的标识符,表示临时表或过程;局部变量名字必须以 @ 开头,而全局变量名字必须以 @@ 开头。
3. 语句 select char(65), len('我们快放假了.')的执行结果是 A 、 7 。
4. 语句 select lower('beautiful'), ltrim (' 我心中的太阳 ')(删除字符串前空格) 的执行结果是: beautiful 和我心中的太阳 。
5. left outer join 运算是 左外连接。
6. SELECT YEAR('2005-12-22')结果是 2005 。
7. ROUND( )函数的是 四舍五入 函数。
8. 检索姓名字段中含有'娟'的表达式为 姓名like’%娟% ’。
9. 语句权限是指用户能否当前数据库上执行backup database、backup log、create database、create table 、create view 、create procedure、create function、create rule、create default语句。
10.SQL Server复制把服务器分为 发布 服务器、 分发 服务器和 订阅 服务器三种。
四、简述题(每小题5分,共10分)
1. 视图的好处是什么?
答:(1) 为用户集中需要的数据,简化了数据的用户操作;
(2) 对用户隐藏了数据库设计的复杂性;
(3) 简化用户权限的管理
2. 流程控制语句包括哪些语句,他们各自的作用是什么?
答:1. IF…ELSE是条件判断语句
2. BEGIN …END能将多个SQL语句组合成一个语句块,并视为一个单元处理
3. CASE多情况语句,将其中一个符合条件的结果表达式返回
4. WHILE…COUNTINUE…BREAK设置循环语句,COUNTINUE可以终止本次循环,开始下一次循环,BREAK中断循环,跳出循环外
5. GOTO可以使程序跳到指定的标有标识符的位置处继续执行
6. WAITFOR暂时停止执行SQL语句、语句块或者存储过程
7. RETURN无条件的终止一个查询、存储过程或批处理
五、设计题(共50分)
现有关系数据库如下:
数据库名:医院数据库
医生表(编号,姓名,性别,出生日期,职称)
病人表(编号,姓名,性别,民族,身份证号)
病历表(ID,病人编号,医生编号,病历描述)
用SQL语言实现下列功能的sql语句代码:
1. 创建上述三表的建库、建表代码;
要求使用:主键(医生表.编号,病人表.编号)、外键(病历表.医生编号,病历表.病人编号)、非空(职称,姓名)、检查(性别),自动编号(ID) (16分)
Create database 医院数据库
use 医院数据库
go
create table 医生表
( 编号 char(6) primary key,
姓名 nchar(4) not null,
性别 nchar(1) check(性别 in ('男', '女')),
出生日期 datetime ,
职称 char(6) not null
)
create table 病人表
( 课号 char(6) primary key,
姓名 nchar(4) not null,
性别 nchar(1) check([性别] in ('男', '女')),
民族 nchar(10),
身份证号 char(18) not null
)
create table病历表
( ID IDENTITY(1, 1),
病人编号char(6) references 病人表(编号),
医生编号 char(6) references 医生表(编号),
病历描述 varchar(1000)
)
2. 将下列医生信息添加到医生表的代码
编号 姓名 性别 出生日期 职称
100001 杜医生 男 1963-5-18 副主任医师
100002 郭医生 女 1950-7-26 副主任医师
100003 刘医生 男 1973-9-18 医师
insert into 医生表 values('100001', '杜医生', '男', '1963-5-18', '副主任医师')
insert into 医生表 values('100002', '郭医生', '女', '1950-7-26', '副主任医师')
insert into 医生表 values('100003', '刘医生', '男', '1973-9-18', '医师')
①修改编号为100002的医生职称为‘主任医师’
Update 医生表 set职称='主任医师' where 编号='100002'
② 删除 编号为10..