最新第6章_查询与视图讲课讲稿
第六章视图分析

第六章视图1.概述✓视图(View)是从一个或多个表(其他视图)中导出的表,其结构和数据是建立在对表的查询基础之上的。
所以视图不是真实存在的基础表,而是一张虚表。
视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。
✓视图一经定义便存储在数据库中,与其相对应的数据并没有像表一样在数据库中另外存储一份,通过视图看到的数据只是存放在基表中的数据。
对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)和删除。
✓当对视图中的数据进行修改时,相应的基表的数据也要发生变化,同时,如果基表的数据发生变化,则这种变化也可以自动地反映到视图中2.视图的特点1.视点集中,减少对象大小视图让用户能够着重于他们所需要的特定数据或所负责的特定要求,如用户可以选择特定行或特定列。
2.从异构源组织数据可以在连接两个或多个表的复杂查询的基础上创建视图,这样可以将单个表显示给用户。
3.隐藏数据的复杂性,简化操作视图向用户隐藏了数据库设计的复杂性,这样如果开发者改变数据库设计,不会影响到用户与数据库交互。
另外,用户可将经常使用的连接查询、嵌套查询或联合查询定义为视图。
4.简化用户权限的管理可以将视图的权限授予用户,而不必将基表中某些列的权限授予用户,这样就简化了用户权限的定义。
3.视图的四种类型✓关系视图:关系视图(relational view)基本上就是经过存储的查询,可以将它的输出看作是一个表。
它就是基于关系数据的存储对象。
✓内嵌视图:又称为嵌套查询,是嵌入到父查询中的查询,能够在任何可以使用表名称的地方使用。
✓对象视图:为了迎合数据库中对象类型而将关系表投射到特定数据类型的虚拟对象表中,视图的每行都是带有属性、方法和唯一标识(OID)的对象实例。
✓物化视图:就是在数据库中查询结果存储在视图中,并支持查询重写、刷新、提交等特性的视图4.视图的创建及管理a)关系视图语法:用户赋予create view的权限查看视图可以通过User_views,All_views,Dba_views来查询视图信息例如:1.创建普通关系视图【可对视图执行DML操作】2.创建只读视图3.创建检查视图4.创建连接视图5.创建复杂视图特点:复杂视图是指包含函数、表达式或分组数据的视图,主要目的是为了简化查询create or replace view view_emp as select count(*) 人数,avg(sal+nvl(comm,0)) 平均工资,deptno 部门编号 from emp groupby deptno;6.创建强制视图特点:正常情况下,如果基表不存在,创建视图就会失败。
第6章-索引和视图PPT课件

(UNIQUE)的聚集索引。(实际上在物理结构上,与主码约束 相对应是唯一性的聚集索引。) 也可以使用CREATE INDEX语句创建聚集索引。 聚集索引不适用于频繁更改的列和字节长的列。
视图的内容是由SELECT语句的结果集构成。
和真实的表一样,视图也包括几个被定义的数据列和多 个数据行,但从本质上讲,这些数据列和数据行来源于 其所引用的表。
数据库中只存放视图的定义,视图所对应的数据并不实 际地以视图结构存储在数据库中,而是存储在视图所引 用的表中。
当视图引用的基本表中的数据发生变化时,从视图中查 询出的数据也随之改变。
SELECT Student.Sno, Sname, Sdept ,Grade FROM Student , SC WHERE Student.Sno = SC.Sno AND o = 'c05'
-
22
查询视图V_IS_S1
-
23
3.在已有视图上定义新视图
在视图上再建立视图,这时作为数据源的视图必须是已 经建立好的。
列中的数据是唯一的,就可以在同一个表上创 建一个唯一的聚集索引和多个唯一的非聚集索 引。
-
11
示例
例1.为Student表的Sno列创建唯一聚集索引。 CREATE UNIQUE CLUSTERED INDEX Sno_ind ON Student (Sno)
例2.为SC表创建Cno列(升序)Grade(降序) Sno (升序)的非聚集复合索引。 CREATE INDEX CGS_ind ON SC ( Cno, Grade DESC, Sno )
第6章使用索引和视图(2)精品PPT课件

