国家“十一五”规划教材 数据库原理与应用教程(第3版).

Slides:



Advertisements
Similar presentations
第2章第2章 第 1 节 生物与非生物. [ 猜谜语 ] 名字叫做牛, 不会拉犁头; 说我力气小, 背着房子走。 ( 打一动 物)
Advertisements

第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
第六章 SELECT 语句和视图 SQL 语句的核心 数据源中数据表的各种连接 各种关系代数运算和集合运算的实现: 投影、选择、连接、广义笛卡尔积和并、 交、差、除。 函数在 SELECT 中运用 视图及其应用.
LOGO 第 6 章 数据库规范化设计 孙焘. 重点: 三个范式的基本概念 1 概念模型 2 物理模型 3 多 framePowerDesigner 工具的使用页面设计 4.
第6章 数据库管理软件Access 年秋.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
可爱的蜗牛 一、蜗牛冬眠 二、蜗牛进食 三、蜗牛排泄 四、蜗牛呼吸.
数据库系统概论 华中科技大学能源与动力工程学院
第2讲 Transact-SQL语言.
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第3章 SQL语言初步 2017/3/14.
Access数据库程序设计 总复习.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
非计算机应用专业教材 数据库原理与应用 李 明 科学出版社.
資料庫 (Database) SQL Server 2008實作
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
软件设计师培训.
计算机应用基础 上海大学计算中心.
An Introduction to Database System
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
第四章 关系系统及其查询优化 这一章包括两个内容,一是关系系统(关系数据库系统的简称),二是关系系统的查询优化。第一部分讨论关系系统的定义和分类;第二部分讨论关系系统中查询优化的概念、查询优化的基本原理和技术。
第五讲 利用视图进行查询优化.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
Visual Basic快速入门 ADO数据控件与数据绑定控件 VB数据库编程举例 VB开发数据库应用系统实例分析
課程名稱:資料庫系統 授課老師:李春雄 博士
实验二 交互式SQL 邓云.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
第 11 章 建立檢視表.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
第三章 关系数据库标准查询语言SQL 3.1 SQL概述 3.2数据定义语言(DDL) 3.3 SQL的数据查询(DML)
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
实验 2:MS Access QBE Query使用
第九章 進階的查詢技巧.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第五章 关系数据理论 关系模型有严格的数学理论基础,也是目前应用最广泛的数据模型,关系规范化是指导数据库设计的重要理论。一个好的关系数据库是应该既可以供人们方便地获取信息,而又不产生过多的不必要的重复存储问题。可以说,规范化理论是数据模型优化的理论基础,对其他数据库的逻辑设计同样具有理论上的意义。 2018年12月6日7时18分.
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
MySQL 結構化查詢語言 MySQL.
作业3-点评.
An Introduction to Database System An Introduction to Database System
实验二讲评 … 张榆….
数据库技术.
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
查询与视图 蔡海洋.
SQL查询语句 蔡海洋.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
SQL語法教學 2015/10/15 John.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
模块六 数据库管理软件——Access 2010.
看圆如何七十二变 微建筑早课.
第4章 数据查询.
第 9 章 查詢資料- 善用 SELECT 敘述.
Presentation transcript:

国家“十一五”规划教材 数据库原理与应用教程(第3版)

第5章 视图 5.1 视图概念 5.2 定义视图 5.3 通过视图查询数据 5.4 修改和删除视图 5.5 视图的作用

5.1 视图概念 视图:由基本表构成的虚表(满足用户需求的表结构)

5.2 定义视图 CREATE VIEW <视图名> [(视图列名表)] AS 查询语句 说明: 查询中通常不含ORDER BY和DISTINCT语句。 缺省时视图列名与查询列名相同。 查询的源表可以是已定义的视图。

说明 下列三种情况下不能省略视图列名: 某个目标列是聚集函数或表达式列; 多表连接查询时,在查询列表中有同名列; 希望用新的更合适的列名。 视图的列名序列或者全部省略,或者全部指定。

定义单源表视图 视图取自一个基本表的部分行、列,视图行列与基本表行列对应, 一般可看可改。

示例 例1.建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept = ’信息’

