SQL复习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL Server数据库应用管理-习题集
说明:本习题集所涉及的数据库,名为Student,其数据表有3个,分别是学生(学号,姓名,性别,年龄),课程(课号,课名,学分),选修(学号,课号,成绩)。

一、单项选择题
1.下列属于SQL Server系统数据库的是。

A.master B.Sysbase
C.student D.Database
2.SQL Server中,数据库主数据文件扩展名为。

A.ldf B.mdf
C.ndf D.dbf
3.SQL Server中,索引类型按结构划分,包括。

A.聚集索引和非聚集索引B.主索引和次索引
C.单索引和复合索引D.内索引和外索引4.SQL Server的数据定义语句是。

定义:创建
A.CREATE,DROP,ALTER
B.INSERT,UPDATE,DELETE
C.SELECT,DELETE,UPDATE
D.CREATE,GRANT,INSERT
5.下面的描述正确的是。

A.每个数据文件中可以有多个主数据文件
B.只允许有一个次数据文件。

C.一个数据库有主数据库文件即可。

D.一个数据库至少由一个主数据文件和一个日志文件组成。

6.下面字符串能与通配符表达式ABC%a 进行匹配的是。

A.BCDEF B.A_BCD C.ABCDa D.ACBDE 7.下列属于数据库管理系统的是。

A.SQL Server 2005
B.Excel
C.Windows 2000
D.IE6
8.实体完整性要求主属性不能取空值,这一点通常是通过实现。

A.定义外部键来保证
B.定义主键来保证
C.用户定义的完整性来保证
D.关系系统自动保证
Server的数据操纵命令是。

A.SELECT,INSERT,UPDATE,DELETE
B.CREATE,INSERT,UPDATE,DELETE
C.GRANT,CREATE,REVOKE
D.SELECT,CREATE,DROP,ALTER
10.下面的描述错误的是。

A. 每个数据文件中有且只有一个主数据文件
B.可以有多个次数据文件。

C.一个数据库有主数据库文件即可。

D.一个数据库至少由主数据文件和日志文件组成。

11.对于查询语句的结果,有时会出现重复的数据行,可以使用以下哪个关键字可消去重复记录行。

A. Only B. Select
C. Distinct
D. Order by
12.下列说法中正确的是。

A.SQL 中局部变量可以不声明就使用
B.SQL 中全局变量必须先声明再使用
C.SQL 中所有变量都必须先声明后使用
D.SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。

13.下面对索引的相关描述正确的是:。

A. 经常被查询的列不适合建索引。

B. 列值唯一的列适合建索引。

C. 有很多重复值的列适合建索引。

D. 是外键或主键的列不适合建索引。

14.下列说法中正确的是。

A. SQL 中局部变量可以不声明就使用
B. SQL 中全局变量必须先声明再使用
C. SQL 中所有变量都必须先声明后使用
D. SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。

15.E-R模型的三要素是 c 。

A. 实体、属性、实体集
B. 实体、键、联系
C. 实体、属性、联系
D. 实体、域、候选键
Server系统数据库不包括。

A.master B.tempdb
C.student D.model
Server中,数据库日志文件扩展名为。

A.ldf B.mdf
C.ndf D.dbf
Server中,索引类型包括。

A.聚集索引和非聚集索引B.主索引和次索引C.单索引和复合索引D.内索引和外索引19.SQL语言中行注释的符号为______。

A.< >
B./* */
C.--
D./-
20.参加“自然联接”运算的两个关系。

A.至少存在一个相同属性名
B.可不存在任何相同属性名
C.不可存在多个相同属性名
D.所有属性名必须完全相同
21.下面标志符合法的是。

A. trigger1
B. 123_a
C. @abc
D. ABC_[1]
22.创建数据库语句
A.Create Database
B.Delete Database
C.Set Database
D.Create Table
23.实体完整性要求主属性不能取空值,这一点通常是通过。

A.定义外部键来保证
B.定义主键来保证
C.用户定义的完整性来保证
D.关系系统自动保证
24.我们使用的SQL Server 2005,它是一个。

A. 数据库
B. 数据库系统
C. 数据库管理系统
D. 数据库文件
25.在SQL Server中,每个表上能创建个非聚簇索引。

A. 1
B. 3
C. 249
D. 255
26.所谓概念模型,指的是。

A.客观存在的事物及其相互联系
B.将信息世界中的信息数据化
C.实体模型在计算机中的数据化表示
D.现实世界到机器世界的一个中间层次,即信息世界
27.备份数据库Mydb的语句为
A. RESTORE DATABASE Mydb
B. BACKUP DATABASE Mydb
C. EXEC DATEBASE Mydb
D. UPDATE DATABASE Mydb
28.下列不是数据库对象的是。

表存储过程触发器视图规则默认索引
A. 表
B. 触发器
C. 视图
D. 用户权限
29.块注释的符号为_______。

A.< >
B./* */
C.--
D./-
30.假如采用关系数据库系统来实现应用,在数据库设计的()阶段,需要将E-R模型转换为关系数据模型。

