模拟测验1
一、1 2 3 4 5 6 7 8 9 10
A D C c D A C A A C
一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分)
- ( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DB
C.DBS D.DBA - 下列四项中,不属于SQL2005实用程序的是( )。
A.对象资源管理器 B.查询分析器
C.服务管理器 D.媒体播放器 - SQL Server安装程序创建4个系统数据库,下列哪个不是( )系统数据库。
A. master B. model
C. pub D. msdb - 下列哪个不是sql 数据库文件的后缀。
A..mdf B..ldf
C..tif D..ndf - SQL语言允许使用通配符进行字符串匹配的*作,其中‘%’可以表示( )
A.零个字符 B.1个字符串 C. 多个字符串 D. 以上都是 - SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。
A.包括15岁和35岁 B.不包括15岁和35岁
C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 - SQL的视图是从( )中导出的。
A. 基本表 B. 视图
C. 基本表或视图 D. 数据库 - 在SQL语言中,建立存储过程的命令是()
A、CREATE PROCEDURE B、CREATE RULE
C、CREATE DURE D、CREATE FILE - SQL语言中,删除表中数据的命令是( )。
A. DELETE B. DROP
C. CLEAR D. REMOVE - 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。
A. sp_dbhelp B. sp_db
C. sp_help D. sp_helpdb
二、简答题(16分)
1、什么是游标?使用游标的步骤?
2、什么是事务?事务的基本属性是什么?
三、应用题
1、创建一个名字为ks的数据库,包含一个数据文件和一个日志文件,逻辑文件名为ks_data,磁盘文件名为ks_data.mdf,文件初始容量为5MB,最大容量为10MB,文件递增量为1MB;而事务日志文件的逻辑文件名ks_log,磁盘文件名为ks_log.ldf,文件初始容量为1MB,最大容量为5MB,文件递增量为1MB(数据库创建在C:\SERVER文件夹下)(10分)
2、假设ks数据库有以下三张表,请写出下列问题的SQL语句:(每题6分,共54分)
学生(学号,姓名,年龄,性别)
课程(课程号,课程名,任课教师)
成绩(学号,课程号,成绩)
(1)如何在SQL Server上创建这三张表;
(2)查询刘峰教师所授课程号,课程名;
(3)查询年龄大于20岁的所有男同学的学号、姓名;
(4)查询王文芳同学选修的所有课程的课程号;
(5)查询所有上刘峰老师课程的学生学号;
(6)查询所有选修“数据库技术”的学生的学号;
(7)向学生表中插入一条记录(’2003001’,’吴红’,21,’女’);
(8)删除三张表中所有学号为20020001的学生信息;
(9)把学号为20030002的学生的年龄改为22岁;
SQL Server 2005 复习题
一、选择题
- SQL语言允许使用通配符进行字符串匹配的*作,其中‘%’可以表示( C )
A 零个字符 B 1个字符串 C 多个字符串 D 以上都是
2 如何在已经创建好的表上添加一个外键( A )
A Alter table 表名add foreign key(键名)reference 关联表(关联键名)
B Alter table 表名add Primary key(键名)reference 关联表(关联键名)
C Alter 表名add foreign key(键名)reference 关联键名)
D Alter 表名add Primary key(键名)reference 关联表(关联键名) - 要修改表名为Table1的字段Field1长度,原为Char(10)要求用SQL增加长度为char(20),以下语句那个正确( C )
A Alter table Table1 Alter Field1 char(20)
B Alter Table1 Alter column Field1 char(20)
C Alter table Table1 Alter column Field1 char(20)
D Alter column Field1 char(20) - 下面聚集函数中哪个只能用于计算数值类型的数据( D )
A COUNT( ) B MIN( ) C MAX( ) D SUM( )
5.以下哪个关键字用来定义记录在某属性上的约束条件( D )
A DEFAULT B DISTINCT C UNIQUE D CHECK
6.欲往表中增加一条记录,应该用哪一条SQL语句( B )
A ALTER TABLE B INSERT INTO TABLE
C CREATE TABLE D DROP TABLE
7.以下哪一个不是逻辑运算符( D )
A NOT B AND C OR D IN - 在创建表的过程中,哪个关键字用来定义默认值( D )
A DISTINCT B UNIQUE C CHECK D DEFAULT
二、填空题
1 数据库技术经历了人工管理阶段,和_______三个发展阶段。
2 数据库系统中最常用的三种数据模型有层次模型,和。
3 关系模式的三类完整性约束条件分别是,,和_____。
4 E-R图的主要元素是实体型,,。
5 在E-R模型的主要术语中,属性的取值范围称为。能够区别不同的实体且能唯一标识实体的最小属性集,称为______。
填空题答案:
1文件系统阶段,数据系统阶段
2网状模型,关系模型
3实体完整性,引用完整性约束,用户自定义完整性
4属性,联系
5域,实体集的实体键
三、判断题
1 默认值绑定到列上后,该列上的值将固定不能改变 ( X )
2 一张表允许有多个主键,但只能有一个外键 ( X )
3 可以通过SQL语句修改数据库名称及表的名称 ( √ )
4 聚集函数SUM( )与AVG( )可以用来操作任何类型的数据 ( X )
5 要删除一条记录使用DROP指令( X )
6 在空串处理语句中,IS NULL用来判断属性值是否为空,在此IS是关键字,不是标准的逻辑运算符( √ )
7 在模糊查询中可以使用LIKE结合通配符一块儿实现,其中%代表单个字符 ( X )
8 在查询语句中,若要把记录进行降序排列应使用ORDER BY 字段名 DESC ( √ )
9 在创建表的过程中,如果一属性是DATETIME类型需要指定长度 ( X )
10 在关系数据库的设计过程中,允许在设计后对表结构进行修改 ( √ )
四、基本操作
现在要为学校建立一个数据库,设学校的环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生,现要建立关于系、学生、班级的数据库,关系模式为:
学生表STUDENT(学号,姓名,性别,生源地,出生日期)
班级表CLASS(班号,专业名,系号,入学年份)
系DEPARTMENT(系号,系名)
使用SQL语句完成一下功能:
1 建立数据库名为SCHOOL并激活当前新建的数据库
CREATE DATABASE SCHOOL
ON PRIMARY
( NAME = SCHOOL,
FILENAME = ‘D:\SCHOOL.mdf’,
SIZE = 5MB,
MAXSIZE = 20MB,
FILEGROWTH = 1MB)
LOG ON
( NAME= SCHOOL_log,
FILENAME = ‘D:\SCHOOL_log.ldf’,
SIZE = 2MB,
MAXSIZE = 20MB,
FILEGROWTH = 10%)
GO
use SCHOOL
2 建表:在定义中声明
1)每个表要有主键
2)学生的性别只能取‘男’或者‘女’
3)学生姓名不能为空
4)表CLASS中建立外键系名,关联表DEPARTMENT中的系名
5)系代号不能重复且不能为空
(1)学生表STUDENT(学号,姓名,性别,生源地,出生日期)
create table student – 学生表定义
(
学号 char(10) primary key , – 主键为学号
姓名 varchar(20) not null , – 姓名不能为空值
性别 char(4) default ‘男’ , – 性别默认为男性
生源地 varchar(12) , --生源地
出生日期 datetime ,
check((性别= ‘男’) or (性别= ‘女’)) – 性别必须为男性或女性
)
(2)班级表CLASS(班号,专业名,系名,入学年份)
–班级表CLASS(班号,专业名,系名,入学年份)
create table class – 班级表定义
(
班号 char(4) primary key not null, – 定义班号不能为空值
专业名 char(20) , – 定义专业名
系号 char(4) , – 定义学分
入学年份 datetime ,-- 入学年份
foreign key(系号) references department(系号),
)
(3)系DEPARTMENT(系号,系名)
create table department – 系表定义
(
系号 char(4) primary key not null ,–系代号不能为空
系名 char(8) ,–系名
unique(系号) ,-- 系号是唯一的,即系号不能重复
)
3 插入如下数据
CALSS(101,软件,02,2003;
102,微电子,02,2004)
STUDENT(8101,张三,男,101,山东,1984;
8102,钱四,女,121,济南,1984;
8103,王玲,女,131,福建,1985;
8105,李飞,男,102,河北,1985)
DEPARTMENT(02,计算机;
03,数学;
04,化学)
insert into class values(‘101’,‘软件’,‘02’,‘2003-09-01’)
insert into class values(‘102’,‘微电子’,‘02’,‘2004-09-01’)
insert into student values(‘8101’,‘张三’,‘男’,‘山东’,‘1984-01-01’)
insert into student values(‘8102’,‘钱四’,‘女’,‘济南’,‘1984-01-01’)
insert into student values(‘8103’,‘王玲’,‘女’,‘福建’,‘1985-01-01’)
insert into student values(‘8105’,‘李飞’,‘男’,‘河北’,‘1985-01-01’)
insert into department values(‘02’,‘计算机’)
insert into department values(‘03’,‘数学’)
insert into department values(‘04’,‘化学’)
4 完成以下的查询功能
(1)通过对学生信息表的查询,查询出所有学生的学号,姓名和性别
select 学号,姓名,性别
from student
(2)通过对学生信息表的查询,查询来自福建的学生的记录
select *
from student
where 生源地= ‘福建’
(3)在查询语句中,查询出学生姓名并计算出学生的年龄大小
select 姓名, datediff(yy, 出生日期, getdate())
from student
(4)用模糊查询出姓钱的女生记录
select *
from student
where 姓名like ‘钱%’
(5)在查询语句中使用聚合函数计算出所有学生总数起别名为学生人数
select count(*) as ‘学生人数’
from student
(6)查询所有班级的信息,并用班级号进行降序排序
select *
from class
order by 班号desc
(7)更新学号为8103的这位学生的姓名为张玲
update student
set 姓名= ‘张玲’
where 学号= ‘8103’
(8)查找出学号在8101到8103的学生信息
select *
from student
where 学号between ‘8101’ and ‘8103’
(9)删除姓名为李飞的学生记录
delete from student
where 姓名= ‘李飞’
(10)删除数据表STUDENT
drop table student
SQL SERVER 2005 填空题
填空:
1. SQL(structured packingQuery Language)是__结构化查询_____________语言。
2. SQL SERVER的实例有两种,分别是__默认实例 和__命名实例。
3. SQL SERVER提供了四个系统数据库,分别是__master______、tempdb____、model__、 msdb___。
4. SQL SERVER安装后,系统默认两个帐号,一个是BUILTIN \ Administrator是Windows NT组帐户,另一个是sa,sa是__超级管理员 帐户.
5. SQL SERVER提供了两种形式的索引,分别是__聚集索引 和___非聚集索引。
6. SQL语言中,用于排序的是_ORDER_BY______子句,用于分组的是___GROUP BY______子句。
7. 用统计函数__avg() 可以计算平均值,用统计函数__max() 可以计算某一列上的最大值。
8. count(*) 是一个非常特殊但又非常有用的函数,它可以计算出满足约束条件的一组条件的行数。
9. 当完成数据结果的查询和统计后,可以使用HAVING关键字来对查询和计算的结果进行__进一步的筛选。
10.在INSERT语句中,VALUES列表中的表达式的数量,必须匹配列列表中的 列名次序一样,个数相等,
表达式的数据类型必须可以和表格中对应各列的数据类型___一一对应 。
11. SQL中,有一种简便的插入多行数据的方法,这种方法是使用___select语句_____________查询出的结果代替VALUES子句。
12. 删除视图的语句是__DROP VIEW VIEW-NAME_____________。
13. 模糊查询中,*表示__全部信息______________,%表示__表示从0-N个任意字符______________,[]表示_表示方括号里的列出的任意一个字符_________、[^]表示___任意一个没有再方括号里列出的字符 。
14. 视图是一种数据库对象,是从一个或多个表或视图中导出的_select语句,为视图提供数据的表称为__基表_____________。
15. 数据库系统是指计算机系统中引进数据库后的系统构成,主要包括以下几方面:计算机硬件、数据库、数据库管理系统_________和___应用系统和用户___。
16. 数据模型有三种类型,分别是_层次模型________、网状模型______和___关系模型_______。SQL属于_关系_______型数据库管理系统。
17. 实体----关系(ER)图中的矩形框表示_实体_____、椭圆型框表示___属性 。
18. SQL SERVER的两种身份验证模式分别是___windows身份验证模式_________和_____混合模式。
19. SQL语言的英文全称为structured packingQuery Language ,在SQL中,基本表的删除可用drop table table-name 语句,删除基本表中的所有元组可用delete [from] table-name where search-conditions语句。建立视图可用create view view-name [column_name,…] as select statement with check option 语句
20. 数据库中,主要数据文件的扩展名为.mdf_______,次要数据文件的扩展名为__ .ndf_______,事务日志文件的扩展名为___ .ldf 。
21. INT 型数据的字段宽度为___4、DATETIME型数据的字段宽度为__8____,逻辑型数据的字段宽度为___1_____。
22. SQL SERVER中的索分为两类,记录的物理顺序和索引顺序相同的是___聚集____索引,
记录的物理顺序和索引顺序不同的是___非聚集____索引,聚集_____索引只能建一个。
23.在数据库技术中,ER模型是一种 数据模型。ER图中包括实体 、关系 、 属性_ 三种基本元素。
24.DB是指:数据库 ,DBMS是指:数据库管理系统 ,DBA是指 数据库管理员
25.关系数据库中不仅包含表,还包括其它数据对象,如_视图________、_索引______等
数据库试卷2
一、填空题(共9题,每空1分,共15分)
1.在使用一个游标的时候可以分为以下几步:、打开游标、从打开的游标中提取行、、释放游标。
2.如果要计算表中的行数,可以使用聚合函数____________。
3.使用T-SQL语句创建视图时,若要求对视图进行UPDATE、INSERT、DELETE操作时要保证更新、插入、删除的行满足视图定义中的谓词条件须使用_________子句。
4.使用T-SQL语句创建存储过程时,若要求对存储过程的定义文本进行加密,应使用_________子句。
5.若要删除sutdent表的全部数据,数据删除后不可撤销,应使用语句____________,若想删除student数据表,应使用语句_______________。
6.在select查询中,若要消除重复行,应使用关键字_____________。
7.SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。
8.Sql Server中的索引,按照索引的顺序是否与数据表中记录的物理顺序相同可分为__________和________。
9.触发器有3种类型,即INSERT类型、 和 。
得分 阅卷人
二、简答题(共3题,每题7分,共21分)
1、判断题 (每题1分,共10分,答案填在下面表格中)
1 2 3 4 5 6 7 8 9 10
( )1. 在SQL Server中用户不能建立全局变量。
( )2. 主键字段允许为空。
( )3. SQL Server的数据库可以导出为Access数据库。
( )4. 删除表时,表中的触发器不被同时删除。
( )5. 验证模式是在安装SQL Server过程中选择的。系统安装之后,可以重新修改SQL Server系统的验证模式。
( )6. 视图本身不保存数据,因为视图是一个虚拟的表。
( )7. 在使用子查询时,必须使用括号把子查询括起来,以便区分外查询和子查询。
( )8. SQL Server有数据导入功能但没有数据导出功能。
( )9. SQL Server有数据备份功能但没有数据还原功能。
( )10. 一个表可以创建多个主键。
2、什么是视图?视图和表相比有什么独特的优势?
3、数据库中的常用完整性有几种?在Sql Server主要通过什么方式实现?
得分 阅卷人
三、应用题(共9题,本题共54分。)
现有关系数据库如下:
数据库名:学生成绩数据库
学生信息表(学号 char(6),姓名,性别,民族,身份证号)
课程信息表(课号 char(6),名称)
成绩信息表(ID,学号,课号,分数)
用SQL语言实现下列功能的sql语句代码。
- 创建数据库[学生成绩数据库]代码。
- 创建数据表[课程信息表]代码; 课程信息表(课号 char(6),名称) ; 要求使用:主键(课号)、非空(名称)
- 创建数据表[学生信息表]代码;
学生信息表(学号 char(6),姓名,性别,民族,身份证号)
要求使用:主键(学号)、唯一(身份证号)、检查(性别) - 查询所有学生的信息;
5.将下列课程信息添加到课程信息表的代码;
课号 名称
101 西班牙语
102 大学英语
6.查询选修课号为102的课程的学生的成绩; - 创建视图[成绩信息表视图]的代码;
成绩信息表视图(学号,姓名,课号,课程名称,分数) - 从学生信息表中查询姓名中有“丽”的女同学的情况:姓名、性别、民族。
得分 阅卷人
四、编程题(共2题,每题5分,共10分)
-
在数据表上机记录中创建一个名为insert_sjkh的insert触发器其作用是:当用户在“上机记录”表中插入记录时,若“上机卡”表中没有该上机号,则提示用户不能插入,否则,提示记录插入成功。(附:上机记录表结构:(上机号 char(13),上机日期 datetime,开始时间 datetime,结束时间 datetime,上机状态 bit)。上机卡表结构:(上机号 char(13),姓名……)
-
在student数据库中的学生、课程注册、课程表中创建一个带参的存储过程cjcx。其功能是:当任意输入一个学生的姓名时,返回该学生的学号、选修的课程名和课程成绩。然后使用存储过程,查询学生“周红瑜”的学号、选修的课程名和课程成绩
-
查询课程成绩小于60分的所有学生的信息,包括学号、姓名。
试卷1学习
一、填空题(共9题,每空1分,共15分)
1.SQL Server的身份验证方式有_______和________。
2.SQL Server中用于存放临时表、临时存储过程以及为其他临时操作提供存储空间的系统数据库是_______________。
3.使用T-SQL语句创建视图时,若要求对视图进行UPDATE、INSERT、DELETE操作时要保证更新、插入、删除的行满足视图定义中的谓词条件须使用_________子句。
4.使用T-SQL语句创建存储过程时,若要求对存储过程的定义文本进行加密,应使用_________子句。
5.若要删除sutdent表的全部数据,数据删除后不可撤销,应使用语句____________,若想删除student数据表,应使用语句________________。
6.在select查询中,若要消除重复行,应使用关键字_____________。
7.Sql Server的数据库文件分为数据文件和__________,其中数据文件又分为_________和__________。
8..Sql Server中的索引,按照索引的顺序是否与数据表中记录的物理顺序相同可分为__________和________。
9.在Sql Server的事务处理中,开启一个事务可用Begin Transaction,提交事务和撤销事务应使用____________和___________。
二、简答题(共3题,每题7分,共21分)
1.在数据库端编程,主要有自定义函数、存储过程和触发器三种形式,请比较一下这三种方式的异同。
2.已知有学生关系S(SNO,SNAME,AGE,DNO),各属性含义依次为学号,姓名、年龄和所在系号;学生选课关系SC(SNO,CNO,SCORE),各属性含义依次为学号、课程号和成绩。
分析以下SQL语句:
SELECT SNO FROM SC WHERE SCORE= (SELECT MAX(SCORE)
FROM SC WHERE CNO=’002’)
请问上述语句完成了什么查询操作?
3.简述一下视图的概念和优点。
三、应用题(共6题,本题共54分。)
1.创建名为“Love”的数据库,其中主数据文件为Lovedat.mdf,初始大小为5M,增长大小为2M,日志文件为Lovedat.ldf,初始大小是3M,最大存储空间是25M,增长是5M。请写出相应的SQL语句。(本题8分)
2.使用sql语句创建表authors,结构如下表所示(本题8分)
列名 数据类型 大小 是否为空 默认值 说明
authorID int 4 N 编号(主键),自动增长
authorName nvarchar 50 N 姓名
Phone nvarchar 13 Y 电话
address nvarchar 255 Y 地址
3.使用SQL语句对2中创建的authors表进行如下修改:(每小题5分,共15分)
(1)添加Sex 列 char(2),city列 varchar(20)。
(2)删除city列。
(3) 修改作者信息表authors中的address列将该列的属性的长度更改为500。
4.系部表的创建语句如下,请完成以下操作(每小题5分,共15分)
CREATE TABLE 系部 (系部代码 char(2) CONSTRAINT pk_xbdm PRIMARY KEY,
系部名称 varchar(30) NOT NULL,系主任 char(8))
(1)将系部表中计算机系的系主任改为‘张中裕’
(2)将系部表中的系部名称列中的‘系’全部更改为‘科学系’(使用replace函数,用法:replace(串1,串2,串3),其功能是将串1中的串2 替换为串3 )
(3)在系部表中删除系主任姓‘张’的系部数据
5.有二个数据表XS(xh, xm)和XS_KC(xh, kch, cj),用两种方法,写出如下查询:“查找数据库中所有学生的学号(xh)、姓名(xm)以及其所选修的课程号(kch)和成绩(cj)”。(本题8分)
得分 阅卷人
四、编程题(共2题,每题5分,共10分)
-
在数据表上机记录中创建一个名为insert_sjkh的insert触发器其作用是:当用户在“上机记录”表中插入记录时,若“上机卡”表中没有该上机号,则提示用户不能插入,否则,提示记录插入成功。(附:上机记录表结构:(上机号 char(13),上机日期 datetime,开始时间 datetime,结束时间 datetime,上机状态 bit)。上机卡表结构:(上机号 char(13),姓名……)
-
在student数据库中的学生、课程注册、课程表中创建一个带参的存储过程cjcx。其功能是:当任意输入一个学生的姓名时,返回该学生的学号、选修的课程名和课程成绩。然后使用存储过程,查询学生“周红瑜”的学号、选修的课程名和课程成绩
1、说明ER模型的作用?
答:ER模型(实体关系模型)是描述概念世界,建立概念世界的工具,ER方法把管理系统所要描述的问题划分为单个的实体,通过实体间的联系实现有效、自然地模拟现实世界。
2、什么是关系模型?关系的完整性包括哪些内容?
答:关系模型就是用二维表格结构来表示实体及实体之间联系的模型,关系模型包括四类完整性:域完整性、实体完整性、参照完整性和用户定义的完整性。
3、按照功能,SQL语言分为哪4部分?
答:按照功能,SQL语言分为数据定义语言、查询语言、数据操纵语言、数据控制语言。
4、规范化范式是依据什么来划分的?它与一事一地的原则有什么联系?
答:规范化范式根据一个关系满足数据依赖的程度不同,可规范化为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。规范化范式遵循一事一地的原则,将描述一个独立事物的属性组成一个关系。
5、什么是实例?经常提到的SQL Server 2005服务器和服务器实例是否具有相同的含义?
答:实例就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。一个SQL Server服务器就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。
6、默认实例和命名实例有何差别?在安装和使用上有何不同?
答:实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就是默认实例。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。
7、SQL Server 2005的安全性验证分为哪两个阶段?
答:第1个阶段是身份验证,验证用户是否具有“连接权”;第2个阶段是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器实例的用户,是否具有“访问权”。
8、在SQL Server 2005中数据库文件有哪3类?各有什么作用?
答:SQL Server 2005中数据库文件有主数据文件、辅助数据文件、事务日志文件。主数据文件是数据库的起点,指向数据库中文件的其他部分,同时也用来存放用户数据;辅助数据文件专门用来存放数据;事务日志文件存放恢复数据库所需的所有信息。
9、SQL Server 2005中数据文件是如何存储的?
答:SQL Server 2005中采用以页为数据库存储的基本单位,数据文件的页按顺序编号,文件首页的页码是0。每个文件都有一个文件ID号。在数据库中惟一标识一页,需要同时使用文件ID和页码。在每个文件中,第一页是包含文件特性信息的文件首页,在文件开始处的其他几个页中包含系统信息,如分配映射表。系统页存储在主数据文件和第一个事务日志文件中,其中有一个系统页包含数据库属性信息,它是数据库的引导页。
10、SQL Server 2005中创建、查看、打开、删除数据库的方法有哪些?
答:方法分别有两种,即可以通过SQL Server Management Studio图形化界面实现,也可以通过SQL语句命令实现。
通过SQL语句,使用__CREATE_ DATABASE 命令创建数据库,使用 EXEC sp_helpdb_命令查看数据库定义信息,使用_ EXEC sp_dboption 命令设置数据库选项,使用_ ALTER DATABASE 命令修改数据库结构,使用 DROP DATABASE 命令删除数据库。
11、安装SQL Server 2005时,系统自动提供的4个系统数据库分别是什么?各起什么作用?
答:系统自动提供的4个系统数据库分别是master数据库、model数据库、msdb数据库、tempdb数据库。
12、如何理解表中记录和实体的对应关系?为什么说关系也是实体?在表中如何表示?
答:实体是客观存在并且可以相互区别的事物,实体可以是具体的事物,也可以是抽象的事物。不同的事物是用不同的特征决定的,用来描述实体的特性称为实体的属性。表中每条记录对应一个实体,而每个字段保存着对应实体的属性值。
13、说明主键、惟一键和外键的作用。说明它们在保证数据完整性中的应用方法。
答:主键是唯一识别一个表的每一记录,作用是将记录和存放在其他表中的数据进行关联,并与外键构成参照完整性约束。惟一键用于指明创建惟一约束的列上的取值必须惟一。外键用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。外键约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。
参照完整性要求有关联的两个或两个以上表之间数据的_一致性。参照完整性可以通过建立_主键_和_外键_来实现。
创建表用__CREATE TABLE _语句,向表中添加记录用_INSERT INTO_语句,查看表的定义信息用 EXECUTE sp_help 语句,修改表用 ALTER TABLE 语句,删除表用 DROP TABLE语句。
14、数据完整性包括哪些?如何实现?
答:数据完整性包括实体完整性,域完整性,引用完整性,用户定义完整性,通过在表中,列中,表与表之间设置主键、惟一键、外键、CHECK约束等可以实现。
15、说明使用标识列的优缺点。
答:优点:方便可以让计算机为表中的记录按照要求自动地生成标识字段的值。
缺点:标识列值的形成是按照用户确定的初值和增量进行的,如果在经常进行删除操作的表中定义了标识列,那么在标识值之间就会产生不连续现象。如果要求不能出现这种不连续的值,那么就不能使用标识列属性。
16、为什么说视图是虚表?视图的数据存在什么地方?
答:视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据。视图通过定义从基表中搜集数据,并展现给用户。数据存储在对应的数据表中。
创建视图用 CREATE VIEW 语句,修改视图用ALTER VIEW语句,删除视图用DROP VIEW语句。查看视图中的数据用SELECT语句。查看视图的基本信息用sp_helptext存储过程,查看视图的定义信息用 EXEC sp_helptext 存储过程,查看视图的依赖关系用EXEC sp depends存储过程。
17、说明视图的优缺点。
答:优点:(1)视图能简化用户的操作;(2)视图机制可以使用户以不同的方式查询同一数据;(3)视图对数据库重构提供了一定程度的逻辑独立性;(4)视图可以对机密的数据提供安全保护。
缺点:(1)降低性能,通过视图查询起来需要花费时间;(2)视图是只读的,更新时需要更新原表,对用户来说很麻烦。
18、通过视图修改数据要注意哪些限制?
答:对视图进行的修改操作有以下限制:
(1)若视图的字段来自表达式或常量,则不允许对该视图执行INSERT和UPDATE操作,但允许执行DELETE操作。
(2)若视图的字段来自集合函数,则此视图不允许修改操作。
(3)若视图定义中含有GROUP BY 子句,则此视图不允许修改操作。
(4)若视图定义中含有DISTINCT短语,则此视图不允许修改操作。
(5)一个不允许修改操作视图上定义的视图,也不允许修改操作。
19、SQL Server 2005提供了哪两种数据访问的方法?
答:两种方法分别为:表扫描法和索引法
20、创建索引的好处主要有哪些?
答:创建索引好处主要是加快数据查询和加快表的连接、排序和分组工作。
按照索引值的特点分类,可将索引分为__惟一__索引和_非惟一_索引;按照索引结构的特点分类,可将索引分为_聚集__索引和__非聚集__索引。
21、聚集索引与非聚集索引之间有哪些不同点?
答:聚集索引会对表进行物理排序,而非聚集索引不会对表进行物理排序。
22、什么是批处理?批处理的结束标志是什么?
答:批处理就是一个或多个Transact-SQL语句的集合,用GO语句作为一个批处理的结束。
23、一些SQL语句不可以放在一个批处理中进行处理,它们需要遵守什么规则?
答:一些SQL语句不可以放在一个批处理中进行处理,它们需要遵守以下规则:
(1)大多数CREATE命令要在单个批命令中执行,但CREATE DATABASE、CREATE TABLE和CREATE INDEX例外。
(2)调用存储过程时,如果它不是批处理中的第一个语句,则在其前面必须加上EXECUTE,或简写为EXEC。
(3)不能把规则和默认值绑定到表的字段或用户定义数据类型上之后,在同一个批处理中使用它们。
(4)不能在给表字段定义了一个CHECK约束后,在同一个批处理中使用该约束。
(5)不能在修改表的字段名后,在同一个批处理中引用该新字段名。
24、常量和变量有哪些种类?
答:常量有字符串常量、数值常量、日期常量。变量主要有局部变量和全局变量。
25、什么是用户自定义函数?它有哪些类型?建立、修改和删除用户自定义函数使用什么命令?
答:用户定义的函数是由一个或多个Transact-SQL语句组成的子程序。用户定义的函数类型有标量函数、内嵌表值函数、多语句表值函数。建立、修改、删除用户自定义函数命令分别是CREATE FUNCTION、ALTER FUNCTION和DROP FUNCTION。
26、使用游标访问数据包括哪些步骤?
答:使用游标访问数据包括的步骤有声明游标、打开游标、从游标中获取数据、关闭游标、释放游标。
27、简述使用存储过程有哪些优缺点?
答:优点:
(1)通过本地存储、代码预编译和缓存技术实现高性能的数据操作。
(2)通过通用编程结构和过程重用实现编程框架。如果业务规则发生了变化,可以通过修改存储过程来适应新的业务规则,而不必修改客户端应用程序。
(3)通过隔离和加密的方法提高了数据库的安全性。
缺点:移植性较差,增加数据库服务器压力。
2、创建存储过程有哪些方法?执行存储过程使用什么命令?
答:创建存储过程有两种方法,可用通过SQL命令建立或者通过SQL Server Management Studio图形界面建立。执行存储过程使用EXECUTE命令。
3、执行存储过程时,在什么情况下可以省略EXECUTE关键字?
答:如果存储过程是批处理中的第一条语句,那么不使用 EXECUTE 关键字也可以执行该存储过程。
28、简述使用触发器有哪些优缺点。
答: 优点:
(1)多张表的级联修改。触发器能实现各种级联操作,包括数据的修改、插入和删除。
(2)强于CHECK的复杂限制。
(3)比较数据修改前后的差别。
(4)强制表的修改要合乎业务规则。
缺点:
(1)可移植性是触发器最大的缺点。
(2)占用服务器端太多的资源。
(3)不能做DDL。
(4)触发器排错困难,而且数据容易造成不一致,后期维护不方便。
29、说明创建触发器命令中FOR、AFTER、INSTEAD OF各表示什么含义?
答:
(1)FOR | AFTER。FOR与AFTER同义,指定触发器只有在触发SQL语句中指定的所有操作都已成功执行后才激发。所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器,即为后触发。
(2)INSTEAD OF。指定执行触发器而不执行造成触发的SQL语句,从而替代造成触发的语句。在表或视图上,每个INSERT、UPDATE或DELETE 语句只能定义一个INSTEAD OF触发器,替代触发。
30、TRUNCATE TABLE语句是否会激活DELETE触发器?在触发器中的SQL语句有哪些限制?
答:由于TRUNCATE TABLE语句的操作不被记录到事务日志,所以它不会激活DELETE触发器。所有建立和修改数据库及其对象的语句、所有DROP语句都不允许在触发器中使用。
31、什么是事务的4个基本属性?说明3种事务各有什么特点。
答:事务作为一个逻辑工作单元有4个属性,分别是原子性、一致性、隔离性和持久性。SQL Server 2005有以下3种事务模式。
(1)自动提交事务。这是SQL Server 2005的默认模式。每个单独的SQL语句都是一个事务,并在其完成后提交。不必指定任何语句控制事务。
(2)显式事务。每个事务均以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。
(3)隐性事务。通过API函数或Transact-SQL的SET IMPLICIT_TRANSACTIONS ON语句,将隐性事务模式设置为打开。这样在前一个事务结束时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式结束。
32、SQL Server 2005的安全模型分为哪3层结构?
答:SQL Server 2005的安全模型分为3层结构,分别为服务器安全管理、数据库安全管理和数据库对象的访问权限管理。
33、说明固定的服务器角色、数据库角色与登录账户、数据库用户的对应关系及其特点。
答:服务器安全管理实现对SQL Server 2005服务器实例(简称服务器)的登录账户、服务器配置、设备、进程等方面的管理,这部分工作通过固定的服务器角色来分工和控制。数据库安全管理实现对服务器实例上的数据库用户账号、数据库备份、恢复等功能的管理,这部分工作通过数据库角色来分工和控制。数据库对象的访问权限的管理,决定对数据库中最终数据的安全性管理。数据对象的访问权限决定了数据库用户账号,对数据库中数据对象的引用以及使用数据操作语句的许可权限。
34、如果一个SQL Server 2005服务器采用仅Windows方式进行身份验证,在Windows操作系统中没有sa用户,是否可以使用sa来登录该SQL Server服务器?
答:不能使用sa来登录该SQL Server服务器
SQL Server 2005有哪两种安全模式?它有什么区别?
答:两种安全模式分别是仅Windows身份验证模式和混合验证模式。仅Windows身份验证模式就是只使用Windows验证机制的身份验证模式;而混合模式则是用户即可以选择使用Windows 验证机制也可以选择使用SQL Server验证机制。
35、什么是备份设备?物理设备标识和逻辑名之间有什么关系?
答:备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质。备份设备可以是硬盘、磁带或管道。物理备份设备指操作系统所标识的磁盘文件、磁带等,逻辑备份设备名是用来标识物理备份设备的别名或公用名称。使用逻辑备份设备名的优点是比引用物理设备名简短。
36、4种数据库备份和恢复的方式分别是什么?
答:
(1)使用SQL Server Management studio备份数据库;
(2)使用SQL命令备份数据库
(3)使用SQL Server Management studio恢复数据库
(4)使用SQL命令恢复数据库
模拟测验1参考答案
一、1 2 3 4 5 6 7 8 9 10
A D C c D A C A A C
二、1、CREATE DATABASE ks
ON PRIMARY
(NAME=’ks_data’,
FILENAME=‘C:\server\ks_data.mdf’,
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB)
LOG ON
(NAME=’ks_log’,
FILENAME=‘C:\server\ks_log.ldf’,
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
2、1)学生表:
CREATE TABLE 学生表 (
学号 char (8) primary Key,
姓名 char(8),
年龄 int,
性别 bit)
课程表:
CREATE TABLE 课程表 (
课程号 char (7) PRIMARY KEY,
课程名 char(20),
任课教师 char (8))
成绩表:
CREATE TABLE 成绩表 (
学号 char (8),
课程号 char (7),
成绩 Numeric (4,2))
(2)SELECT 课程号, 课程名 FROM 课程表 WHERE 任课教师=‘ 刘峰’
(3)SELECT 学号, 姓名 FROM 学生表 WHERE 性别=‘男’ AND 年龄>20
(4)SELECT 课程号 FROM 成绩表, 学生表
WHERE学生表.姓名=‘ 王文芳’ AND 学生表.学号=成绩表.学号
(5)SELECT 学号 FROM 成绩表,课程表,学生表
WHERE 课程表.任课教师=‘刘世峰’ AND 课程表.课程号=成绩表.课程号
AND 课程表.学号=成绩表.学号
(6)SELECT 学号 FROM 成绩表,课程表
WHERE 课程表.课程名=‘数据库技术’ AND 课程表.课程号=成绩表.课程号
(7)INSERT INTO 学生表 VALUES (‘2003001’,‘吴红’,‘21’,1)
(8)DELETE FROM 学生表 WHERE 学号=‘20020001’
DELETE FROM学生表 WHERE 学号=‘20020001’
(9)UPDATE 学生表 SET 年龄=’22’ WHERE学号=‘20030002’
数据库试卷2参考答案
一、1.声明游标,关闭游标 2.tmepdb 3.with check option
4. with encryption ; 5.truncate table student,drop table student
6.distinct 7.日志文件,主要数据文件,次要数据文件
8.聚集索引,非聚集索引 9.update,delete
二、1
1 2 3 4 5 6 7 8 9 10
对 错 对 错 对 对 对 错 错 错
2.答:视图是一个虚拟表,并不存储任何物理数据。视图与真正的表很类似,也是由一组命名的列和数据行组成,其内容由查询所定义。但是视图并不是以一组数据形式存储在数据库中,数据库中只存储视图的定义,而不存在视图中的数据,视图中的数据仍存储在基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。
视图和表相比有独特的优势主要有以下几个方面:(1)保证数据的安全。(2)简化查询操作。(3)保证数据的逻辑独立性。
3.数据完整性是指存储在数据库中的数据正确无误并且相关数据具有一致性
1)实体完整性
实体:表中的记录,一个实体就是指表中的一条记录。
实体完整性:在表中不能存在完全相同的记录,且每条记录都要具有一个非空且不重复的主键值。
实现实体完整性的方法:设置主键、惟一索引、惟一约束
2)域完整性
域完整性:向表中添加的数据必须与数据类型、格式及有效的数据长度相匹配。
实现域完整性的方法:CHECK约束、外键约束、默认约束、非空定义、规则以及在建表时设置的数据类型
3)参照完整性
参照完整性:又称为引用完整性。是指通过主键与外键相联系的两个表或两个以上的表,相关字段的值要保持一致。
实现实体完整性的方法:外键约束
4)用户定义的完整性
用户定义的完整性:是根据具体的应用领域所要遵循的约束条件由用户自己定义的特定的规则。
约束:SQL Server提供的自动强制数据完整性的一种方法。它通过定义列的取值规则来维护数据的完整性。
常用约束:NOT NULL,CHECK、UNIQUE、PRIMARY KEY、FOREIGN KEY、DEFAULT
三
no 参考答案
- create database 学生成绩数据库
ON
( NAME = student,
FILENAME = ‘e:\student.MDF’,
SIZE = 10mb,
Maxsize=unlimited,
FILEGROWTH = 1mb)
LOG ON
( NAME = studentLog1,
FILENAME = ‘e:\studentLog1.LDF’,
maxsize = 5mb,
FILEGROWTH = 1mb) - create table 课程信息表
(课号 char(6) primary key,
名称 char(20) not null) - create table 学生信息表
(学号 char(6) primary key,
姓名 char(8),
性别 char(2) check(性别 in (‘男’, ‘女’)),
民族 char(12),
身份证号 char(18) unique
) - Select * from 学生信息表
5. insert 课程信息表 values(’ 101’, ‘西班牙语’)
insert 课程信息表 values(’ 102’, ‘大学英语’)
6. Select * from 成绩信息表 where 课号=’ 102’
7. create view 成绩信息表视图
as
select 成绩信息表.学号,姓名,成绩信息表.课号,名称 课程名称,分数
from 成绩信息表,学生信息表,课程信息表
where 成绩信息表.学号=学生信息表.学号 and 成绩信息表.课号=课程信息表.课号
8. select 姓名, 性别, 民族
from 学生信息表
where 姓名 like ‘%丽%’ and 性别=‘女’
9. select 学号, 姓名
from 学生信息表
where 学号 in
(select distinct 学号 from 成绩信息表 where 分数<60)
四、1.Create trigger insert_sjkh on dbo.上机记录 for insert
As
begin
Declare @asjkh char(13)
Declare @acount int
Select @asjkh=上机号from inserted
Select @acount=count() from 上机卡where 上机号=@asjkh
If @acount=0
Print ‘上机卡中无此卡号,不能插入’
Else
Print ‘数据插入成功’
end
2. Create PROCEDURE [dbo].[cjcx]
@axm char(8)
AS
BEGIN
SELECT 学生.学号,课程.课程名,课程注册.成绩 from 学生,课程,课程注册
where 学生.学号=课程注册.学号 and 课程注册.课程号=课程.课程号 and 姓名=@axm
END
执行存储过程cjcx,查询“周红瑜”的学号、选修的课程名和课程成绩。
Exec cjcx @axm=’周红瑜’
试卷1参考答案
一、1.Windows集成验证,混合验证 2.tmepdb 3.with check option 4. with encryption ; 5.truncate table student,drop table student 6.distinct 7.日志文件,主要数据文件,次要数据文件 8.聚集索引,非聚集索引 9.Commit transaction,rollback transaction
二、1.答:相同点:存储过程、触发器和自定义函数都能完成特定的功能,并且都存储在服务器端的数据字典中。区别:存储过程和自定义函数都可以定义参数,触发器不可以;从调用方式上,存储过程和自定义函数都需要由应用程序或其他功能体进行调用,而触发器是当相应事件发生时自动执行,不须干预;自定义函数需要定义返回类型,函数体中至少要有一条用于返回返回值的语句,而存储过程和触发器不需要。
2.答:主要的系统数据库有master、model、tempdb和msdb。其中Master数据库保存了Sql Server2005的初始化信息和所有系统级信息。Master数据库是Sql Server 2005中最重要的系统数据库,对其更新和删除操作而导致Master数据库的不可用都将使得整个Sql Server2005系统无法启动和运行。Model数据库是用于保存所有用户数据库和Tempdb数据库的模版。每当用户创建数据库的时候,Sql Server 2005将用Model数据库提供的信息初始化被创建的数据库。Msdb数据库是Sql Server2005代理服务工作时使用的数据库,用于为Sql Server代理服务在警报和作业等操作时提供存储空间。Tempdb数据库是一个临时的系统数据库,用于为所有临时表、临时存储过程以及其他的临时操作提供存储空间。
3.答:视图是一个虚拟表,并不存储任何物理数据。视图与真正的表很类似,也是由一组命名的列和数据行组成,其内容由查询所定义。但是视图并不是以一组数据形式存储在数据库中,数据库中只存储视图的定义,而不存在视图中的数据,视图中的数据仍存储在基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。视图和表相比有独特的优势主要有以下几个方面:(1)保证数据的安全。(2)简化查询操作。(3)保证数据的逻辑独立性。
三、1. create database love on (name=lovedat,filename=‘d:\database\lovedat.mdf’,size=5,Maxsize=unlimited,filegrowth=2)
log on (name=lovedat_log,filename=‘d:\database\lovedat.ldf’,size=3,Maxsize=25,filegrowth=5)
2. create table authors (authorid int identity(1,1) primary key not null, authorname nvarchar(50) not null,phone nvarchar(13) null, address nvarchar(255))
3. (1) alter table authors add sex char(2) null,city nvarchar(20) null; (2) alter table authors drop column city
(3) alter table authors alter column address nvarchar(500) not null
4. (1) Update 系部 set 系主任=’ 张中裕’ where 系部名称=’计算机系’
(2) Update 系部 set 系部名称=replace(系部名称,’系’,’科学系’)
(3) Delete from 系部 where 系主任 like ‘张%’
5. (1) select xs.xh,xm,kch,cj from xs, xs_kc where xs.xh=xs_kc.xh;
(2) select xs.xh,xm,kch,cj from xs join xs_kc on xs.xh=xs_kc.xh;
四、1.Create trigger insert_sjkh on dbo.上机记录 for insert
As
begin
Declare @asjkh char(13)
Declare @acount int
Select @asjkh=上机号from inserted
Select @acount=count() from 上机卡where 上机号=@asjkh
If @acount=0
Print ‘上机卡中无此卡号,不能插入’
Else
Print ‘数据插入成功’
end
2. Create PROCEDURE [dbo].[cjcx]
@axm char(8)
AS
BEGIN
SELECT 学生.学号,课程.课程名,课程注册.成绩 from 学生,课程,课程注册
where 学生.学号=课程注册.学号 and 课程注册.课程号=课程.课程号 and 姓名=@axm
END
执行存储过程cjcx,查询“周红瑜”的学号、选修的课程名和课程成绩。
Exec cjcx @axm=’周红瑜’