定义多源表视图 子查询源表多于一个, 一般可看不可改。

示例 例2.建立查询信息系选了C01课程的学生的视图,列出学号,姓名和年龄。 CREATE VIEW V_IS_S1(Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Sage FROM Student, SC WHERE Sdept = ‘信息系’ AND Student.Sno = SC.Sno AND SC.Cno = ‘C01’

在已有视图上定义新视图 视图的数据源可以来自其它的视图。

示例 例3.利用例2建立的视图,建立信息系选了C01课程且成绩在90分以上的学生的视图。 CREATE VIEW V_IS_S2(Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Sage FROM V_IS_S1 WHERE Grade >= 90

示例 例4.利用例1所建的视图,建立查询信息系VB考试成绩大于等于80分的学生的姓名和成绩的视图。 CREATE VIEW V_IS_VB AS SELECT Sname, Grade FROM IS_Student V JOIN SC ON V.Sno = SC.Sno JOIN Course C ON C.Cno = SC.Cno WHERE Cname = 'VB' AND Grade >= 80

定义带表达式的视图 定义基本表时,为减少数据冗余,表中只存放基本数据。 由基本数据经过各种计算派生出的数据一般不存储。 由于视图中的数据并不实际存储,因此,可以在在视图中设置一些附加列来保存这些派生的数据。 由于这些附加列在基本表中并不实际存在,因此称这些列为虚拟列。 称包含虚拟列的视图为带表达式的视图。

示例 例5.定义一个查询学生学号、姓名和出生年份的视图。 CREATE VIEW V_BirthYear (Sno, Sname, BirthYear) AS SELECT Sno, Sname, 2010-Sage FROM Student

含分组统计信息的视图 子查询中含GROUP BY子句,视图行列由基本表行列得到, 数据只看不可改。

示例 例6.定义一个查询每个学生的学号及考试平均成绩的视图。 CREATE VIEW S_G(Sno, AvgGrade) AS SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno

5.3 通过视图查询数据 视图定义好后,可以对其进行查询, 通过视图查询数据同基本表一样。

示例 例7.利用5.2节例1建立的视图,查询信息系年龄小于等于20岁的学生。 SELECT Sno, Sname, Sage FROM IS_Stu dent WHERE Sage <= 20 转换成相关基本表的等价查询 SELECT Sno, Sname, Sage FROM Student WHERE Sdept = '信息系' AND Sage <= 20

示例 例8.查询信息系选修了“C01”的学生学号、姓名和年龄。 SELECT Sno, Sname, Sage FROM IS_Student JOIN SC ON IS.Student.Sno = SC.Sno WHERE Cno = 'C01'

示例 例9.查询信息系学生的学号、姓名、所选课程的课程名。 SELECT v.Sno,Sname,Cname FROM IS_Stud ent v JOIN SC ON v.Sno = SC.Sno JOIN Course C ON C.Cno = SC.Cno 转换成相关基本表的等价查询 SELECT S.Sno,Sname,Cname FROM Student S JOIN SC ON S.Sno = SC.Sno JOIN Course C ON C.Cno = SC.Cno WHERE Sdept = '信息系'

示例 例10.利用5.2节例6建立的视图,查询考试平均成绩80分以上的学生的学号和平均成绩。 SELECT * FROM S_G WHERE AvgGrade > 80 不能直接转换为: SELECT Sno, AVG(Grade) FROM SC WHERE AVG(Grade) > 80 GROUP BY Sno 而应该转换为: SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade) > 90

修改视图 格式: ALTER VIEW 视图名 [ ( 列名 [ ,...n ] ) ] AS 查询语句

示例 例11.修改例6定义的视图,使其统计每个学生的考试平均成绩和修课总门数。 ALTER VIEW S_G(Sno,AvgGrade,Count_Cno) AS SELECT Sno, AVG(Grade), Count(*) FROM SC GROUP BY Sno

删除视图 格式: 例.删除例1定义的IS_Student视图。 DROP VIEW IS_Student

5.5 视图的作用 简化数据查询语句 使用户能从多角度看待同一数据 提高了数据的安全性 提供了一定程度的逻辑独立性