数 据 库 应 用 技 术
练 习 参 考 答 案 ( 仅 供 参 考 )
第 1章 数 据 库 基 础 知 识
一 、选择题
1.C 2.A 3.A 4.D 5.C 6.C
7.A 8.A
二 、填空题
1.数 据操作
2.关 系模型
3. 唯一标识一条
4. 域 实体完整性 完整性
5. 连 投影 接
6. 部分函数依赖
三 、设计题
1. 参考答案:
( 1
) 订
单 (订单号,订货量,订货日期,交货日期,销售员编号,客户编号,货品编号)
( 2 ) 货品(货品编号,货品名称,规格,售价,成本价,供货商编号)
( 3 ) 供货商(供货商编号,供货商名称,电话,地址)
( 4 ) 客户(客户编号,姓名,联系电话,地址)
( 5 ) 销售员(销售员编号,姓名,电话,部门编号)
( 6 ) 部门(部门编号,部门名称,电话,地址)
2. 参考答案
( 1 ) E-R 模 型分立图
( 2 ) E-R 模 型总装简图
注 E-R图 :与运输有关的 和关系模式没有提供,请读者自行补上。
( 3 ) 关系模式:
① 营 业网点(营业点编号,营业点编号,负责人,地址,联系电话,服务范围)
② 操 作员(操作员编号,用户名,密码,真名,联系电话,营业点编号)
③ 价 目表(价目编号,城区名称,标准运价,标重界限,超标运价)
④ 托运 / 收件(业务编号,行包重量,费用,运价编号,托运日期,备注,托办
操 员 操 员 作 作 编号,托运人编号;结办 编号,收件人编号,收件日期)
⑤ 托 / 收 / 运人 件人(托运人
收 件人编号,姓名,性别,身份证号,联系电话,通讯地址,邮政编码)
第 2章 SQL Server 2008的 安 装 与 配 置
一 、选择题
1.A 2.A 3.A 4.B 5.C 6.
A 7. D
8.B 9. D
二 、填空题
1. 智 可信任的 能的
2. 开 速 标准版 发版 成版
3. 64 位 Windows操 32 位 Windows操 的 作系统 的 作系统环境
4.服 不 务器引擎 为其他实例共享
5.TCP端 口号
第 3章 数 据 库 管 理
一 、选择题
1.C 2.D 3.C 4.C 5.B 6.A
7.D 8.C
9.B 10.D
二 、填空题
1. 用 辅助数据文件 户自定义文件组
2.Master Model
3.数 逻 文 据库名称 辑名称 件初始大小
4.DBCC SHRINKDATABASE (< 数 >,< 预 >) 据库名 留百分比空间
5. DROP DATABASE < 数 >[,…n] 据名称
三 、设计题
1. 参考答案
( 1 ) SSMS图 “ qqtx”的 : 使用 形界面方式创建数据库 数据库文件参数
( 2 ) 数据库重命名语句
EXECUTE sp_renamedb qqxt,qqxtgl
( 3 )T-SQL创 qqxt”数 建“ 据库语句
CREATE DATABASE qqxt --创 qqxt数 建 据库
ON PRIMARY --定 义主文件组
( NAME='qqxt', -- 定 文 义 件的逻辑名称
FILENAME='d:\qqxt\qqxt.mdf', --定 数 库文 存 路 义 据 件的 放 径和名称
SIZE=3MB, --定 文 义 件的初始大小
MAXSIZE=16MB, -- 定 文 义 件可增长到的最大大小
FILEGROWTH=10% -- 定 文 义 件的自动增量
)
LOG ON --定 义日志文件 ( NAME='qqxt_log',
FILENAME='d:\qqxt\qqxt.ldf', SIZE=1MB,
MAXSIZE =UNLIMITED, FILEGROWTH =1MB )
2. 参考答案
T-SQL创 oagl”数 语 建“ 据库 句:
CREATE DATABASE oagl ON PRIMARY
( NAME='oagl_p1',
FILENAME='d:\oagl\oagl_p1.mdf', SIZE=8,
MAXSIZE=100, FILEGROWTH=20%
),
( NAME='oagl_p2',
FILENAME='d:\oagl\oagl_p2.mdf', SIZE=4,
MAXSIZE=UNLIMITED, FILEGROWTH=8
)
LOG ON ( NAME='oagl_log1',
FILENAME='d:\oagl\oagl_log1.ldf', SIZE=6,
MAXSIZE=32, FILEGROWTH=2 ),
( NAME='oagl_log2', FILENAME='d:\oagl\oagl_log2.ldf',
SIZE=1,
MAXSIZE=UNLIMITED, FILEGROWTH=10%
)
第 4章 数 据 库 表 设 计
一 、选择题
1.B 2.B 3.C 4.D 5.A 6.D
7. C
8.C 9. B
二 、填空题
1.一 数 个或多个字段 据类型
2. 系 用户表 统表
3. 创建表和修改表
4. T-SQL语 设计与调试 句
5. 插入记录和修改记录数据
三 、设计题
1. 参考答案
( 1 ) SSMS方 4-1】 4-2】 使用 式创建表请参考书本【例 和【例 的操作过程。
( 2 )T-SQL语 参 句 考答案
CREATE TABLE provider(
id INT IDENTITY(1,1) CONSTRAINT pk_provider PRIMARY KEY,
供 VARCHAR(8) NOT NULL CONSTRAINT uq_ghxbh 货商编号
UNIQUE,
供 VARCHAR(64) NOT NULL CONSTRAINT uq_ghxmc 货商名称
UNIQUE,
联 VARCHAR(32) NOT NULL, 系人
联 VARCHAR(40) NOT NULL, 系电话
QQ 号 VARCHAR(16),
域 VARCHAR(64) , 名
通 VARCHAR(128) NOT NULL, 讯地址
邮 VARCHAR(5) NOT NULL, 政编码
业 VARCHAR(512) 务范围
)
2.参 考答案
( 1 ) SSMS方 4-1】 4-2】 使用 式创建表请参考书本【例 和【例 的操作过程。
( 2 )T-SQL语 参 句 考答案
CREATE TABLE inventory(
id INT IDENTITY(1,1) CONSTRAINT pk_inventory PRIMARY KEY,
商 VARCHAR (6) NOT NULL CONSTRAINT uq_xpbh 品编号
UNIQUE,
商 VARCHAR(64) NOT NULL CONSTRAINT uq_xpmc UNIQUE, 品名称
型 VARCHAR(32) NOT NULL, 号
规 VARCHAR(32), 格
条 VARCHAR(64) NOT NULL, 形码
库 INT, 存量
单 DECIMAL(12,2) CONSTRAINT ck_dj CHECK(单 >0), 价 价
进 DECIMAL(12,2) CONSTRAINT ck_jhj CHECK(进 >0), 货价 货价
仓 VARCHAR(24), 位
进 DATE, 货日期
最 INT CONSTRAINT df_Unumber DEFAULT 200, 高预警数
最 INT CONSTRAINT df_Lnumber DEFAULT 10, 低预警数
provider_id INT CONSTRAINT fk_in_pr FOREIGN KEY REFERENCES provider(id)
)
3.参 考答案
ALTER TABLE student ADD
生 VARCHAR(32) 源地
GO
EXECUTE sp_rename 'student.[高 ]',' 入 ','COLUMN' 考总分 学总分
GO
ALTER TABLE student
ADD CONSTRAINT ck_rszf CHECK( 入 >=0 AND 入 学总分 学总分
<=1000) GO
ALTER TABLE student ADD CONSTRAINT df_syd DEFAULT '广 ' FOR 东
生 源地
GO
第 5章 表 数 据 的 维 护
一 、选择题
1.B 2.A 3.B 4.A 5.B 6. B
7.B 8.D 9.C 10 . C
二 、填空题
1. 人工输入
2.SQL脚 SQL脚 .sql 本 本文件
3. 可 主键或唯一键 代表一定记录范围
4.INSERT UPDATE DELETE
5. 删除规则
三 、设计题
1. 参考答案
( DROP DATABASE jwgl 1)
( 用 “ jwgl” 数 T-SQL脚 2) 记事本打开 据库教学模型的 本文件,将内容粘贴到
SSMS管 SQL编 窗 理器中的“ 辑器”
格
, 然后 单 工 运行” 行 可。 击 具栏 的“ ! 按钮执 即
2 在 .
完 成
第 情况下 1 题 的 ,设计 T-SQL语 如下 操作: 句完成
( 1 )参 考答案
INSERT INTO specialty (专
业 业 控 编 名 号 称 ,专 ) VALUES('0201','数 技术 ')
( 2 )参 考答案
INSERT INTO class(班 编号 , 班 名称 , 年 ,specialty_id) 级 级 级
VALUES('02011301',' 数
控 13-1','2013',(SELECT id FROM specialty
WHERE 专
业 控 名 称 =' 数 技术 '))
或 :
打 specialty专 开
业 查 控 业 如 值 表 的 是 "数 技术 "专 id字 值 , 例 , 如 id的 5, 段 果
则 可用
下
述 语句操作 :
INSERT INTO class(班 编号 , 班 名称 , 年 ,specialty_id) 级 级 级
VALUES('02011301','数
控 13-1','2013',5)
( 3 )参 考答案
DELETE student WHERE 学 ='0102110103' 号
( 4 )参 考答案
由于表间没有建立级联的“删除规则”,要从“ class” 班级表中删除“计算机 12-1”
班
的 须 四步进 记 录 , 分 行:
① 从
“ 绩 学 的成 绩 score” 成 表中 计 12-1”班 生 记录; 删 算机 除 “
② 从
“ 生 所 记录; student”学 表中 该班 的 有学 生 删 除
③ 从
“ 课 开过的 程记录; task”开 任务 该班所 课 表 中 删除
④ 从
“ 的 记 录 。 class” 班 表中 计 12-1”班 级 删 算机 除 “
语 如下 : 句
-- 方 id 值 法一:通过查询获得班级的
“ -- 从 score”成 “ 12-1”班 绩表中删除计算机 学生的成绩记录:
DELETE score WHERE student_id in(select id from student WHERE
class_id=(SELECT id FROM class WHERE 班 名称 =' 计 级
算 机 12-1'))
GO
“ -- 从 student”学 生表中删除该班的所有学生记录:
DELETE student WHERE class_id=(SELECT id FROM class WHERE
班 名称 =' 计 级
算 机 12-1')
GO
“ -- 从 task”开 课任务表中删除该班所开过的课程记录:
DELETE task WHERE class_id=(SELECT id FROM class WHERE 班级名称
=' 计
算 机 12-1')
GO --
“ 从 class”班 “ 12-1”班 级表中删除计算机 的记录:
DELETE class WHERE 班 名称 =' 计 级
算 机 12-1'
-- 或 :
-- 方 :使 SSMS方 id 值 法二 用 式查询得班级的
-- 在 SSMS 管 class 班 “ -1”班 id 值 3 理器中打开 级表,查到计算机 的 为
--
“ 从 score”成 “ 12-1”班 绩表中删除计算机 学生的成绩记录:
--DELETE score WHERE student_id in(select id from student WHERE class_id=3)
--GO --
“ 从 student”学 生表中删除该班的所有学生记录:
--DELETE student WHERE class_id=3 --GO
“ -- 从 task”开 课任务表中删除该班所开过的课程记录:
--DELETE task WHERE class_id=3 --GO
--
“ 从 class”班 “ 12-1”班 级表中删除计算机 的记录:
--DELETE class WHERE id=3 --GO
-- 如 “” 果表间建立了级联的删除规则,则用一行语句即可:
--DELETE class WHERE 班 名称 =' 计 级
算 机 12-1'
-- 或 :
--DELETE class WHERE id=3
( 5 )参 考答案
UPDATE teacher
SET 教 =' 刘 ' 师姓名 博士
WHERE 教 ='010104' 师编号
( 6 )参 考答案
UPDATE student
SET class_id=(SELECT id FROM class WHERE 班 =' 计 级名称 算机
11-1')
WHERE 姓 =' 黄 ' 名 听听
( 7 )参 考答案
UPDATE score
SET 成 =85 绩
WHERE student_id=(SELECT id FROM student WHERE 姓 名
=' 陈 ') and task_id in(SELECT id FROM task WHERE 小东
course_id=(SELECT id FROM course WHERE 课 ='JavaScript 程名称
程 ')) 序设计
3.参 考答案
( 0 )创 建表
CREATE TABLE dept (
id INT IDENTITY(1,1) CONSTRAINT pk_dept PRIMARY KEY, name VARCHAR(32) NOT NULL CONSTRAINT uq_name UNIQUE )
GO
CREATE TABLE staf (
id INT IDENTITY(1,1) CONSTRAINT pk_staf PRIMARY KEY, dept_id INT CONSTRAINT fk_st_de FOREIGN KEY REFERENCES dept(id),
number VARCHAR(6) CONSTRAINT uq_number UNIQUE, name VARCHAR(32) NOT NULL,
sex VARCHAR(6) CONSTRAINT ck_sec CHECK(sex=' 男 ' OR sex='女'),
age INT )
( 1 )参 考答案
INSERT INTO dept(name)
VALUES ('开 '), 发部
('技 '), 术部
('生 部'), 产
('后 部'), 勤
('财
务 部 ')
GO
INSERT INTO staf(dept_id,number,name,sex,age)
VALUES (1,'001','张 ','男 ',39), 明明
(2,'002','李
小 双','女 ',32),
(2,'003','王 ','男 ',54), 东兴
(1,'004','陈 ','女 ',42), 肖青
(4,'005','黄 ','女 ',24) 冰河
( 2 )参 考答案
--将生产 部”修改 市场 部” “ 为 “
UPDATE dept SET name=' 市 部 ' WHERE name=' 生 部 ' 场 产
( 3 )参 考答案
--将陈肖 “ 青
”的 年龄 修改为“ 所 部门修 市场 部” 属 改 为 “ 52”,
UPDATE staf
SET age=52,dept_id=(SELECT id FROM dept WHERE name='市 部 ') 场
WHERE name=' 陈 ' 肖青
( 4 )参 考答案
--将 “技术部”的
所 年龄 ” 有员工的“ 增加 1岁
UPDATE staf SET age=age+1
WHERE dept_id=(SELECT id FROM dept WHERE name=' 技 ') 术部
( 5 )参 考答案
--将 黄冰河 员工“
” 财 划归 “ 务部”
UPDATE staf
SET dept_id=(SELECT id FROM dept WHERE name='财
务 部 ')
WHERE name=' 黄 ' 冰河
( 6 )参 考答案
--将王东 “ 兴
” 员工表中删除 从
DELETE FROM staf WHERe name='王 ' 东兴
( 7 )参 考答案
--将后勤 部” 以及 其员工记录 “
全 部删除
DELETE staf
WHERE dept_id=(SELECT id FROM dept WHERE name=' 后 部 ') 勤
GO
DELETE dept WHERE name='后 部 ' 勤
GO
第 6章 查 询 数 据
一 、选择题
1.C 2.A 3.D 4.B 5.B 6.A
7.C 8.D
9. A 10 .C 11.B 12 . C
二 、填空题
1. 出列 数 源对 选 输 据 象 择条件
2.SELECT GROUP BY 3.外
连 接 右 连接 外
4.关 系表
达 式
5.% _ [] [^]
三 、设计题
1. 参考答案
SELECT sp. 专 ,专 ,cl.* 业编号 业名称
FROM specialty AS sp,class AS cl WHERE cl.specialty_id=sp.id
2. 参考答案
SELECT sp. 专 ,sp.专 ,cl.班 ,cl.班 , 业编号 业名称 级编号 级名称
年 ,st.* 级
FROM class AS cl,student AS st,specialty AS sp WHERE st.class_id=cl.id AND cl.specialty_id=sp.id
3. 参考答案
SELECT sp. 专 ,专 ,co.* 业编号 业名称
FROM specialty AS sp,course AS co WHERE co.specialty_id=sp.id
4. 参考答案
SELECT sp. 专 ,sp.专 ,cl.班 , cl. 班 ,cl. 业编号 业名称 级编号 级名称
年 ,co.开 ,co.课 ,co.课 ,co.课 ,co.学 ,co. 级 课学期 程编号 程名称 时 分
周 ,te.教 ,te.教 ,ta.id,ta. 学 ,ta.学 ,ta.起 课时 师编号 师姓名 年 期 止周
FROM specialty AS sp,class AS cl,course AS co,teacher AS te,task As ta
WHERE cl.specialty_id=sp.id AND co.specialty_id=sp.id AND ta.teacher_id=te.id AND ta.course_id=co.id AND
ta.class_id=cl.id
5. 参考答案
SELECT st. 学 ,st.姓 ,st.性 ,sp.专 ,cl.班 ,cl. 号 名 别 业名称 级名称
年 ,te.教 ,ta.学 ,ta.学 ,co.课 ,sc.成 级 师姓名 年 期 程名称 绩
FROM specialty AS sp,class AS cl,course AS co,teacher AS te,task As ta,student AS st,score AS sc
WHERE cl.specialty_id=sp.id AND co.specialty_id=sp.id AND ta.teacher_id=te.id AND ta.course_id=co.id AND
ta.class_id=cl.id AND sc.task_id=ta.id AND st.id=sc.student_id
6. 参考答案
-- 设 T-SQL 语 “” 计 句查询输出计算机应用技术专业的所有开设课程信息
SELECT s.专 ,c.* 业名称
FROM course AS c,specialty AS s
WHERE s.专 =' 计 ' AND s.id=c.specialty_id 业名称 算机应用技术
7. 参考答案
-- 设 T-SQL 语 “ 2012” 级 “” 计 句查询输出 所有姓陈学生的信息
SELECT cl. 年 ,st.* 级
FROM student AS st,class AS cl
WHERE cl.id=st.class_id AND cl.年 ='2012' AND 姓 LIKE 级 名
'陈 %'
8. 参考答案
-- 设 T-SQL语 查询 输 计 句
出 年 “ 2012-2013 学 1
学 期
” 各 班 学 生 成 绩
的 次等 信 ,结 果要求按平均 分 大到小 出 最高 分、 最低 分、 平均 分、参试人 息 从 排序 输 。
SELECT ta. 学 ,ta.学 ,cl.班 ,MAX(sc.成 ) AS 年 期 级名称 绩
最 ,MIN(sc.成 ) AS 最 ,AVG(sc.成 ) AS 平 ,COUNT(sc. 高分 绩 低分 绩 均分
成 ) AS 参 绩 试人次
FROM score AS sc,task AS ta,student AS st,class AS cl WHERE sc.task_id=ta.id AND
sc.student_id=st.id AND st.class_id=cl.id AND
ta.学 ='2012-2013' AND 年
ta.学 =1 期
GROUP BY ta. 学 ,ta.学 ,cl.班 年 期 级名称
ORDER BY 平 DESC 均分
9. 参考答案
-- 设 T-SQL语 查询 输 计 句
出 年 “ 2012-2013 学 1
学
期 ”成
绩 合 生 息 专 、学期、成 ”,结 不 格的学 信 “学号、姓名、 业、 班级 、学 年 绩 果按 “学号”
排序
输 出。
SELECT st. 学 ,st.姓 ,sp.专 ,cl.班 ,ta.学 ,ta. 号 名 业名称 级名称 年
学 ,co.课 ,sc.成 期 程名称 绩
FROM score AS sc,task AS ta,student AS st,class AS cl,specialty AS sp,course AS co
WHERE sc.task_id=ta.id AND sc.student_id=st.id AND st.class_id=cl.id AND
cl.specialty_id=sp.id AND ta.course_id=co.id AND
ta.学 ='2012-2013' AND 年
ta.学 =1 AND 期
sc.成 <60 绩
ORDER BY st. 学 号
10 . 参考答案
-- 使 T-SQL 用子查询设计
查 “” 询语句查询有哪些专业开设了计算机应用基础课。
SELECT *
FROM specialty
WHERE id IN(SELECT specialty_id FROM course
WHERE 课 =' 计 ' 程名称 算机应用基础
)
第 7章 视 图
与 索 引
一 、选择题
1.C 2.C 3.A 4.D 5.C 6.A 7.C
8.D
9.C 10.D 11.A 12.B
二 、填空题
1.
虚 抽 取
2. 标准
视 图 图 分 视 区
3. 创建
4. WITH ENCRYPTION 5.DROP VIEW <视
图 名 称 >
6. 列 一
或 多 列
7.重
新 成 生
三 、设计题
1. 参考答案
视
图 步骤 参考第 的 设 计 7章 7.2.1”节。 的“
2. 参考答案
3. 参考答案
CREATE VIEW vStudentScore AS
SELECT st.学 ,st.姓 ,ta.学 号 名
年 程 绩 名 称 ,ta.学 ,co.课 ,sc.成 期
FROM class AS cl,student AS st,task AS ta,course AS co,score AS sc
WHERE cl. 班 名称 =' 计 级
算 机 11-1' and
st.class_id=cl.id and ta.class_id=cl.id and ta.course_id=co.id and sc.student_id=st.id and
sc.task_id=ta.id and ta. 学
年 ='2012-2013' and
ta. 学 =2 期
4. 参考答案
CREATE VIEW vTask12132
AS
SELECT ta.学
年 师 程 编 号 ,ta.学 ,te.教 姓名 ,cl. 班 名称 ,co.课 ,co. 期 级
课
程 课 名 称 ,co.开 学期 ,co.课 ,co.周 时 课时
FROM task AS ta,course AS co,teacher AS te,class AS cl WHERE ta.学
年 ='2012-2013' and ta. 学 =2 and 期
ta.class_id=cl.id and ta.course_id=co.id and ta.teacher_id=te.id
5. 参考答案
--创 vClass”视 建“
图 该视 图 个 详细 信 。 , 返回各 班级 的 息
CREATE VIEW vClass AS
SELECT sp.专 , 专 ,cl.* 业编号 业名称
FROM specialty AS sp,class AS cl WHERE cl.specialty_id=sp.id
6. 参考答案
--创 vCourse”视 建“
图 该视 图 个 业 开设的 程的 详细 信 , 返回各 专 所 课 息
CREATE VIEW vCourse AS
SELECT sp.专 , 专 ,co.* 业编号 业名称
FROM specialty AS sp,course AS co WHERE co.specialty_id=sp.id
7. 参考答案
--创 vStudent” 视 建“
图 该视 图 生 详细 信 。 , 返回 学 的 息
CREATE VIEW vStudent AS
SELECT sp.专 ,sp.专 ,cl.班 ,cl.班 ,年 ,st.* 业编号 业名称 级编号 级名称 级
FROM class AS cl,student AS st,specialty AS sp WHERE st.class_id=cl.id AND cl.specialty_id=sp.id
8. 参考答案
--创 vTask”视 建“
图 该视 图 个 课 详 信 。 , 细 返回各 学 任务 的 息 期开
CREATE VIEW vTask AS
SELECT sp.专 ,sp.专 ,cl.班 , cl.班 名 ,cl.年 ,co. 业编号 业名称 级编号 级 称 级
开 ,co.课 ,co.课 ,co.课 ,co.学 ,co.周 ,te. 课学期 程编号 程名称 时 分 课时
教 ,te.教 ,ta.id,ta. 学 ,ta.学 ,ta.起 师编号 师姓名 年 期 止周
FROM specialty AS sp,class AS cl,course AS co,teacher AS te,task As ta
WHERE cl.specialty_id=sp.id AND co.specialty_id=sp.id AND ta.teacher_id=te.id AND ta.course_id=co.id AND ta.class_id=cl.id
9. 参考答案
--创 vScore”视 建“
图 该视 图 个 生 课 的 息 , 返回各 学 的 程学习成 绩 详细 信 。
CREATE VIEW vScore AS
SELECT st.学 ,st.姓 ,st.性 ,sp.专 ,cl.班 ,cl.年 ,te. 号 名 别 业名称 级名称 级
教 ,ta.学 ,ta.学 ,co.课 ,sc.成 师姓名 年 期 程名称 绩
FROM specialty AS sp,class AS cl,course AS co,teacher AS te,task As ta,student AS st,score AS sc
WHERE cl.specialty_id=sp.id AND co.specialty_id=sp.id AND ta.teacher_id=te.id AND ta.course_id=co.id AND
ta.class_id=cl.id AND sc.task_id=ta.id AND st.id=sc.student_id
第 8章 T-SQL 编 程
一 、选择题
1.A 2.C 3.D 4.C 5.D 6.C
7. C
二 、将
下
列 数学式 成 达 子转换 T-SQL 表 式
1. 2.5*10+(@x-10)/@y*3.5
2. (10*@a+(10-@c)/(5+@d))/(2*@b) 3. @x>=100 OR @x<10
4.(50<=@x AND @x<100) OR (5*@x<=@y AND @y<100-@z)
三 、程
序 设计题
1. 参考答案
DECLARE @a INT,@b INT,@c INT DECLARE @p float,@area float SET @a=15
SET @b=20 SET @c=30
SET @p=(@a+@b+@c)/2
SET @area=SQRT(@p*(@p-@a)*(@p-@b)*(@p-@c)) print @area
2. 参考答案
参 8-10】 考【例
3. 参考答案
DECLARE @h float,@s float,@n INT SET @h=100.0
SET @s=100.0 SET @n=2 WHILE @n<=10 BEGIN
SET @h=@h/2.0 SET @s=@s+@h*2 SET @n=@n+1 END
PRINT @s
PRINT @h/2
4. 参考答案
参 8-14】 考【例
5. 参考答案
SELECT a.*,及
格 格 次 人 率=1.0*及 / 总 次 *100 人
FROM (SELECT 班 名称 , 总 次 =( 级 人
SELECT COUNT(sc.成
绩 )
FROM class AS cla,student AS st,score AS sc
WHERE cla.id=st.class_id AND st.id=sc.student_id AND cla.id=cl.id
GROUP BY cla. 班 名称 级
),及
格 次 绩 人 =( SELECT COUNT(sc. 成 )
FROM class AS cla,student AS st,score AS sc
WHERE cla.id=st.class_id AND st.id=sc.student_id AND cla.id=cl.id AND sc.成
绩 >=60
GROUP BY cla.班 名称 级
)
FROM class AS cl
WHERE cl. 年 ='2012' 级
) AS a
ORDER BY 及
格 率DESC
6. 参考答案
SELECT 学 , 姓 ,SUM(绩 号 名
点 绩 ) AS 总 点
FROM (SELECT 学 ,姓 ,成 号 名
绩 点 ,绩 =CASE
WHEN 成
绩 <60 THEN 1
WHEN 成
绩 绩 >=60 AND 成 <80 THEN 1.5
WHEN 成
绩 绩 >=80 AND 成 <90 THEN 2.5
WHEN 成
绩 >=90 THEN 3
END
FROM class AS cl,student AS st,score AS sc
WHERE cl.id=st.class_id AND st.id=sc.student_id AND cl. 年 级
='2012') AS jd
GROUP BY 学 ,姓 号 名
ORDER BY 总
绩 点DESC
第 9章 函 数
一 、选择题
1.C 2.B 3.B 4.D 5 .A 6 .D
7.B 8.A 9.D 10 . C
二 、填空题
1.
功 值 果 集 能 数 结
2. 标量
值 函数 内 置函数
3.RANK NTILE
4.CREATE FUNCTION ALTER FUNCFION DROP FUNCTION
三 、程
序 设计题
1. 参考答案
CREATE FUNCTION area(@a FLOAT,@b FLOAT,@c FLOAT) RETURNS FLOAT
AS BEGIN
DECLARE @p FLOAT,@area FLOAT
IF(@a+@b>@c AND @a+@c>@b AND @c+@b>@a) BEGIN
SET @p=(@a+@b+@c)/2
SET @area=SQRT(@p*(@p-@a)*(@p-@b)*(@p-@c))
END ELSE
SET @area=-1 --不 构 能
成
三 角 形
RETURN @area END
2. 参考答案
CREATE FUNCTION convScore(@score float) RETURNS VARCHAR(6)
AS BEGIN
DECLARE @sc VARCHAR(6)
IF @score>=90.0
SET @sc='优 ' 秀
ELSE IF @score>=80.0
SET @sc='良 ' 好
ELSE IF @score>=70.0 SET @sc='中
等 '
ELSE IF @score>=60.0 SET @sc='及
格 '
ELSE
SET @sc='不
及 格 '
RETURN @sc END
3. 参考答案
CREATE FUNCTION passRate(@level AS VARCHAR(4)) RETURNS TABLE
AS
RETURN (
SELECT a.*,及
格 格 次 人 率=1.0*及 /总 次 *100 人
FROM (SELECT 班 名称 , 级
总 次=(SELECT COUNT(sc.成 人
绩 )
FROM class AS cla,student AS st,score AS sc WHERE cla.id=st.class_id AND st.id=sc.student_id AND cla.id=cl.id
GROUP BY cla. 班 名称 级
), 及
格 次 绩 人 =(SELECT COUNT(sc.成 )
FROM class AS cla,student AS st,score AS sc
WHERE cla.id=st.class_id AND st.id=sc.student_id AND cla.id=cl.id AND sc.成
绩 >=60
GROUP BY cla.班 名称 级
) FROM class AS cl
WHERE cl. 年 =@level) AS a 级
)
4. 参考答案
CREATE FUNCTION sumJd(@level AS VARCHAR(4))
RETURNS @temp TABLE(学 VARCHAR(10), 号
姓 VARCHAR(32), 名
总
绩 点 FLOAT
) AS
BEGIN
INSERT INTO @temp
SELECT 学 ,姓 ,SUM(绩 号 名
点 绩 ) AS 总 点
FROM (SELECT 学 , 姓 , 成 号 名
绩 点 ,绩 =CASE
WHEN 成
绩 <60 THEN 1
WHEN 成
绩 绩 >=60 AND 成 <80 THEN 1.5
WHEN 成
绩 绩 >=80 AND 成 <90 THEN 2.5
WHEN 成
绩 >=90 THEN 3
END
FROM class AS cl,student AS st,score AS sc
WHERE cl.id=st.class_id AND st.id=sc.student_id AND
cl. 年 =@level) AS jd 级
GROUP BY 学 , 姓 号 名
ORDER BY 总
绩 点DESC
RETURN END
第 10章 存 储 过 程
一 、选择题
1.D 2.A 3.C 4.B 5.B 6.A
7. C
8.C 9.A 10.D
二 、填空题
1.用 户自定义
存 储 过程
2. ENCRYPTION
3.SYSADMIN MASTER 4. SP_RENAME
三 、设计题
1. 参考答案
-- 设 计 一 个 插 入 班 级 信 息 的 存 储 过
程 addClass” “
, 该 存 储 过
程 传 入
“ 专 业 名 称
, 班 级 编 号
,
班 名称, 等 息 如果班级 插入成 则 息 否 返回 “ 级 年级 ” 信 , 功 返回状态 信 “ 1” , 则 0” 。
USE jwgl GO
IF OBJECT_ID('addClass','P') IS NOT NULL DROP PROCEDURE addClass
GO
CREATE PROCEDURE addClass
@zymc VARCHAR(64),
@bjbh VARCHAR(8),
@bjmc VARCHAR(64),
@nj VARCHAR(4) AS
DECLARE @status INT,@zyid INT -- 定 id变 义状态变量,专业 量
SET @status=1 -- 设 置状态变量初值为,先假设为
BEGIN TRY --监 控插入记录处理
SET @zyid=(SELECT id FROM specialty WHERE 专 =@zymc) 业名称
INSERT INTO class(班 , 班 , 年 ,specialty_id) 级编号 级名称 级
VALUES(@bjbh,@bjmc,@nj,@zyid) END TRY
BEGIN CATCH --插 入记录错误处理
SET @status=0 --插 入记录失败时,状态变量值设置为
END CATCH
RETURN @status -- 返 回操作状态
GO
--存 调 储过程 用
--EXECUTE addClass '计 ','01011302','计 -2','2013' 算机应用技术 算机
2. 参考答案
--设 “”“ delStudent” 。 计一个根据学号删除学生信息的存储过程
USE jwgl GO
IF OBJECT_ID('delStudent','P') IS NOT NULL DROP PROCEDURE delStudent
GO
CREATE PROCEDURE delStudent
@xh VARCHAR(10) AS
DECLARE @status INT,@xhid INT -- 定 id变 义状态变量,学号 量
SET @status=1 -- 设 置状态变量初值为,先假设为
BEGIN TRY --监 控删除记录处理
SET @xhid=(SELECT id FROM student WHERE 学 =@xh) 号
DELETE score WHERE student_id=@xhid
DELETE student WHERE 学 =@xh 号
END TRY
BEGIN CATCH --删 除记录错误处理
SET @status=0 --删 除记录失败时,状态变量值设置为
END CATCH
RETURN @status -- 返 回操作状态
GO
--存 调 储过程 用
--EXECUTE delStudent '0101120203'
3. 参考答案
-- 设 计 一 个 修 改 学 生 学
习 成
绩 “ updateScore”, “” 的存储过程 该存储过程传入学号、课程编号、成绩三个参数。
USE jwgl GO
IF OBJECT_ID('updateScore','P') IS NOT NULL DROP PROCEDURE updateScore
GO
CREATE PROCEDURE updateScore
@xh VARCHAR(10),
@kcbh VARCHAR(6),
@cj DECIMAL(6,2) AS
DECLARE @status INT --定 义状态变量
DECLARE @kcid INT --课 id变 程 量
DECLARE @bjid INT --班 id变 级 量
DECLARE @rwid INT --任 id变 务 量
DECLARE @xsid INT --学 id变 , 生 量
SET @status=1 --设 置状态变量初值为,先假设为
BEGIN TRY --监 控修改记录处理
SET @xsid=(SELECT id FROM student WHERE 学 =@xh) 号
SET @kcid=(SELECT id FROM course WHERE 课 =@kcbh) 程编号
SET @bjid=(SELECT class_id FROM student WHERE 学 =@xh) 号
SET @rwid=(SELECT id FROM task WHERE class_id=@bjid AND course_id=@kcid)
UPDATE score SET 成 =@cj WHERE student_id=@xsid AND 绩
task_id=@rwid END TRY
BEGIN CATCH --修 改记录错误处理
SET @status=0 --修 改记录失败时,状态变量值设置为
END CATCH
RETURN @status -- 返 回操作状态
GO
--存 调 储过程 用
--EXECUTE updateScore '0101120201','010105',90.09
4.参 考答案
--设 “ showTeacher” 。 计一个查询显示教师表信息的存储过程
USE jwgl GO
IF OBJECT_ID('showTeacher','P') IS NOT NULL DROP PROCEDURE showTeacher
GO
CREATE PROCEDURE showTeacher AS
SELECT * FROM teacher GO
--存 调 储过程 用
--EXECUTE showTeacher
5. 参考答案
--
“”“”“ 请 getStJd”, 设计一个根据学号计算学生学习成绩总绩点的存储过程
“”“ 已 <60 ,绩 =1;60<=成 <80 ,绩 知成绩转换成绩点的计算方法是成绩 点 绩 点
=1.5;80<=成 <90 ,绩 =2.5;成 >=90,绩 =3” 。 绩 点 绩 点
--函 数实现
CREATE FUNCTION dbo.getStJd(@xh VARCHAR(10)) RETURNS FLOAT
AS BEGIN
DECLARE @jd FLOAT
SET @jd=(SELECT SUM( 绩 ) 点
FROM (SELECT 学 , 姓 , 成 ,绩 =CASE 号 名 绩 点
WHEN 成 <60 THEN 1 绩
WHEN 成 >=60 AND 成 <80 THEN 绩 绩
1.5
WHEN 成 >=80 AND 成 <90 THEN 绩 绩
2.5
WHEN 成 >=90 THEN 3 绩
END
FROM class AS cl,student AS st,score AS sc
WHERE cl.id=st.class_id AND st.id=sc.student_id ) AS jd
WHERE 学 =@xh 号
)
RETURN @jd END
GO
--函 数调用
--PRINT dbo.getStJd('0101110201')
--存 储过程实现
USE jwgl GO
IF OBJECT_ID('getStJd','P') IS NOT NULL DROP PROCEDURE getStJd
GO
CREATE PROCEDURE getStJd
@xh VARCHAR(10) AS
DECLARE @jd FLOAT
SET @jd=(SELECT SUM( 绩 ) 点
FROM (SELECT 学 ,姓 ,成 ,绩 =CASE 号 名 绩 点
WHEN 成 <60 THEN 1 绩
WHEN 成 >=60 AND 成 <80 THEN 绩 绩
1.5
WHEN 成 >=80 AND 成 <90 THEN 绩 绩
2.5
WHEN 成 >=90 THEN 3 绩
END
FROM class AS cl,student AS st,score AS sc
WHERE cl.id=st.class_id AND st.id=sc.student_id ) AS jd
WHERE 学 =@xh 号
)
RETURN @jd
--GO
--存 调 储过程 用
--DECLARE @d FLOAT
--EXECUTE @d=getStJd '0101110104' --PRINT @d
6.参 考答案
--设 存储 过程“ getRandNumber”, 该 计一个 存储
过
程 随机产生 每 n组 组 5
个
且 间 随机 整数, 随机产生 一个 值在 间 值 的 的 在 整 数 [1 , 49] 之 然后 , [1 , n] 之
x,
最 , 出 随 数, 并且要求对 密。 后 机 存 储 要求 输 n组 x组 5个 过程 加 数中的第 的
USE jwgl GO
IF OBJECT_ID('getRandNumber','P') IS NOT NULL DROP PROCEDURE getRandNumber
GO
CREATE PROCEDURE getRandNumber
@n INT AS BEGIN
IF NOT Exists(SELECT * FROM sysObjects WHERE Name ='#temps' And Type In ('U'))
BEGIN
CREATE TABLE #temps(
id INT IDENTITY(1,1), aa INT,
bb INT, cc INT, dd INT, ee INT )
END
DECLARE @x INT,@a INT,@b INT,@c INT,@d INT,@e INT SET @x=1
WHILE(@x<=@n) BEGIN
SET @a=FLOOR(1+RAND()*49) SET @b=FLOOR(1+RAND()*49)
SET @c=FLOOR(1+RAND()*49) SET @d=FLOOR(1+RAND()*49) SET @e=FLOOR(1+RAND()*49)
INSERT INTO #temps VALUES(@a,@b,@c,@d,@e) SET @x=@x+1
END
SELECT * FROM #temps
SET @a=FLOOR(1+RAND()*@n)
SELECT * FROM #temps WHERE id=@a
END
--存 储过程调用
--EXECUTE getRandNumber 50
第 11章 游 标
一 、选择题
1.D 2.A 3.C 4.C 5.B 6.D
7.B 8.D
二 、填空题
1.
动 标 态 游 标 只 进游
2.<游
标 名 > <SELECT语 > 句
3. FETCH 语 INTO <@变 句
量 名 >
4.
游 标 调 存储 过程 用
5. 游 简单数据类型
标 量 变
三 、程
序 设计题
1. 参考答案
CREATE FUNCTION totalSPSN(@nj VARCHAR(4)) RETURNS INT
AS BEGIN
DECLARE csGrade CURSOR SCROLL
FOR SELECT 姓 FROM student AS st,class AS cl WHERE 名
cl.id=st.class_id AND cl. 年 =@nj 级
OPEN csGrade
DECLARE @n INT,@name VARCHAR(32) SET @n=0
FETCH NEXT FROM csGrade INTO @name WHILE(@@FETCH_STATUS=0)
BEGIN
SET @n=@n+1
FETCH NEXT FROM csGrade INTO @name END
RETURN @n END
-- 测 试
--SELECT dbo.totalSPSN('2011')
2. 参考答案
--createTask 学 ,学 ,学 年 期 制 CREATE PROCEDURE createTask
@xn VARCHAR(9), --传 入学年参数
@xq INT, --传 入学期参数
@xj INT --传 :2 、 入学制 、年
AS BEGIN
DECLARE @kcnj INT DECLARE @x INT
SET @x=CAST(LEFT(@xn,4) AS INT) -- 开 课结束年级
SET @kcnj=@x-(@xj-1) -- 开 课开始年级
WHILE(@kcnj<=@x) -- 开 课年级循环处理
BEGIN
DECLARE @kcxq INT
SET @kcxq=(@x-@kcnj)*2+@xq --开 课学期
DECLARE csClass CURSOR SCROLL --年 级中的班级游标
FOR SELECT sp.id,cl.id --游 标只返回专业
id 、 id 班级
FROM class As cl,specialty AS sp
WHERE sp.id=cl.specialty_id AND 年 =@kcnj 级
OPEN csClass
DECLARE @zyid INT,@bjid INT
--从 id 、 id 游标提取一个班的专业 班级
FETCH NEXT FROM csClass INTO @zyid,@bjid WHILE(@@FETCH_STATUS=0)
BEGIN
-- 生 (id) 成游标提取的专业 班级
(id) 指定学期的开课任务
INSERT INTO task
SELECT 学 =@xn, 学 =@xq, 年 期
起 ='01-'+LTRIM(STR(课 / 止周 时
周 ,2,0)), 课时
class_id=@bjid,course_id=id, teacher_id=NULL
FROM course
WHERE specialty_id=@zyid AND 开 课学期
=@kcxq
--取 下一个班 FETCH NEXT FROM csClass INTO @zyid,@bjid
END
CLOSE csClass DEALLOCATE csClass
SET @kcnj=@kcnj+1 --下 一开课年级
END END
-- 调 用测试
--EXECUTE createTask '2014-2015',1,3
3. 参考答案
CREATE FUNCTION totalScore(@xn VARCHAR(9),@xq INT)
RETURNS @fdTABLE TABLE(学 VARCHAR(9), --定 年 义返回表
学 INT, 期
班 VARCHAR(64), 级名称
课 VARCHAR(128), 程名称
总 INT, 人数
不 INT, 及格人数
及 INT, 格人数
中 INT, 等人数
良 INT, 人数
优 INT 人数
) AS
BEGIN
DECLARE @bjmc VARCHAR(64),@kcmc VARCHAR(128) --声 明变量
-- 声 明统计用变量
DECLARE @zrx INT,@bjg INT,@jg INT,@zd INT,@l INT,@y INT DECLARE @CJ FLOAT
DECLARE csCourse CURSOR SCROLL -- 声 明班级课程游标
FOR SELECT 班 ,课 级名称 程名称
FROM class AS cl,course AS co,task As ta,score AS sc
WHERE ta.course_id=co.id AND ta.class_id=cl.id AND
sc.task_id=ta.id AND ta.学 =@xn AND ta. 学 年 期
=@xq
GROUP BY 班 ,课 级名称 程名称
OPEN csCourse --打 开班级课程游标
-- 提 取班级的第一门课程
FETCH NEXT FROM csCourse INTO @bjmc,@kcmc WHILE(@@FETCH_STATUS=0)
BEGIN
SET @zrx=0 -- 初 : 始化统计变量 总人数
SET @bjg=0 -- 不 级格人数
SET @jg=0 -- 及 格人数
SET @zd=0 -- 中 等人数
SET @l=0 --良 人数
SET @y=0 --优 人数
DECLARE csScore CURSOR SCROLL --
声 明提取的课程的成绩游标
FOR SELECT 成 绩
FROM class AS cl,course AS co,task As ta,score AS sc
WHERE ta.course_id=co.id AND ta.class_id=cl.id AND
sc.task_id=ta.id AND ta.学 =@xn AND ta. 学 年 期
=@xq AND
cl.班 =@bjmc AND co.课 =@kcmc 级名称 程名称
OPEN csScore --打 开成绩游标
FETCH NEXT FROM csScore INTO @cj --
提 取课程的第一个成绩
WHILE(@@FETCH_STATUS=0) BEGIN
SET @zrx=@zrx+1 --统 计总人数
IF(@CJ<60) -- 统 计各段人数
SET @bjg=@Bjg+1 ELSE IF(@CJ<70)
SET @jg=@jg+1 ELSE IF(@CJ<80)
SET @zd=@zd+1 ELSE IF(@CJ<90)
SET @l=@l+1 ELSE
SET @y=@y+1
-- 提 取课程的下一个成绩 FETCH NEXT FROM csScore INTO @cj
END
--插 一 入 门课程的统计记录
INSERT INTO @fdTABLE
VALUES(@xn,@xq,@bjmc,@kcmc,@zrx,@bjg,@jg,@zd,@l,@y)
CLOSE csScore --关 闭成绩游标
DEALLOCATE csScore --释 放成绩游标
-- 提 取下一门课程
FETCH NEXT FROM csCourse INTO @bjmc,@kcmc END
CLOSE csCourse --关 闭课程游标
DEALLOCATE csCourse --释 放课程游标
RETURN END
-- 调 用测试
--SELECT *
--FROM dbo.totalScore('2011-2012',1)
--ORDER BY 班 级名称
第 12章 触 发
器
一 、选择题
1.C 2.D 3.A 4.C 5.C 6.A
7.C 8.D
二 、填空题
1.
被 动执 行 自
2.SDDL触
发 器 后 发器 触
3. DELETED 4.
声 创建 后触 发器 明
5.
声 创建数 明 据 库 作用域范围
6. INSERT 、UPDATE或DELETE CREATE、 ALTER 、 DROP
三 、程
序 设计题
1.参 考答案
CREATE TRIGGER dbo.csInsClass ON class
INSTEAD OF INSERT -- 创 建替代插入触发器
AS BEGIN
DECLARE @bjbh VARCHAR(8) DECLARE @zybh VARCHAR(4)
DECLARE @nj VARCHAR(2) DECLARE @f INT
SET @bjbh=(SELECT 班 FROM INSERTED) --取 级编号 验证的班级编号
SET @zybh=LEFT(@bjbh,4) --取 专业编号
SET @nj=SUBSTRING(@bjbh,5,2) --取 年级
SET @f=1
IF(@zybh!=(SELECT 专 ROM specialty WHERE id=(SELECT 业编号
specialty_id FROM INSERTED))) SET @f=-1
ELSE IF (@nj!=(SELECT RIGHT( 年 ,2) FROM INSERTED)) 级
SET @f=-1
ELSE IF EXISTS(SELECT * FROM class WHERE 班 =@bjbh) 级编号
SET @f=-1 IF(@f=-1)
PRINT ' 班 已 格 ' 级编号 存在或 式错误! ELSE
INSERT INTO class SELECT 班 , 班 , 年 ,specialty_id FROM 级编号 级名称 级
INSERTED END
--测 试
INSERT INTO class VALUEs('01011602','计 16-1','2016',1) --成 算机 功
GO
INSERT INTO class VALUEs('01021602','计 16-2','2016',1) --失 算机 败
GO
INSERT INTO class VALUEs('01011502','计 16-3','2016',1) --失 算机 败
GO
2. 参考答案
CREATE TRIGGER dbo.csUpBirthday ON student
INSTEAD OF UPDATE -- 创 建替代修改触发器
AS
IF UPDATE(出 ) 生日期
BEGIN
DECLARE @nj VARCHAR(4),@btd INT,@n INT
SET @nj=(SELECT 年 FROM class WHERE id=(SELECT class_id FROM 级
INSERTED))
SET @btd=(SELECT YEAR( 出 ) FROM INSERTED) 生日期
SET @n=CAST(@nj AS INT)-@btd SELECT * FROM INSERTED
PRINT @n
IF (@n<15 OR @n>20)
PRINT '出 生日期不合法,学生年
龄 间 在 15 到 20 岁之 为 ' 合法!
ELSE
UPDATE student SET 出 =(SELECT 出 FROM INSERTED) 生日期 生日期
END
3. 参考答案
CREATE TRIGGER dbo.trDelTask ON task
INSTEAD OF DELETE --创 建替代删除触发器
AS BEGIN
DECLARE @xn VARCHAR(9),@xq INT
SET @xn=(SELECT TOP 1 学 FROM DELETED) --取 年 出学年
SET @xq=(SELECT TOP 1 学 FROM DELETED) --取 期 出学期
DELETE score WHERE task_id IN(SELECT id FROM task WHERE 学 =@xn 年
AND 学 =@xq) --先删 记 期 除成绩 录
DELETE task WHERE 学 =@xn AND 学 =@xq --后删 记 年 期 除任务 录
END
--测 试
--DELETE task WHERE 学 ='2012-2013' AND 学 =1 年 期
第 13章 备 份 与 恢
复
一 、选择题
1.A 2.D 3.D 4.C 5.B 6.A
7.D 8. C
二 、填空题
1.
差 数据库 异 备 份 数 据文件和文件组备份
2. 大 志 简单 容量日
3.INIT
4. FILE=<n>
5. 志 事务日
三 、程
序 设计题
1. 参考答案:
--先 D盘 在
创 , 行如下代码: 建 D:\dbBackup文 夹 然后执 件
EXECUTE sp_addumpdevice
'DISK','myDBBak','D:\dbBackup\dataBackup.bak'
2. 参考答案:
--1.完 整备份
BACKUP DATABASE jwgl TO myDBBak WITH NAME='jwgl-完 ',INIT 整备份
--2.差 异备份
BACKUP DATABASE jwgl TO myDBBak WITH NAME='jwgl-
差 ',DIFFERENTIAL 异备份
--3.事
务 日 志 备份
BACKUP LOG jwgl TO myDBBak WITH NAME='jwgl- 事
务 日 志 备份 ',NOINIT
3. 参考答案:
(1)创 备份 设 建
备
EXECUTE sp_addumpdevice 'DISK','cwglDv','e:\cwglDb\cwglDb.Bak'
( 2 )
备 语句 份
--1.完 : 周 整备份
日 凌晨 2 时 行一 次 执
BACKUP DATABASE cwgl TO cwglDv WITH NAME='cwgl- 完 整
备 ',INIT 份
--2.差 : 每 的 异备份 天
凌
晨 4时 行一 次 执
BACKUP DATABASE cwgl TO cwglDv WITH NAME='cwgl- 差 异
备 ',DIFFERENTIAL 份 --3.事
务 小 的第 钟 行一 次 日 执 志 备份 : 每 时 30 分 天每
BACKUP LOG cwgl TO cwglDv WITH NAME='cwgl- 事
务 日 志
备 ',NOINIT 份
( 3 )
如 系统 正常 ,备份 每周循 产生如下 集 果 策略 将 环 176个 : 备份
序
号 间 备 备 时 备 集序 号 份类型 份 份
1 完 星 整备份
期 日 2:00 1
2 日
志 期 日 备份 1 星 2:30 2
3 日
志 期 日 备份 2 星 3:30 3
4 差 备份 1 星 异
期 日 4:00 4
5 日
志 期 日 备份 3 星 4:30 5
6 日
志 期 日 备份 4 星 5:30 6
7 日
志 期 日 备份 5 星 6:30 7
8 日
志 期 日 备份 6 星 7:30 8
9 日
志 期 日 备份 7 星 8:30 9
10 日
志 期 日 备份 8 星 9:30 10
11 日
志 期 日 备份 9 星 10:30 11
12 日
志 期 日 备份 10 星 11:30 12
13 日
志 期 日 备份 11 星 12:30 13
14 日
志 期 日 备份 12 星 13:30 14
15 日
志 期 日 备份 13 星 14:30 15
16 日
志 期 日 备份 14 星 15:30 16
17 日
志 期 日 备份 15 星 16:30 17
18 日
志 期 日 备份 16 星 17:30 18
19 日
志 期 日 备份 17 星 18:30 19
20 日
志 期 日 备份 18 星 19:30 20
21 日
志 期 日 备份 19 星 20:30 21
22 日
志 期 日 备份 20 星 21:30 22
23 日
志 期 日 备份 21 星 22:30 23
24 日
志 期 日 备份 22 星 23:30 24
25 日
志 期 一 备份 23 星 0:30 25
26 日
志 期 一 备份 24 星 1:30 26
27 日
志 期 一 备份 25 星 2:30 27
28 日
志 期 一 备份 26 星 3:30 28
29 差 备份 2 星 异
期 一 4:00 29
30 日
志 期 一 备份 27 星 4:30 30
31 日
志 期 一 备份 28 星 5:30 31
32 日
志 期 一 备份 29 星 6:30 32
33 日
志 期 一 备份 30 星 7:30 33
34 日
志 期 一 备份 31 星 8:30 34
35 日
志 期 一 备份 32 星 9:30 35
36 日
志 期 一 备份 33 星 10:30 36
37 日
志 期 一 备份 34 星 11:30 37
38 日
志 期 一 备份 35 星 12:30 38
39 日
志 期 一 备份 36 星 13:30 39
40 日
志 期 一 备份 37 星 14:30 40
41 日
志 期 一 备份 38 星 15:30 41
42 日
志 期 一 备份 39 星 16:30 42
43 日
志 期 一 备份 40 星 17:30 43
44 日
志 期 一 备份 41 星 18:30 44
45 日
志 期 一 备份 42 星 19:30 45
46 日
志 期 一 备份 43 星 20:30 46
47 日
志 期 一 备份 44 星 21:30 47
48 日
志 期 一 备份 45 星 22:30 48
49 日
志 期 一 备份 46 星 23:30 49
50 日
志 期 二 备份 47 星 0:30 50
51 日
志 期 二 备份 48 星 1:30 51
52 日
志 期 二 备份 49 星 2:30 52
53 日
志 期 二 备份 50 星 3:30 53
54 差 备份 3 星 异
期 二 4:00 54
55 日
志 期 二 备份 51 星 4:30 55
56 日
志 期 二 备份 52 星 5:30 56
57 日
志 期 二 备份 53 星 6:30 57
58 日
志 期 二 备份 54 星 7:30 58
59 日
志 期 二 备份 55 星 8:30 59
60 日
志 期 二 备份 56 星 9:30 60
61 日
志 期 二 备份 57 星 10:30 61
62 日
志 期 二 备份 58 星 11:30 62
63 日
志 期 二 备份 59 星 12:30 63
64 日
志 期 二 备份 60 星 13:30 64
65 日
志 期 二 备份 61 星 14:30 65
66 日
志 期 二 备份 62 星 15:30 66
67 日
志 期 二 备份 63 星 16:30 67
68 日
志 期 二 备份 64 星 17:30 68
69 日
志 期 二 备份 65 星 18:30 69
70 日
志 期 二 备份 66 星 19:30 70
71 日
志 期 二 备份 67 星 20:30 71
72 日
志 期 二 备份 68 星 21:30 72
73 日
志 期 二 备份 69 星 22:30 73
74 日
志 期 二 备份 70 星 23:30 74
75 日
志 期 三 备份 71 星 0:30 75
76 日
志 期 三 备份 72 星 1:30 76
77 日
志 期 三 备份 73 星 2:30 77
78 日
志 期 三 备份 74 星 3:30 78
79 差 备份 4 星 异
期 三 4:00 79
80 日
志 期 三 备份 75 星 4:30 80
81 日
志 期 三 备份 76 星 5:30 81
82 日
志 期 三 备份 77 星 6:30 82
83 日
志 期 三 备份 78 星 7:30 83
84 日
志 期 三 备份 79 星 8:30 84
85 日
志 期 三 备份 80 星 9:30 85
86 日
志 期 三 备份 81 星 10:30 86
87 日
志 期 三 备份 82 星 11:30 87
88 日
志 期 三 备份 83 星 12:30 88
89 日
志 期 三 备份 84 星 13:30 89
90 日
志 期 三 备份 85 星 14:30 90
91 日
志 期 三 备份 86 星 15:30 91
92 日
志 期 三 备份 87 星 16:30 92
93 日
志 期 三 备份 88 星 17:30 93
94 日
志 期 三 备份 89 星 18:30 94
95 日
志 期 三 备份 90 星 19:30 95
96 日
志 期 三 备份 91 星 20:30 96
97 日
志 期 三 备份 92 星 21:30 97
98 日
志 期 三 备份 93 星 22:30 98
99 日
志 期 三 备份 94 星 23:30 99
100 日
志 期 备份 95 星 四 0:30 100
101 日
志 期 备份 96 星 四 1:30 101
102 日
志 期 备份 97 星 四 2:30 102
103 日
志 期 备份 98 星 四 3:30 103
104 差 备份 5 星 异
期 四 4:00 104
105 日
志 期 备份 99 星 四 4:30 105
106 日
志 期 备份 100 星 四 5:30 106
107 日
志 期 备份 101 星 四 6:30 107
108 日
志 期 备份 102 星 四 7:30 108
109 日
志 期 备份 103 星 四 8:30 109
110 日
志 期 备份 104 星 四 9:30 110
111 日
志 期 备份 105 星 四 10:30 111
112 日
志 期 备份 106 星 四 11:30 112
113 日
志 期 备份 107 星 四 12:30 113
114 日
志 期 备份 108 星 四 13:30 114
115 日
志 期 备份 109 星 四 14:30 115
116 日
志 期 备份 110 星 四 15:30 116
117 日
志 期 备份 111 星 四 16:30 117
118 日
志 期 备份 112 星 四 17:30 118
119 日
志 期 备份 113 星 四 18:30 119
120 日
志 期 备份 114 星 四 19:30 120
121 日
志 期 备份 115 星 四 20:30 121
122 日
志 期 备份 116 星 四 21:30 122
123 日
志 期 备份 117 星 四 22:30 123
124 日
志 期 备份 118 星 四 23:30 124
125 日
志 期 备份 119 星 五 0:30 125
126 日
志 期 备份 120 星 五 1:30 126
127 日
志 期 备份 121 星 五 2:30 127
128 日
志 期 备份 122 星 五 3:30 128
129 差 备份 6 星 异
期 五 4:00 129
130 日
志 期 备份 123 星 五 4:30 130
131 日
志 期 备份 124 星 五 5:30 131
132 日
志 期 备份 125 星 五 6:30 132
133 日
志 期 备份 126 星 五 7:30 133
134 日
志 期 备份 127 星 五 8:30 134
135 日
志 期 备份 128 星 五 9:30 135
136 日
志 期 备份 129 星 五 10:30 136
137 日
志 期 备份 130 星 五 11:30 137
138 日
志 期 备份 131 星 五 12:30 138
139 日
志 期 备份 132 星 五 13:30 139
140 日
志 期 备份 133 星 五 14:30 140
141 日
志 期 备份 134 星 五 15:30 141
142 日
志 期 备份 135 星 五 16:30 142
143 日
志 期 备份 136 星 五 17:30 143
144 日
志 期 备份 137 星 五 18:30 144
145 日
志 期 备份 138 星 五 19:30 145
146 日
志 期 备份 139 星 五 20:30 146
147 日
志 期 备份 140 星 五 21:30 147
148 日
志 期 备份 141 星 五 22:30 148
149 日
志 期 备份 142 星 五 23:30 149
150 日
志 期 备份 143 星 六 0:30 150
151 日
志 期 备份 144 星 六 1:30 151
152 日
志 期 备份 145 星 六 2:30 152
153 日
志 期 备份 146 星 六 3:30 153
154 差 备份 7 星 异
期 六 4:00 154
155 日
志 期 备份 147 星 六 4:30 155
156 日
志 期 备份 148 星 六 5:30 156
157 日
志 期 备份 149 星 六 6:30 157
158 日
志 期 备份 150 星 六 7:30 158
159 日
志 期 备份 151 星 六 8:30 159
160 日
志 期 备份 152 星 六 9:30 160
161 日
志 期 备份 153 星 六 10:30 161
162 日
志 期 备份 154 星 六 11:30 162
163 日
志 期 备份 155 星 六 12:30 163
164 日
志 期 备份 156 星 六 13:30 164
165 日
志 期 备份 157 星 六 14:30 165
166 日
志 期 备份 158 星 六 15:30 166
167 日
志 期 备份 159 星 六 16:30 167
168 日
志 期 备份 160 星 六 17:30 168
169 日
志 期 备份 161 星 六 18:30 169
170 日
志 期 备份 162 星 六 19:30 170
171 日
志 期 备份 163 星 六 20:30 171
172 日
志 期 备份 164 星 六 21:30 172
173 日
志 期 备份 165 星 六 22:30 173
174 日
志 期 备份 166 星 六 23:30 174
175 日
志 期 日 备份 167 星 0:30 175
176 日
志 期 日 备份 168 星 1:30 176
( 4 )
如 三的 系 遭遇灾 ,则 恢复次序及 果 统 难 在 周 7时 T-SQL语 如下 : 句
--1.恢 复周
日 完
整 备 份
RESTORE DATABASE cwgl FROM cwglDv WITH FILE=1,NORECOVERY,REPLACE
--2.恢 复周
三
的 差异 备份
RESTORE DATABASE cwgl FROM cwglDv WITH FILE=79,NORECOVERY
--3.恢 复周
三 时前 的事务日 志 差异 备份 之后 到 备份
RESTORE LOG cwgl FROM cwglDv WITH FILE=80,NORECOVERY RESTORE LOG cwgl FROM cwglDv WITH FILE=81,NORECOVERY
RESTORE LOG cwgl FROM cwglDv WITH FILE=82,RECOVERY
第 14章 自
动 处 代 理
( 略 )
第 15章 安
全 管 理
练 习 参 考 答 案 ( 仅 供 参 考 )
一 、选择题
1.A 2.B 3.C`` 4.D 5.C 6.A
7.D
二 操 、 作题
(略 )