A. 概念设计
B. 物理设计
C. 逻辑设计
D. 运行阶段
二、填空题
1.SQL Server中的变量分为两种,全局变量和局部变量,其中全局变量的名称以@@字符开始,由系统定义和维护。

局部变量以@字符开始,由用户自己定义和赋值。

2.在查询分析器中,使用Create Database命令创建数据库,使用Alter Database命令修改数据库,使用drop database删除数据库。

3.一个脚本可以包含一个或多个批,脚本中的go命令标志一个批的结束。

4.SQL Server2005中数据库文件有mdf主数据库文件、ndf次数据库文件、Ldf日志数据库文件。

5.SQL Server主要提供了两种机制来强制业务规则和数据完整性,是:__约束,__触发器。

6. 四种数据库备份分别是完全数据库备份、差异数据库备份、事务日志备份、数据库文件和文件组备份。

7.SQL Server 2005的安全级别分为身份验证阶段和权限认证阶段两个层次。

8. 关系的完整性包括实体完整性、域值完整性、参照完整性、用户自定义完整性。

9.在一个表上能创建_1_个聚集索引,_ 249_个非聚簇索引。

10. 数据库系统一般由数据库,操作系统,数据库管理系统及开发工具,数据库应用程序,数据库管理员和用户组成。

简答题:
最常见的数据库对象:
表存储过程触发器视图规则默认索引
视图的作用P166
集中简化和定制显示数据库中的数据信息.为用户以多种角度观察数据库中的数据提供方便.为了屏蔽数据的复杂性,简化用户对数据的操作或者控制用户访问数据.对数据提供安全保护
索引的作用P178
类似书本的目录,用来提高查找信息的速度
索引的原则P180
主键列上一定要建立索引
外键列可以建索引
在经常查询的字段上最好建立索引
对于很少涉及的列.重复值比较多的列不要建索引
对于定义为txt,image和bit数据类型的列上不要建立索引
简单的编程
创建和定义触发器P257 create trigger
use student
go
create trigger banji on班级
for delete
as
declare @banji char(9)
select @banji=班级代码from deleted
if exists(select*from学生where班级代码=@banji)
begin
print'无法删除'
rollback transaction
end
go
创建学生表包括姓名性别学号年龄并设置合适的数据类型
use student
go
create table 学生
(学号char(12) primary key,
姓名varchar(8),
性别char(2),
出生日期datetime,
入学时间datetime,
班级代码char(9) references 班级(班级代码)
)
Go
将学生表中张三的年龄改成20
use student
go
update 学生
set 年龄=20
where 姓名= '张三'
go
查询比张三大的所有同学的姓名按年龄降序排序
use student
go
Select 姓名
From 学生
Where 出生日期< any(select 出生日期from 学生where 姓名= '张三' )
Order by 出生日期desc
go
查询已选修数据库的学生的人数
Select count(*) AS 学生人数
Form 选修
Where 课名= 数据库
And 选修.课号=学生.课号
use student
go
Select count(*)
From 课程注册
Where 课程号in (select 课程号from 课程where 课程名称= 'SQL Server 2005') go
大题:
1编写存储过程
use student
go
create proc cc_bjmc
as
select 班级名称from 班级
where 系部代码= (select 系部代码from 系部where 系部名称= '计算机系') go
结构: create proc 存储过程名称
As
(对象)
2写一个多语句表值函数第十章P215 例题33 32
通过输入的课程名称返回选修该课程的学生姓名和成绩
create function chengji(@inputkc as char(20))returns @chji table
(
课程名称char(20),
姓名char(8),
成绩tinyint
)
as
begin
insert @chji
select c.课程名称,s.姓名,k.成绩
from学生as s inner join课程注册as k
on s.学号= k.学号inner join课程as c
on c.课程号=k.课程号and c.课程名称=@inputkc
return
end
go
3 使用游标声明游标打开游标提取数据关闭游标释放游标P229 use student
go
declare a cursor SCROLL dynamic for select*from课程备份--声明游标a
open a --打开游标
fetch first from a --提取第一条数据
delete from课程备份
--删除游标所在行记录
where current of a
fetch next from a --提取下一行数据
--修改数据
update课程备份set课程名称='23'
where current of a
fetch last from a
update课程备份set课程名称='45'
where current of a
close a --关闭游标
deallocate a --删除游标
go
select*from课程备份
go
创建一张”人事信息”表,表中包含职工编号.职工名称.性别.出生日期.系部代码.联系电话.在创建时根据需要定义约束.
use student
go
create table人事信息
(职工编号char(12)not null primary key,--主键约束
职工姓名char(8)not null unique,--唯一约束
性别char(2)not null default'男',--默认约束
出生日期datetime not null check(出生日期>'01/01/1950'),--检查约束
系部代码char(2)not null foreign key(系部代码)references系部(系部代码),--外键约束
联系电话char(15)
)
go。

相关文档
最新文档