数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQL实战新手入门:分层的视图


发布日期:2018年07月07日
 
SQL实战新手入门:分层的视图

分层的视图

实际上视图只是数据库中的另一个表因此可以将其作为创建其他视图的基础事实上在同一个查询中可以将视图与其他视图或表进行联接然后再在其上创建一个新的视图

如果想查找个书架上价格最贵的前本书的作者则可以使用本章之前创建的vwTopbooksOnthShelf视图并添加来自AUTHORS表的数据例如下面的代码

CREATE VIEW vwTopBooksWithAuthors

AS SELECT

vwbk_id

vwtitle

auau_last_name

FROM vwTopbooksOnthShelf vw JOIN books_authors ba

ON vwbk_id = babk_id

JOIN authors au

ON baau_id = auau_id;

SELECT * FROM vwTopBooksWithAuthors;

bk_id title au_last_name

SQL Bible Kriegel

SQL Bible Trukhnov

Wiley Pathways: Introduction to Database Management Gillenson

Wiley Pathways: Introduction to Database Management Ponniah

Wiley Pathways: Introduction to Database Management Taylor

Wiley Pathways: Introduction to Database Management Powell

Wiley Pathways: Introduction to Database Management Miller

Wiley Pathways: Introduction to Database Management Trukhnov

Wiley Pathways: Introduction to Database Management Kriegel

SQL Functions: Programmers Reference Kriegel

SQL Functions: Programmers Reference Jones

SQL Functions: Programmers Reference Stephens

SQL Functions: Programmers Reference Plew

SQL Functions: Programmers Reference Garrett

row(s) affected)

在上面这个例子中将一个视图(vwTopbooksOnthShelf)与两个表进行了联接并在其上创建了另外一个视图vwTopBooksWithAuthors这样就可以使用单个SELECT语句从vwTopBooksWithAuthors视图中抽取数据而无须关心封装在这两个视图中的各种业务规则因为视图已经对数据集的条件进行了限制即只返回位于顶层书架(甚至都不需要知道顶层是第层)中并且价格最贵的前本图书

分层的视图为我们提供了各种各样的可能性设想一下可以构建一个精心设计的视图层次结构从数据模型中抽取各种数据让数据用户只需要使用一个简单的SELECT语句就可以获取信息而无须关心底层数据的复杂性!当然这需要在服务器的性能方面付出一定的代价由于视图本质上是动态的因此无法像优化表一样对视图进行同样的优化对于数据检索视图的速度也不可能像表一样快速在视图之上添加另外一级的视图将会对数据库的性能造成更加负面的影响尽管分层的视图有着合理的应用场合但应该注意它对性能造成的影响

返回目录SQL实战新手入门

编辑推荐

Oracle索引技术

高性能MySQL

数据仓库与数据挖掘培训视频教程

上一篇:SQL实战新手入门:可更新的视图(2)

下一篇:SQL实战新手入门:优点和缺点