基于其他视图创建视图
可以基于包含其他视图的查询来创建视图。这在架构较为复杂(例如由于规范化)时很有用,因为它有助于减少所需的 JOINS。最大的问题在于跟踪依赖关系,尤其是修改或删除某个视图会如何影响到其他视图。
在接下来的几个练习中,我们将继续使用 Pitchfork 的乐评数据。本练习中有两个相关视图:top_15_2017 存放 2017 年发布、评分最高的前 15 条评论,包含列 reviewid、title 和 score。artist_title 返回所有被评论的作品及其对应艺人的列表,包含列 reviewid、title 和 artist。基于这两个视图,我们希望创建一个新视图,用于获取 2017 年得分最高的艺人。
本练习是课程的一部分
数据库设计
交互式实操练习
通过完成这段示例代码来试试这个练习。
-- Create a view with the top artists in 2017
___ ___ top_artists_2017 ___
-- with only one column holding the artist field
SELECT artist_title.___ FROM ___
INNER JOIN ___
ON ___.___ = ___.___;
-- Output the new view
SELECT * FROM ___;