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

Slides:



Advertisements
Similar presentations
第 3 章 关系数据库语言 SQL 2.DML 3.DCL( 第四部分) 4 。嵌入式使用 、 DML: 插入 / 修改 / 删除记录 n DML Insert :插入记录 Delete :删除记录 Update :修改记录 Select :查询记录.
Advertisements

计算机软件技术基础计算机软件技术基础 数据库系统( 3 ). 第 2 页 4.3 关系数据库语言 SQL 关系数据库 SQL ( Structured Query Language )语言是关系 数据库的标准语言,对关系模型的发展和商用 DBMS 的研制起 着重要的作用。 SQL 发展历史  1986.
数据查询 单表查询 连接查询 嵌套查询 集合查询.
第6章 数据库管理软件Access 年秋.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
SQL的简单查询.
第三章 关系数据库语言SQL 3.1 SQL的特征 3.2 SQL的数据定义 3.3 SQL的数据查询 3.4 SQL的数据更新
第5章 关系数据库标准语言SQL 主讲:张丽芳.
数据库系统概论 华中科技大学能源与动力工程学院
第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 学生课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新
数据库及应用 授课教师:岳静 教学网站: Tel:
厦门大学计算机科学系本科生课程 《数据库系统原理》 第3章 关系数据库标准语言SQL (2016版) 林子雨 厦门大学计算机科学系
第3章 关系数据库标准语言.
An Introduction to Database System
第2讲 Transact-SQL语言.
数据库原理 Database Principles 第三章 关系数据库标准语言SQL(续1).
第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 学生课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新
An Introduction to Database System An Introduction to Database System
An Introduction to Database System
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Access数据库程序设计 总复习.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
資料庫 (Database) SQL Server 2008實作
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
软件设计师培训.
计算机应用基础 上海大学计算中心.
第三章 关系数据库标准语言SQL 3.1 SQL的特征 3.2 SQL的数据定义 3.3 SQL的数据查询 3.4 SQL的数据更新
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
请写出下列查询语句并给出结果 1、列出student表中所有记录的sname、sex和class列。
第四章 关系系统及其查询优化 这一章包括两个内容,一是关系系统(关系数据库系统的简称),二是关系系统的查询优化。第一部分讨论关系系统的定义和分类;第二部分讨论关系系统中查询优化的概念、查询优化的基本原理和技术。
实验二 交互式SQL 邓云.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
汤 娜 中山大学计算机科学系 数 据 库 基 础 第三章 SQL语言 汤 娜 中山大学计算机科学系
An Introduction to Database System
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
An Introduction to Database System An Introduction to Database System
第4章 数据的查询与更新 4.1 SQL查询语句格式 4.2 简单查询 4.3 统计查询 4.4 连接查询 4.5 嵌套查询
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
国家“十一五”规划教材 数据库原理与应用教程.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
数据库基础 1.
An Introduction to Database System An Introduction to Database System
An Introduction to Database System
实验二讲评 … 张榆….
数据库技术.
数据库技术.
学习目标 1、select练习.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
查询与视图 蔡海洋.
SQL查询语句 蔡海洋.
VB与Access数据库的连接.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
学习目标 1、limit的作用 2、实例操作.
SQL語法教學 2015/10/15 John.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
第4章 数据查询.
第 9 章 查詢資料- 善用 SELECT 敘述.
关系数据库标准语言SQL 第3章 SQL概述 数据定义 查询 更新 视图 数据控制 嵌入式SQL 2019/12/6 数据库原理.
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 视图的作用 简化数据查询语句 使用户能从多角度看待同一数据 提高了数据的安全性 提供了一定程度的逻辑独立性