




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标 通过本章学习 你能够学会 1 创建和管理视图2 利用视图简化查询操作3 通过视图访问数据4 视图的优缺点 第5章实现SQLServer数据库中的视图 5 1视图基本概念5 1 1视图基本概念视图是从一个或多个表或视图中导出的表 其结构合数据是建立在对表的查询基础上的和表 和表一样 视图也是包括几个被定义的数据列和多个数据行 但就本质而言 这些数据列和数据行来源于其所引用的表 所以视图不是真实存在的基础表而是一张虚拟的表 与表不同的是 视图本身并不存储视图中的数据 而是存储在视图所引用的表中 第5章实现SQLServer数据库中的视图 学生成绩信息的视图 第5章实现SQLServer数据库中的视图 基表1 学生信息 基表2 学生成绩 查询语句执行结果 第5章实现SQLServer数据库中的视图 实例5 1 在查询分析器下建立 学生视图 的视图 操作步骤 第5章实现SQLServer数据库中的视图 5 1 2视图的优缺点通过本章的实例 可见建立视图可以简化查询 此外 通过视图还可以实现隐蔽数据库复杂性 为用户集中提取数据 简化数据库用户管理等优点 1 隐蔽数据库的复杂性2 为用户集中提取数据3 简化用户权限的管理4 方便数据的交换 第5章实现SQLServer数据库中的视图 5 2创建视图视图的命名必须遵循标志符规则 必须对每个用户都是惟一的 视图名称不能和创建该视图的用户的其他任何一个表的名称相同 在默认状态下 视图中的列名继承了它们基表中的相应列名 对于下列情况则需要重新指定列的别名 1 视图中的某些列来自表达式 函数或常量时 2 当视图所引用不同基表的列中有相同列名时 3 希望给视图中的列指定新的列名时 4 视图的定义可以加密 以保证其定义不会被任何人 包括视图的拥有者 获得 第5章实现SQLServer数据库中的视图 5 2 1使用企业管理器创建视图 5 2 在企业管理器中创建 学生成绩信息 视图 该视图中从基表1学生信息和基表2学生成绩中选择所有学号 姓名 课程号 期中成绩和期末成绩 操作步骤 第5章实现SQLServer数据库中的视图 第5章实现SQLServer数据库中的视图 归纳分析 在窗口内容由上至下分为四部分 第一部分显示视图的基表及其对应外键关系 有关外键的内容在第8章 第二部分显示视图中的列 可以在 准则 处输入每一列对应的条件 如WHERE语句 并可以加入排序型 如果需要使用GROUP语句对视图数据进行分组 则可以单击列名 在弹出的快捷菜单中选择 分组 第三部分显示创建视图所对应的T SQL语句 可以在这里对查询条件进行修改 第四部分为视图运行结果窗口 视图建立完毕后 在图5 8所示窗口内右击并在弹出的快捷菜单中选择 运行 或直接单击 运行 按钮 可以在此查看视图的数据内容 使用多个基表 建立视图 最好建立关联后再用 否则会使视图的数据重复 第5章实现SQLServer数据库中的视图 5 2 2使用T SQL语句创建视图 实例5 3 在查询分析器下建立 课程查询视图 该视图中包含所有学号 课程号 课程名称的任课教师及他们平时成绩 根据题的要求 该视图要对表 学生信息 课程 和 学生成绩 以主外键进行自然连接 并对视图文本加密 使用户看不到定义的文本 操作步骤 第5章实现SQLServer数据库中的视图 归纳分析 命令格式 CREATEVIEW视图名 视图列名1 视图列名2 视图列名n WITHENCRYPTION ASSELECT语句 WITHCHECKOPTION 其中WITHENCRYPTION子句对视图进行加密 WITHCHECKOPTION表示对视图进行UPDATE INSERT和DELETE操作时 要保证所操作的行 满足视图定义中的条件 即只有满足视图定义条件的操作才能执行 第5章实现SQLServer数据库中的视图 SELECT语句可以是任何复杂的查询语句 但通常不允许包含ORDERBY子句和DISTINCT短语 如果CREATEVIEW语句没有指定视图列名 则该视图的列名默认为SELECT语句目标列中各字段的列名 第5章实现SQLServer数据库中的视图 5 3管理视图在企业管理器下或通过SQL语句都可以查看视图的定义信息 但是 如果在视图的定义语句中带有WITHENCRYPTION子句 表示SQLServer对建立视图的语句文本进行了加密 则无法看到视图的定义语句 即使是视图的拥有者和系统管理员也不能看到 第5章实现SQLServer数据库中的视图 5 3 1查看视图信息1 使用企业管理器查看 实例5 4 查看 例5 1 创建的 学生成绩信息 视图为例说明其操作过程 操作步骤 第5章实现SQLServer数据库中的视图 2 使用系统存储过程查看视图信息 实例5 5 查看视图学生成绩信息的名称 列名 拥有者 创建时间等信息 查看视图的关联性 查看定义视图的T SQL语句 操作步骤 第5章实现SQLServer数据库中的视图 归纳分析 由上例可知使用T SQL创建表需要一定的格式 在这里我们给出使用Transact SQL语言创建表 语法如下 1 使用系统存储过程显示视图的名称 列名 拥有者 创建时间 列的属性等信息 命令格式 sphelp表 视图 2 使用系统存储过程显示定义视图的T SQL语句 命令格式 sphelptext表 视图 3 显示视图与其他表或视图的关联性信息 见第10章数据完整性 spdepends表 视图 第5章实现SQLServer数据库中的视图 5 3 2修改视图1 使用企业管理器修改视图 实例5 6 使用企业管理器修改视图 学生成绩信息 中将期中成绩删除 操作步骤 第5章实现SQLServer数据库中的视图 归纳分析 在设计视图窗口 可以添加或删除视图的基表及其列 修改视图属性 例如 右击一个表的名称 在弹出的菜单中选择 删除 则会从视图的定义中除去该表 其他操作与建立视图的方法类似 这里不再赘述 也可以在图5 12所示窗口的快捷菜单中选择 属性 命令 在弹出的 查看属性 窗口中直接修改创建视图的T SQL语句 第5章实现SQLServer数据库中的视图 2 使用T SQIL语句修改视图 实例5 7 在查询分析器中 建立一个 查询 的视图 然后对视图名 查询 更改为 课程视图 并增加一个平时成绩的列 操作步骤 第5章实现SQLServer数据库中的视图 归纳分析 注意 只有数据库的所有者或视图的所有者能够对视图进行重命名工作 修改视图名称与修改表名称所用方法相同 命令格式 sp rename原视图名 新视图名修改一个已经创建视图的定义可以使用T SQL语句 命令格式 ALTERVIEW视图名 WITHENCRYPTION ASSELECT语句 WITHCHECKOPTION 第5章实现SQLServer数据库中的视图 5 3 3删除视图当不再需要某个已经存在的视图时 可以删除它 删除视图后 表和视图所基于的数据并不受影响 1 使用企业管理器删除视图 实例5 8 删除没有的视图如删除 课程查询视图1 操作步骤 在企业管理器中选中 课程查询视图1 右击 在弹出的快捷菜单中选择 删除 命令 即可删除选中的视图 第5章实现SQLServer数据库中的视图 2 使用T SQL语言删除视图 实例5 9 删除没有的视图如删除 课程查询视图2 课程查询视图a 操作步骤 1 启动 查询分析器 输入如下SQL语句 DROPVIEW课程查询视图2 课程查询视图aGO 2 按 F5 键或单击工具栏 执行查询 图标执行 归纳分析 由上例可知使用T SQL删除视图 命令格式 DROPVIEW视图名 视图名 视图名n使用该语句一次可以删除多个视图 第5章实现SQLServer数据库中的视图 5 4通过视图访问数据对视图进行修改操作包括插入 修改和删除 类操作 由于视图是不存储数据的虚表 所以对视图数据的修改 最终转换为对基表数据的修改 5 4 1通过视图添加表中的数据 实例5 10 在视图学生成绩信息中插入数据学号 1013 姓名 王东 课程号 202 期中成绩 89 期末成绩 87 然后分别查询表学生习信息 学生成绩和视图学生成绩信息 看看有什么结果 操作步骤 第5章实现SQLServer数据库中的视图 注意 学号和姓名的数据取自基表学生信息 课程号 期中成绩 期末成绩的数据取自基表学生成绩 由于没有违反基表中的约束条件 所以数据全部成功地插入到各个基表中 但是 查询视图学生成绩信息将看不到这些数据 因为数据只是通过视图分别孤立地插入到表学生信息和学生成绩中 而插入的数据并不符合建立视图的条件 第5章实现SQLServer数据库中的视图 归纳分析 在视图中添加数据 就是对视图的基表添加数据 添加数据也使用INSERT命令 用法与向表中添加数据相同 但要注意 1 当视图有多个基表时 不能在一个语句中对视图中的多个基表同时进行修改 亦即一次只能对视图的一个基表内的数据进行增 删 改操作 2 由于视图中可能仅仅包含基表中的部分列 因此通过视图向基表中插入数据时 要求基表中的其他非视图列应该是允许空 NULL 或含有默认值 3 插入的数据必须满足基表的约束条件 第5章实现SQLServer数据库中的视图 5 4 2通过视图修改表中的数据使用UPDATE命令可以通过视图修改基表中的数据 修改数据的方法与修改表中数据的方法相同 与通过视图向基表插入数据一样 也要注意一次只能修改一个表 且修改后的数据不得违反基表中的各种约束关系 实例5 11 将视图 学生视图 中的数据 学号 1010 姓名改为王梅 操作步骤 1 启动 查询分析器 输入如下SQL语句 UPDATE学生视图SET姓名 王梅 WHERE学号 1010 GO 2 按 F5 键或单击工具栏 执行查询 图标执行 第5章实现SQLServer数据库中的视图 归纳分析 首先学号 1010这条记录一定要在视图中存在 如果它仅存在于视图的基表中而不存在于视图中 则基表中的数据将无法更改 其次 尽管一个SET语句可以为多个列变量赋值 但它们必须来自同一个表 第5章实现SQLServer数据库中的视图 5 4 3通过视图删除表中的数据 实例5 12 删除视图 学生视图 中黎明的数据 假设所删除的数据已经存在 操作步骤 1 启动 查询分析器 输入如下SQL语句 DELETE学生视图WHERE姓名 黎明 GO 第5章实现SQLServer数据库中的视图 归纳分析 在视图中使用DELETE命令删除数据就是删除视图基表中的对应的数据 语法与在表中删除数据相同 在视图中删除数据得以进行的条件是视图只能有一个基表 且所要删除的数据必须存在于视图中 即不违反视图的建立条件 删除视图数据是针对视图的行进行的 亦即DELETE命令将删除视图一行中的所有数据 实际上是删除了基表中对应于该视图中某一行 或几行 的数据 第5章实现SQLServer数据库中的视图 5 5本章总结本章主要介绍视图应用 通过一系列实例 讲述了创建 修改以及删除视图的方法 另外 还对视图数据的查询 修改 更新 插入和删除做了详细介绍 通过本章学习 应该掌握以下内容 1 视图提供了一种查看数据库表数据的另外一种方法 定义视图就是指定一个查询语句 然后将查询结果作为视图 通过视图 可以对不同的用户提供同一个表的不同数据表现 2 视图是逻辑上的概念 表是实际存在的数据的存储集合 视图既可以定义在表上 也可以定义在另外一个视图上 但是 为了提高视图的性能 建议视图不要创建在其他视图之上 一般对一个表建立一个视图 第5章实现SQLServer数据库中的视图 3 使用视图具有很多优点 如集中用户数据 屏蔽数据查询的复杂性 简化管理和向其他应用程序输出而重新组织数据等 4 创建视图有许多方法 如利用向导创建视图 使用语句CREATEVIEW创建视图以及使用企业管理器工具创建 5 修改和删除视图语句分别为ALTERVIEW和DROPVIEW 6 视图中的记录可以进行查询 插入 删除和更新 7 使用系统表sysobjects和sysconmaents以及企业管理器查看视图定义信息 8 如果视图使用 WITHENCRYPTION 选项 将对定义视图进行加密 9 修改和更新视图数据必须只有一定的条件和权限 第5章实现SQLServer数据库中的视图 1 创建视图注意的问题视图的命名必须遵循标志符规则 必须对每个用户都是惟一的 视图名称不能和创建该视图的用户的其他任何一个表的名称相同 在默认状态下 视图中的列名继承了它们基表中的相应列名 对于下列情况则需要重新指定列的别名 1 视图中的某些列来自表达式 函数或常量时 2 当视图所引用不同基表的列中有相同列名时 3 希望给视图中的列指定新的列名时 4 视图的定义可以加密 以保证其定义不会被任何人 包括视图的拥有者 获得 第5章实现SQLServer数据库中的视图 2 通过视图修改表数据应注意的问题对视图进行的修改操作有以下限制 1 若视图的字段来自表达式或常量 则不允许对该视图执行INSERT和UPDATE操作 但允许执行DELETE操作 2 若视图的字段来自集合函数 则此视图不允许修改操作 3 若视图定义中含有GROUPBY子句 则此视图不允许修改操作 4 若视图定义中含有DISTINCT短句 则此视图不允许修改操作 5 一个不允许修改操作视图上定义的视图 也不允许修改操作 第5章实现SQLServer数据库中的视图 5 6思考与实训5 6 1思考1 为什么说视图是虚表 视图的数据存在什么地方 2 视图中的数据是否可以取自一张表的全部数据或部分数据 是否可以取自多张表的全部数据或部分数据 是否可以取自一个表或几个表的某几列数据 是否可以取自一个表或几个表的某几行数据 如果上述答案为是 如何实现 3 创建视图时应注意的问题是什么 4 创建视图窗口内容由上至下分为4部分 各自的作用是什么 第5章实现SQLServer数据库中的视图 5 sp help sp depends sp helptext查看的各自的含义是什么 6 为什么使用sp helptext查看不到视图的定义文本 7 在视图中如何插入 修改和删除数据 各有什么条件 8 在视图中添加数据 应注意的问题是什么 9 视图的优缺点是什么 10 通过视图修改表数据应注意的问题是什么 第5章实现SQLServer数据库中的视图 5 6 2实训1 实训目的 1 掌握创建视图的各种方法 理解视图是基于数据表的虚拟的表 2 熟练掌握企业管理器和用T SQL语句编写的操作过程 3 熟练掌握多表的视图建立 修改视图的结构 视图的记录 4 熟练掌握各种查看视图信息的内容 2 实训环境SQLServer2000的运行 管理环境 第5章实现SQLServer数据库中的视图 3 实训内容 1 在企业管理器中创建视图 利用基表 学生信息 课程 和 学生成绩 创建 练习视图1 视图 并运行后查看结果 如表5 13所示 第5章实现SQLServer数据库中的视图 利用基表 学生信息 课程 和 学生成绩 创建 练习视图2 视图 条件是任课教师为 章华 的记录并将文本加密 并运行后查看结果 如表5 14所示 第5章实现SQLServer数据库中的视图 2 在查询分析器中用T SQL语句编写 利用基表 学生成绩 创建 练习视图3 视图 要求的列名为 课程号 班级 期中成绩 期末成绩 平时成绩 并运行结果 利用基表 学生成绩 创建 练习视图4 视图 要求的条件为 期中成绩在80和90之间的列名为 学号 课程号 班级 期中成绩 期末成绩 并运行结果 利用基表 学生成绩 创建 练习视图5 视图 要求的列名为 课程号 班级 期中成绩 期
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国制药行业清洁生产技术应用与减排效益分析报告
- 2025年宝鸡方塘高级中学教师招聘(34人)模拟试卷附答案详解
- 2025年智能制造与工业自动化
- 2025年智能音箱的用户行为与市场分析
- 2025年4月广东广州市天河区华港幼儿园编外聘用制专任教师招聘1人模拟试卷及参考答案详解1套
- 2025年福建省三明市尤溪县总医院招聘10人考前自测高频考点模拟试题及答案详解(新)
- 2025广西防城港市防城区政务服务监督管理办公室招聘1人考前自测高频考点模拟试题附答案详解(典型题)
- 2025广西河池市巴马瑶族自治县消防救援大队招录3人考前自测高频考点模拟试题含答案详解
- 2025广东深圳市九洲电器有限公司关IQC招聘1人考前自测高频考点模拟试题附答案详解(完整版)
- 2025年温州市法院系统招聘真题
- 青春期生殖健康教育
- 2025年BM²T电池管理技术白皮书-阳光电源
- 2024-2025学年下学期高二英语外研社版期中必刷常考题之被动语态
- 中医诊所招学徒合同标准文本
- 汉语言文学毕业论文-鲁迅小说中的知识分子形象
- 长期供应商供货合同书
- 如何缓解焦虑和压力
- 垃圾分类志愿服务
- ccusg重症超声培训班题库
- 冀教版八年级数学 13.4 三角形的尺规作图(学习、上课课件)
- 2024年锅炉操作工(技师)职业鉴定理论考试题库(含答案)
评论
0/150
提交评论