6.3.2 修改索引
使用企业管理器,打开表设计器,在“索引/键” 卡片中修改索引的定义; 修改索引的过程是首先删除表中准备修改的索 引,然后使用新的索引定义重新创建该索引; 创建和修改聚集索引时,SQL Server要对表的 行进行重组,当表中存储了大量数据时,会产生 很大的开销,可能要花很长时间。
6.4.1 使用聚集索引
用于以下情况: 包含大量非重复值的列; 查询使用下列运算符返回一个范围值的列: BETWEEN、>、>=、<、<=; 返回大型结果集的查询; 经常被使用连接或GROUP BY子句查询访问的 列。
注意:聚集索引不适用于频繁更新的列。
6.4.2 使用非聚集索引
非聚集索引用于以下情况。 包含大量非重复值的列,如姓名列。 不返回大型结果集的查询。 搜索条件(WHERE子句)要求精确匹配的查询 中经常使用的列。 经常需要连接和分组查询语句。
CREAT [UNIQUE][CLUSTERED][NONCLUSTERable|view} (column[ASC|DESC][,…n]) [WITH FILLFACTOR=fillfactor, DROP_EXSITING
]
2、使用T-SQL创建索引
6.5 维 护 索 引
6.5.1 维护统计信息 6.5.2 数据碎片 6.5.3 重建和整理索引
1.删除并重新创建聚集索引 2.DBCC INDEXDEFRAG命令 3.DROP_EXISTING子句
6.6 视图
视图是从一个或几个基表(或视图)导出的表。 视图是虚表; 数据库中只存放视图定义,而不存放视图 对应的数据; 视图一经定义,就可以和基本表一样被查 询、删除。
1.使用企业管理器创建索引 2.使用T-SQL创建索引
14第六章 数据库的查询和视图-索引

创建组合索引(续)
关于创建组合索引的事实和指导原则
在一个组合索引中可以组合多达16个列,组成组合索引的列的长度加起来
不能超过900字节
组合索引中所有列必须来自同一张表,除非索引是创建在视图上 定义时将惟一性最好的列放在最前面。CREATE INDEX 语句中的第一列具 有最高优先级 若要使查询优化器使用组合索引,查询中的 WHERE 子句必须引用组合索 引中的第一列 在(列1,列2)上的索引和在(列2,列1)上的索引是不同的 组合索引对于具有多列键值的表十分有用 使用组合索引提高查询性能,减少表上需要创建的索引数
非聚集索引
创建索引
语法: CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX 索引名 ON {表名|视图名} (列 [ASC|DESC][ ,...n ]) 例: CREATE CLUSTERED INDEX CL_SNO ON student ( sno )
参照完整性
FOREIGN KEY , CHECK
用户定义完整性
RULE, DEFAULT, CONSTRAINT ,TRIGGER 其他的完整性类型都支持用户定义完整性
注意:索引名称在一个表中应是唯一的,但在同一数据库或不同数据库中可以重复。
创建惟一索引
惟一索引确保索引列上的数据都是惟一的,不包含重复值
语法: 在 CREATE INDEX 语句中使用 UNIQUE 选项
例:
CREATE UNIQUE NONCLUSTERED
INDEX U_IDCARDNUM ON student(idcardnum)
《查询与视图》PPT课件_OK

