模块六
教学目的与教学内容
? 教学 目的
理解视图概念,掌握视图的基本应用; 明白数据库管理的重要
作用,掌握保障数据安全的基本操作手段。
? 教学内容
? 视图
? 创建视图
? 视图的修改和删除
? 数据库备份与还原、数据导入与导出
? 使用 【 企业管理 】 还原数据库 stuCJ
? 使用 【 企业管理器 】 导入 /导出数据
视图及数据库的管理
教学流程
课题一 视图 课题二 数据库备份与还原、数据导入与导出
任务一
创建视

任务二
视图的
修改与
删除
任务一
使用企
业管理
备份数
据库
任务二
使用企
业管理
还原数
据库
任务三
使用企
业管理
器导入
导数据
课题一 视 图
目的:在本课题中学习视图的创建、使用、修改和删
除。通过视图修改数据和视图的使用方案。
方法:边讲授边练习
内容:
? 首先让我们来看一个已经创建好的视图示例,观察创建
视图的书写形式,然后由此示例引导出创建视图的基本语
法格式,提出创建视图应遵循的基本原则,接着用四个示
例分别说明如何创建四种类型的视图,及它的优点。
?视图的使用
?视图的修改和删除。
还原
任务 1,创建视图
1.示例
【 例 6,1】 创建一个学生基本信息视图 stu_view,它只包括
stu表里的学号、姓名、总成绩、名次三个字段。
在 【 查询分析器 】 查询窗口有下列语句:
CREATE VIEW stu_view
AS
SELECT xh,xm,zcj,mc
FROM stu
还原
按 F5键执行查询后,在 【 查询分析器 】 的对象浏览器窗口中就
可以看到刚刚创建的 stu_view视图,如下图示:
? 语法结构分析
– 保留关键字 CREATE VIEW:用来指明要创建的对象是视图。
– AS:视图要执行的操作
– SELECT语句:视图的查询语句。
CREATE VIEW stu_view
AS
SELECT xh,xm,zcj,mc
FROM stu
创建视图对象
视图要执行的操作
定义视图的 SELECT 语句
视图名
列名
基表
因此, 可以引导出创建视图的最基本语法:
CREATE VIEW < 视 图 名 > [ ( 列名 1 [,列名 2,,.,列名 n ] ) ]
AS
查询语句
说明:
视图名,名称必须符合标识符规则 。 可以选择是否指定视图所有者名称 。
列名,可选项, 如果未指定列名, 则视图列的名称将与 SELECT 语句中的列名
称相同 。 只有在下列情况下, 才必须命名 CREATE VIEW 中的列:当列是从算术
表达式, 函数或常量派生的, 两个或更多的列可能会具有相同的名称 ( 通常是
因为联接 ), 视图中的某列被赋予了不同于派生来源列的名称 。 还可以在
SELECT 语句中指派列名 。
查询语句,视图可以是具体某个表的行和列的简单子集, 可以使用多个表或其
它视图, 也可以是任意复杂性的 SELECT 子句 。
2.几个概念
? 视图:是一个虚拟表,它以另一种方式表示一个或多个表中的数据。
视图只是保存在数据库中的 SELECT 查询。
? 基表:为视图提供数据来源一个表或多个表。如上例的 stu表。
3.创建视图应遵循的基本原则
? 名称限制:视图名称必须遵循标识符的规则,且对每个用户
必须唯一,该名称不得与该用户拥有的任何表的名称相同。
? 数据库限制:只能在当前数据库中创建视图。
? 列限制:最多可以引用 1024列。
? 嵌套限制:在视图上可以再建立视图,最多嵌套 32层。
? 定义视图的 SELECT语句限制:定义视图的查询语句不可以
包含 ORDER BY,COMPTE或 COMPUTE BY子句或 INTO关
键字。
4.使用视图
视图创建成功以后就可以使用它了。现在让我们来使用示
例 1创建的视图 stu_view。在 【 查询分析器 】 查询窗口执行下
列语句:
select * from stu_view
执行结果如下:
xh xm zcj mc
------------ -------- -------- -----------
041022021001 曹静 NULL NULL
041022021002 李春华 NULL NULL
041022021003 李丽娜 NULL NULL
041022021004 张清奎 NULL NULL
041022031001 杨余 NULL NULL
041022031002 兰飞 NULL NULL
它等价于下列语句:
select xh,xm,zcj,mc from stu
在 【 查询分析器 】 查询窗口又执行下列语句,试图通过视
图查询学号 (xh)和出生日期 (csrq):
select xh,csrq from stu_view
但执行结果是:列名 'csrq' 无效。为什么呢?因为在定
义视图的查询语句中,只 select 了的 stu表的 xh,xm,
zcj,mc列,列 csrq没有被 select。因而通过视图只能
访问 xh,xm,zcj,mc四列,这样就保护了 stu表的其他
列数据。
5.视图的类型
? 表中列的子集:一个视图只包含基表中的一个或者多个列。如
【 例 6,1】 。
? 表中行的子集:一个视图只包含基表中符合条件的数据
行。 试看下例:
【 例 6,2】 创建视图 stu_soft_view,只能查询计算机软件班 ( 班级
编号 041022041) 的同学信息 。
CREATE VIEW stu_soft_view
AS
SELECT * FROM stu
WHERE bjbh = '041022041'
执行这个视图 SELECT * FROM stu_soft_view,只能访问该班同
学的数据, 这样从客观上保护了其他班级的数据 。
? 两个或多个表的连接:通过表间的连接建立视图 。
【 例 6,3】 创建视图 stu_bj_view。 建立班级和学生姓名的对照表,
在这个视图中, 学号 (xh)和姓名 (xm)两列来自表 stu,bjmc
列来自表 bj。 连接的条件是学生表 stu的 班级编号等于班级
表 bj的班级编号 。
CREATE VIEW stu_bj_view
AS
SELECT stu.xh,stu.xm,bj.bjmc
FROM stu,
WHERE stu.bjbh = bj.bjbh
? 聚集信息:在视图中可以使用内置函数来简化操作 。 使用
函数时, 必须在 CREATE VIEW 语句中为派生列指定列名 。
【 例 6,4】 创建视图 xscj_view,以计算选课表 ( XK) 中各同学
的总分 。
CREATE VIEW xscj_view (xh,sum_kccj)
AS
SELECT xh,sum(kccj)
FROM xk
GROUP BY xh
任务 1 实训
创建视图 实训
任务 2,视图的修改和删除
1,ALTER VIEW语句修改视图
ALTER VIEW <视图名 > [ ( 列名 1 [,列名 2,...列名 n ] ) ]
AS
查询语句
【 例 6,5】 修改 【 例 6,1】 建立的视图 stu_view,只查询 xh,xm,mc三列数据。
ALTER VIEW stu_view
AS
SELECT xh,xm,mc
FROM stu
2,DROP VIEW语句删除视图
DROP VIEW语句删除视图的定义。只有视图的建立者、系统管理员或者
据库拥有者才能删除视图。语法:
DROP VIEW 视图名
删除 【 例 6,1】 建立的视图。
DROP VIEW stu_view
还原
课题二 数据库备份还原、数据导入与导出
? 目的:在本课题中理解数据库备份和还原的目的、方法和过程。
? 方法:边讲授边练习
? 内容:由于计算机系统中的硬件错误、软件错误、操作员的失误以
及恶意的破坏等因素,轻则可能影响数据库性能,重则破坏数据库。
要定期做好各种备份,以便在出现故障时,能够快速还原数据库。
还原
任务 1,使用 【 企业管理 】 备份数据库 stuCJ
具体步骤:
1,展开服务器组,然后展开服务器。
2,展开“数据库”文件夹,右击数据库 stuCJ,指向“所有
任务”子菜单,然后单击“备份数据库”命令。
3,在 "名称 "框内, 输入备份集名称 。 在 "描述 "框中输入对备
份集的描述 。 ( 可选 )
4,在 "备份 "选项下单击 "数据库 — 完全 "。
5,在 "目的 "选项下,单击 "磁带 "或 "磁盘 ",然后指定备份目
的地。
6,如果没出现备份目的地,则单击 "添加 "以添加现有的目的
地或创建新目的地。
还原
7,在 "重写 "选项下,执行下列操作之一:
– 单击 "追加到媒体 ",将备份追加到备份设备上任何现有的备份中。
– 单击 "重写现有媒体 ",将重写备份设备中任何现有的备份。
8,选择 "调度 "复选框调度备份操作在以后执行或定期执行。(可选)
9,单击 "选项 "选项卡并执行下列一项或多项操作:(可选)
– 选择 "完成后验证备份 "复选框,在备份时对备份进行验证。
– 选择 "备份后弹出磁带 "复选框,在备份操作完成后弹出磁带。该选项
只适用于磁带设备。
– 选择 "检查媒体集名称和备份集到期时间 ",检查备份媒体以防意外重
写。在 "媒体集名称 "框中,输入将用于备份操作的媒体的名称。如果
仅指定备份集到期时间,则将其保留为空。
10,如果是第一次使用备份媒体,或者要更改现有的媒体标签,则在 "媒体集
标签 "框下选择 "初始化并标识媒体 "复选框,然后输入媒体集名称和媒体
集描述。只有在重写媒体时才能对其进行初始化和标识设置。
备份数据库
实训
任务 2,使用 【 企业管理 】 还原数据库 stuCJ
具体步骤:
1,展开服务器组,然后展开服务器。
2,展开 "数据库 "文件夹,右击数据库,指向 "所有任务 "子菜单,然
后单击 "还原数据库 "命令。
3,在“还原为数据库”框中,如果要还原的数据库名称与显示的默
认数据库名称不同,请在其中进行输入或选择。若要用新名称还
原数据库,请输入新的数据库名称。
4,单击 "从设备 ",然后单击 "选择设备 "。
5,在 "还原自 "下,单击 "磁带 "或 "磁盘 ",然后选择还原设备。
6,如果没有出现设备,则单击 "添加 "以添加现有的备份设备或创建
新的备份设备。在 "还原数据库 "对话框内,单击 "查看内容 "并选
择要还原的备份集。
还原
7,在 "还原备份集 "下执行下列操作之一:
– 单击 "数据库 — 完全 "还原数据库备份。
– 单击 "数据库 — 差异 "还原差异数据库备份。
– 单击 "事务日志 "应用事务日志备份。
– 单击 "文件或文件组 "还原文件或文件组备份。指定文件或文件组
的名称。
8,单击 "选项 "选项卡,然后执行下列操作之一:(可选)
– 单击 "使数据库可以继续运行,但无法还原其它事务日志 ",如果
没有其它要应用的事务日志备份。
– 单击 "使数据库不再运行,但能还原其它事务日志 ",如果要应用
其它事务日志备份。
还原数据库
实训
任务 3,使用 【 企业管理器 】 导入 /导出数据
? 导入数据:导入 BioLife.mdb数据库到 SQL SERVER 2000。
? 具体步骤:
1,展开服务器组,然后展开服务器。
2,右击数据库文件夹,指向 "所有任务 "子菜单,然后单击导入数
据命令。
还原
3、在数据源下拉框中选择 Microsoft Access
4,选择数据库文件。单击 【 下一步 】
5,选择目的。选择数据库新建
输入数据库名称
6.单击 【 下一步 】 后,再单击 【 下一步 】,出现“选择源表和视图”对话框。
7.选择要复制的表,单击 【 下一步 】,弹出“保存、
调度和复制包”对话框
8,最后单击“完成”。
? 导出数据:把学生成绩数据库 stuCJ里的表 stu导出为
Excel文件。
? 具体步骤:
1,展开服务器组,然后展开服务器。
2,展开数据库文件夹,右击 stuCJ,指向 "所有任务 "子菜
单,然后单击导出数据命令。
3。在弹出的“选择数据源”对话框里,单击“下一步”。
4,在弹出的“选择目的”对话框里,目的选中,Microsoft Excel
97-2000”。
【 注意 】 在做此步骤前,应先创建工作簿文件 c:\student.xls
5,单击“下一步”后,再单击“下一步”。
6,在弹出的“选择源表和视图”对话框里,“源”选中
[stuCJ].[dbo].[stu],目的选中” Sheet1$”,它是电子表格中工
作表的名称。
【 注意 】 在做此步骤前先在工作表 Sheet1$中建表头,表头行各单元格内输
入 stu表字段名,其次序应与数据库的表字段次序一致。
7,单击“下一步”,随后,按向导单击完成。至此,数据已成功导出。
导入 /导出数据
实训
创建视图 实训
? 创建视图 xk_view,根据它只能查询选课表( xk)学号、课程编号和
课程成绩三列数据。
? 创建视图 stu_year_view,根据它只能查询学生表( stu)中年龄不
小于 20岁的学生数据。
? 创建视图 xk_kc_view。建立 XK中的学号、课程编号和 KC中课程名
称的对照表。
? 创建视图 xk_stu,根据它查询选修了< C程序设计>的同学数据。
? 创建视图 xk_course_avg_view,以统计每门课程的平均分。
? 根据上一题建立的视图 xk_course_avg_view,查询平均分在 80以上
的课程。
返回
备份数据库 实训
? 备份数据库 stuCJ
还原数据库 实训
? 还原数据库 stuCJ
使用 【 企业管理器 】 导入 /导出数据
? 使用 【 企业管理器 】 完成以上导入 /导出数据的练习。
结束