一、基础知识题
(一)填空题
1、在一个表中主键的个数为___1_______个。
2、企业管理器是Microsoft SQL Server程序组中的程序之一,是管理________和________的主要工具。
3、触发器执行时生成的两个临时表为____deleted_________和____insereted________。
4、以SP__作为首部的存储过程称为____系统存储过程______________。
5、命令 truncate table的功能是___清空表中的内容____________。
6、通过外键约束可以为相关联的两个表建立联系,实现数据的__________完整
性。
7、SQL Server 2000的文件包括:____数据文件_________和____日志文件__________。
8、模糊查询符号 % 代表 ____零个或者多个任意字符的字符串_______ ,符号_ 代表意思是 ______任意单个字符_________。
9、对数据进行统计时,求最大值的函数是___MAX()______。
10、视图是从其它_____表___________________或视图导出的虚拟表。
11、在使用Create Index 语句创建簇索引时,需要使用的关键字__clustered_______。
12、关系模型中一般讲数据完整性分为三类:__实体完整性_______、_ 参照完整性____、__用户自定义完整性________。
13、创建视图用___with encryption_____________参数使视图的定义语句加密。
14、SELECT语句中去除重复记录的命令是__distinct_______________。
(二)选择题
1、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是( )。
(A)聚集索引 (B)非聚集索引 (C)主键索引 (D)唯一索引
2、SELECT语句中与HAVING子句通常同时使用的是( C )子句。
A.ORDER BY B.WHERE C.GROUP BY D.无需配合
3、在SQL Server 2000中,当数据表被修改时,系统自动执行的数据库对象是( B )。
(A)存储过程 (B)触发器 (C)视图 (D)其他数据库对象
4、新安装SQL Server后,默认有六个内置的数据库,其中的两个范例数据库是Pubs和( A )。
(A)master (B)NorthWind (C)msdb (D)bookdb
5、对视图的描述错误的是:( )
(A) 是一张虚拟的表
(B) 在存储视图时存储的是视图的定义
(C) 在存储视图时存储的是视图中的数据
(D) 可以像查询表一样来查询视图
二、应用题
(一)用T-SQL语句完成下列题目(3小题,每小题5分、共15分)
1、用T-SQL语句创建一个如下要求的数据库。
创建一个名字为Readbook库包含一个数据文件和一个日志文件,逻辑文件名为Readbook_data,磁盘文件名为Readbook_data.mdf,文件初始容量为2MB,最大容量为10MB,文件递增容量为1MB,而事务日志文件的逻辑文件名Readbook_log,磁盘文件名为Readbook_log.ldf,文件初始容量为1MB,最大容量为5MB,文件递增量为1MB(数据库创建在D:\SERVER文件夹下)
use master
go
if DB_ID (N'Readbook') is not null drop database Readbook
go
create database Readbook
on
(
name=Readbook_data,
filename='D:\SERVER\Readbook_data.mdf',
size=3,
maxsize=10,
filegrowth=1
)
log on
(
name=Readbook_log,
filename='D:\SERVER\Readbook_data.ldf',
size=3,
maxsize=5,
filegrowth=1
)
2、在Readbook数据库中添加一个新的事务日志文件,逻辑文件名为Readbook2_log, 磁盘文件名为Mybase2_log.ldf,文件初始容量为2MB,最大容量为10MB,文件递增容量为1MB。
alter database Readbook
add file
(
name=Readbook2_log,
filename='D:\SERVER\Mybase2_log.ldf',
size=3,
maxsize=10,
filegrowth=1
)
3、删除新添加的事务日志文件Readbook2_log。
USE master;
GO
ALTER DATABASE Readbook
REMOVE FILE Readbook2_log;
GO
(二)用T-SQL语句完成下列题目
1、用T-SQL语句创建一个如下图所示的数据表,表名为students,建在名为ks的数据库中:
| 列名 |
数据类型及长度 |
是否为空 |
备注 |
| 学号 |
CHAR(8) |
NO |
主键 |
| 姓名 |
CHAR(10) |
NO |
|
| 性别 |
CHAR(2) |
NO |
只能输入“男”或“女” |
| 身份证号 |
CHAR(18) |
NO |
唯一性约束 |
| 系别 |
CHAR(20) |
NO |
默认值为”计算机系” |
| 总学分 |
TINYINT |
YES |
|
create database ks
go
use ks
create table students
(
学号 char(8) primary key,
姓名 char(10) not null,
性别 char(2) not null Check(性别='男'or 性别='女'),
身份证号 char(18) not null unique,
系别 char(20) not null default '计算机系',
总学分 tinyint
)
2、向上面的表Students中插入一个‘出生年月’字段,数据类型为datetime。
use ks
alter table students
add 出生年月 datetime
3、将Students表中所有姓王的学生的系别改为‘信息技术系’。
use ks
update students set 系别='信息技术系' where 姓名='王%'
4、删除Students表中所有1985年出生的男学生信息。
use ks
delete from students where 性别='男' and 出生年月=year('1985')
(三)根据下列数据库中表的结构,回答问题(5小题,每小题5分,共25分)
学生: XS(学号char(8) primary key,
姓名char(8),
班级char(10),
性别char(2),
出生日期datetime,
出生城市char(10),
入学成绩tinyint)
课程: KC(课程号char(6) primary key,
课程名char(20))
学生选课信息: CJ(学期char(2),
学号char(8) references学生(学号),
课程号char(6) references课程(课程号),
成绩tinyint check(成绩>=0 and 成绩<=100))
1、 查询入学成绩排名前十的同学的学号、姓名和成绩。
select to