• 建立联接条件的方法 • 对于已存在于查询中的表或视图,可以拖动一张表 中的字段到另一张表中的相应 字段上建立联接条件 • “查询设计器”工具栏/添加联接 • “查询设计器”/“联接”选项卡/插入
18
• 编辑联接条件的方法 • 双击连接线 • 单击“联接”选项卡中的条件行前的按钮 • “查询设计器”/联接选项卡
• 2. 设置关键字段
• VFP用关键字段来唯一标识那些已在视图中修改过的源
表的更新记录。设置“关键字段”,可用来检验更新冲
突
26
• (1)指定可更新字段
• 如果要设置给定表中部分或全部字段允许更新,必须在该表的所 有字段中设置一个关键字段
• “关键”列:
• 钥匙形,将字段设置为关键字段
• 命令设置:
24
4.2.2 创建本地视图
• 使用视图设计器
• “项目管理器”-选中数据库- -选择“本地视图”-选“新建” • 视图设计器与查询设计器的不同:增加了一个“更新条件”选项
卡
• 使用CREATE SQL VIEW 命令
• 条件:对应数据库打开 • 格式:CREATE SQL VIEW 视图名;AS SELECT-SQL 语句
• 删除联接条件的方法 • 则先单击连接线,按【Del】键即可将其删除 • 联接选项卡/移去
• 联接不必基于完全匹配的字段 • (LIKE,==,>,<)
• 联接与筛选的联系与区别(p118)
19
• 3. 多表查询举例(演示) • 例2(book402)
• 查询信息管理系中所有成绩总分在480分以上,并且各 门课程的成绩不得低于70分的学生。要求在查询结果中 包含学生的学号、姓名、总分、平均分和最低分,并 按照总分从高到低排列。
第5_6章 查询与视图(SQL)

删除记录 示例: 示例: 职务= 技术员 技术员” delete from gzgl!zg where 职务=“技术员” browse &&物理删除 pack &&物理删除 browse
更新记录 【例SQL-5.prg】: 】 实发工资=工资+奖金update gzgl!gz set 实发工资=工资+奖金-水电费 &&set用于指定列和修改的值 browse &&set用于指定列和修改的值
②视图设计器
SQL命令 ③ SQL命令
【例5.4】利用视图向导,创建一个多表本地视图文 】利用视图向导, 学生成绩” 视图中的数据包含学号、姓名、 件“学生成绩”,视图中的数据包含学号、姓名、 系科和课程号、成绩等字段的内容, 系科和课程号、成绩等字段的内容,视图中只含 男同学的记录并以成绩的降序排列。 男同学的记录并以成绩的降序排列。 【例5.5】利用视图设计器,创建一个多表本地视图 】利用视图设计器, 成绩单视图” 视图中的数据包含Student表、 “成绩单视图”,视图中的数据包含 表 Course表和 表和Assign表,视图中包含 表和 表 视图中包含Student表的学 表的学 姓名、系科; 表中的课程号、 号、姓名、系科; Assign表中的课程号、成绩; 表中的课程号 成绩; Course表中的等课程名、学分等字段的内容;查询 表中的等课程名、 表中的等课程名 学分等字段的内容; 结果以学号的升序和课程号升序排列。 结果以学号的升序和课程号升序排列。 【例5.6】利用本地视图“学生视图”,更新 】利用本地视图“学生视图” Student表中的数据。 表中的数据。 表中的数据
②排序短语 &&查询全部记录, &&查询全部记录,并按职工号降序排列 查询全部记录 SELECT * FROM 职工工资 order by 职工号 desc &&统计student表中各专业的女生人数 &&统计student表中各专业的女生人数 统计student ③分组短语
vf第6章查询gj
功能:向指定的数据表末尾插入一条新记录。
说明:1、Into 子句中的(字段名1,字段名2,…)是指插 入新值的字段。 2、Values子句中的(表达式1 ,表达式2,…)是指 表中新值字段的值,各常量数据必须与Into子 句中所对应的数据类型相同、个数匹配。
3. 简洁易学
SQL语言非常简洁。只有九个动词。除了命令动词,整个语 句本身也非常接近英语的自然语言,因此容易学习和掌握。
4. 方式灵活
SQL 语言可以直接以命令方式交互使用,也可以嵌入到 程序设计语言当中以程式方式使用。
6.1.2 SQL语言的组成 实现数据的查询
SQL功能
用于定义数据库、表、视
练习:以“学生信息”数据库为例
在“学生信息”数据库下创建一个表Stud(学生 信息表),它由以下字段组成:学号(C,10),姓名 (C,8),性别(C,2),班级名(C,10),系别代号(C,2),地址 (C,50),出生日期(D), 团员否( l),照片(G)
Create Database 学生信息
功能: 从指定的表中,根据指定的条件逻辑删除记录 说明: From指定从哪个表中删除数据,Where指定被
删除的记录所满足的条件,如果不使用Where 子句,则删除该表中的全部记录。 注意: 此要继命续令使是用逻P辑a删ck除命记令录。,如果要学 性物历别理==删““大男除学”记”录需
【例6.7】 删除“人才档案”表中大学学历的记 录Delete From 人才档案 Where 学历= "大学"
Browse Last
2. 更新记录
格式:Update 表名 Set 字段名1=表达式1 [,字段名2=表 达式2 … ] Where 条件
MySQL数据库实用教程(附微课)教案06 视图
第三节课堂案例:学生成绩管理数据库的视图
教学目的
通过实例加强对视图的理解
教学方法
课堂授课、班级授课
教学手段
多媒体教学
重点难点
重点:视图的定义难点:操作视图
教学
课程引入:通过提出问题“综合应用视图完成对学生成绩管理的数据进行查询和更新”引入本课
授课内容:
一、创建和查看视图
二、操作视图
总结课程内容,重申重点、难点
课程引入:通过“视图是不存储数据的虚拟表,所以对视图的更新就是对基本表的更新。更新视图可以实现对基本表的插入、删除、修改等操作“引入本课。
教学
授课内容:
一、更新视图内容1.插源自数据2.修改数据设计
3.删除数据
二、修改视图定义
三、删除视图
总结课程内容,重申重点、难点
课后任务
完成“例6-10”“例6-1Γ“例6-12”……和"例6-15"
******学校
教师教案
(学年第学期)
课程名称:MVSO1数据库应用
授课专业:
任课教师:
所在系部:
第6章视图
任务名称
第一节视图概述、创建和查询视图
教学目的
掌握视图的概念和创建查询视图的方法
教学方法
课堂授课、班级授课
教学手段
多媒体教学
重点难点
重点:创建查询视图的方法难点:视图是虚表的概念
教学
内容
设计
课程引入:通过“视图是从一张或多张基本表中导出的虚拟表”引入本课
授课内容:
一、视图概述
二、创建和查询视图
1.创建视图
2.查询视图
总结课程内容,重申重点、难点
课后任务
第6章视图及其应用
第6章视图及其应用第6章视图及其应用假若你作为《学生管理信息系统》的程序开发员,需要采取什么方法,来从一个或多个相关联数据表中抽取数据,定制所需要的数据信息?本章教与学的建议:教师使用2课时边讲解边演示,学生在教师的指导下使用2课时在课内练习和讨论。
本章目标是通过学习,能够运用视图来检索数据表中感兴趣的部分或全部数据。
第6章视图及其应用本章学习任务视图的概述视图的概念、使用视图的优点和缺点视图的创建使用对象资源管理器或Transact-SQL创建视图视图的管理维护查看和修改视图定义、视图的更名与删除通过视图查询与更新数据通过视图查询数据、通过视图修改数据第6章视图及其应用视图的概述视图的概念视图是基于某个查询结果的一个虚拟表,只是用来查看数据的窗口而已。
视图与真正的表很类似,也是由一组命名的列和数据行所组成,其内容由查询所定义。
但是视图并不是以一组数据的形式存储在数据库中,数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基表中。
当基表中的数据发生变化时,从视图中查询出来的数据也随之改变。
视图的概述视图的概念除非是索引视图,否则视图的数据不会作为非重复对象存储在数据库中。
数据库中只存储视图的定义,即视图是从某个或某些基本表(或视图)导出的,视图不生成所选数据表行和列的永久拷贝。
视图的概述使用视图的优点和缺点优点:数据保密、简化数据查询操作、保证数据的逻辑独立性、着重于特定数据、自定义数据、导出和导入数据、跨服务器组合分区数据。
缺点:当更新视图中的数据时,实际上是对基表的数据进行更新。
当从视图中插入或者删除时,情况也是这样。
然而,某些视图是不能更新数据的。
视图的创建创建视图前应考虑如下准则:只能在当前数据库中创建视图;视图名称必须遵循标识符的规则;可以在其他视图的基础上创建视图;不能将规则或DEFAULT定义与视图相关联;不能将AF TER触发器与视图相关联,只有INSTEADOF触发器可以与之相关联。
第六章视图及其应用
6.2 视图的创建和查询
6.2 视图的创建和查询
2.用T-SQL语句中的CREATE VIEW命令创建视图 CREATE VIEW [schema_name.] view_name [(column [,...n])] [WITH encryption] AS select_statement [WITH CHECK OPTION]
6.2 视图的创建和查询
• 3. 利用SQL SERVER管理平台的视图模板来创 建视图 (1)在SQL SERVER管理平台中,选择view菜 单中的“模板资源管理器 ”选项,如图1所示。 (2)在出现的“模板资源管理器”选项中选 择“创建视图”选项,如图2所示。 (3)按照提示输入视图名称,select语句后, 执行此语句,即可创建视图。
• 2.执行存储过程或查询语句查看 • Exec sp_helptext objname • Select * from imformation_schema.views—查看所 有视图的定义信息
6.3 查看视图定义信息
6.4 修改和删除视图
• 1. 修改视图 • 2.删除视图 • 3.重命名视图
6.4 修改和删除视图
(2)使用ALTER VIEW语句修改视图,但首先
必须拥有使用视图的权限,然后才能使用 ALTER VIEW语句,该语句的语法形式如下: ALTER VIEW view_name [(column[,...n])] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION] 注意:使用alter语句可以修改加密视图。
6.4 修改和删除视图
3.重命名视图 方法有以下两种: (1) 在SQL SERVER管理平台中,选择要修改 名称的视图,并右击该视图,从弹出的快捷 菜单中选择“重命名”选项。或者在视图上 再次单击,也可以修改视图的名称。接着该 视图的名称变成可输入状态,可以直接输入 新的视图名称。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 视图的建立、查看与修改
6. 单击“分组依据”选项卡,从“可用字段”中选“学生选 课.课程ID”,并单击“添加”按钮。完成后,如下图所示。
7. 关闭“视图设计器”,输入视图名,并保存视图。
返回
6.1 视图的建立、查看与修改
• 【例6-2】在stu1数据库中基于“学生选课”和“课程” 表建立一个名为“课程平均成绩”视图,输出字段为 “课程名”以及该课程的平均成绩。(多表视图)
基表的操作。
返回
6.1 视图的建立、查看与修改
6.1.2 本地视图的创建
– 可以利用“视图向导”来创建视图,也可以利用“视图 设计器”来设置视图。
• 1、利用视图向导创建
– ① 调出“本地视图向导”对话框
• [工具]-[向导]-[全部]-[本地视图向导] • 或: [文件]-[新建]-[视图]-[向导] • 或: [数据库]-[新建本地视图]-[视图向导]
话框。 3. 从“添加表或视图”对话框中选择“学生选课”表,单击“添加”
按钮。 4. 单击“关闭”后,弹出“视图设计器”窗口。从“字段”选项卡
“可用字段”栏中选择“学生选课.课程ID”,并单击“添加”按钮。 5. 在“函数和表达式”文本框中填入“AVG(学生选课.成绩) as 平均成
绩”,并单击“添加”按钮。
– 单击“分组依据”选项卡,返从回“可用字段”中选“课程.课 程名”,并单击“添加”按钮。
6.1 视图的建立、查看与修改
• 利用SQL语句来创建视图
– CREATE VIEW SELECT-SQL语句
– 实例1:创建查询所有女生信息的视图
“WW”
其中问号后的文
• open data stu1
字可为任何字符
视图设计器中,并把它们显示在设计器的上半部
• 视图设计器的选项卡
– 2) 选择自由表也可以创建视图
• 在“添加表或视图”对话框中单击“其他”按
钮……
返回
6.1 视图的建立、查看与修改
• 3、视图的保存与浏览
– 浏览视图:
• 单击工具栏红色感叹号!
• 或在视图设计器中右击,选择“运行查询”
•
或选择菜单[查询]-[运行查询]
– 视图是不能单独存在的,它依赖于某一数据 库数据表而存在,只有打开与视图相关的数 据库才能创建和使用视图。
返回
6.1 视图的建立、查看与修改
视图的分类
• 本地视图:
– 利用当前数据库中的表(或自由表)或视图所创建 的;
• 远程视图
– 数据源是远程的,从远程的开放数据库中获取。
• 视图的作用:
– 可以在浏览窗口中浏览记录; – 可以对某些数据进行修改,这种修改实质上是对
– ② 设计步骤:
• 1)选取字段;2)关联表;3)确定包含记录; • 4)筛选记录;5)排序记录;6)限制记录;7)保存视图。
返回
6.1 视图的建立、查看与修改
2、利用“视图设计器”创建
– 1) 调出视图设计器
• [文件]-[新建]-[视图] • [数据库]-[新建本地视图]-[新建视图] • 在调出视图设计器的同时,可把表或视图添加到
(2)按“退出”按钮,结束更新条 件的设置。
返回
1 视图的建立、查看与修改
• 【例6-1】 在stu1数据库中基于“学生选课”表建立一个名 为“课程平均成绩”视图,输出字段为“课程ID”以及该课 程的平均成绩。(单表视图)
1. 打开stu1数据库,单击菜单【数据库】【新建本地视图】命令, 2. 从弹出对话框中单击“新建视图”按钮,弹出“添加表或视图”对
– 在stu1数据库中新建一个视图,弹出“添加表或视图”对 话框。
– 从“添加表或视图”对话框中选择“学生选课”表和“课 程”表,联接条件为“学生选课.课程ID”与“课程.课程ID”。
– 单击“关闭”后,弹出“视图设计器”窗口。从“字段” 选项卡的“可用字段”栏中选“课程.课程ID”,并单击 “添加”按钮。在“函数和表达式”文本框中填入 “AVG(学生选课.成绩) as 平均成绩”,并单击“添加”按 钮。
• 6.3 查询与视图的异同返回
6.1 视图的建立、查看与修改
• 6.1.1 视图的概念:
– 视图犹如一个数据观察窗口,是从一个或多 个数据表中导出的“表”。(包括数据库表 和自由表,也可以取自其它视图)。
– 视图与数据表不同的是,视图中的数据还是 存储在原来的数据表中,因此可以把视图看 作是一个“虚表”。
• 6.1.4 使用视图
– 视图建立以后,不但可以用它来显示和更新数据, 而且还可以通过调整它的属性来提高性能。视图 的使用方法类似于表。
– (1)视图的修改及移去(在数据库设计器中) – 视图的修改
• 方法1: 选择需要修改的视图,右击选择“修改”,就可以打开
视图设计器 • 方法2: 选择菜单[数据库]-[修改]
• create view WW as select * ;
• from 学生表 where 性别=‘女’
– 实例2:创建查询任意性别的学生视图 “PP”(带参数的)
create view PP as select * ; from 学生表 where 性别返回=?性别:
6.1 视图的建立、查看与修改
– 保存视图:
•
选择菜单[文件]-[关闭]
•
或单击工具栏“保存”按钮
返回
6.1 视图的建立、查看与修改
• 6.1.3 通过视图更新数据
• 操作步骤如下:
(1)打开“视图设计器”窗口, 选择“更新条件”选项卡,在 字段名对话框内,用“笔”符 号,确定更新字段,再选择” 发送SQL 更新”,把视图的更 新结果返回源表中。
第6章_查询与视图
主要内容
• 6.1 视图的建立、查看与修改
– 6.1.1 视图的概念 – 6.1.2 视图的创建 – 6.1.3 通过视图更新数据 – 6.1.4 使用视图
• 6.2 查询的建立、执行与修改
– 6.2.1 查询设计器 – 6.2.2 查询的运行与修改 – 6.2.3 查看查询的SQL语句
返回
6.1 视图的建立、查看与修改
– 视图的移去:
• 方法1: 指向该视图右击,选择“删除”,再选择“移去” • 方法2: 选择菜单[数据库]-[移去]
– (2)视图的修改、移去及浏览(在项目管理器中)
单击“修改”、“移去”、“浏览”按钮即可。
返回
6.1 视图的建立、查看与修改