学习目标
2025年09月21日
学习目标
了解视图及视图的应用
了解索引及索引的应用
即使是相当简单的数据驱动应用程序,也依赖于涉及多个表的查询。例如,假设希望创建一个界面来显示每位员工的姓名、电子邮件地址、缺勤总天数和奖金。此查询可能如下:
这种查询肯定会让人浑身战栗,因为它太大了,特别是需要在应用程序中的多个位置重复使用时。它的另外一个副作用是可能会让人不小心暴露敏感的信息。例如,如果因为一时迷糊向查询中插入了字段emp.ssn(员工的社会保险号,即SSN),会怎么样?这会让每位员工的社会保险号显示给所有能够查看该查询结果的人。这种查询还有另一个副作用,任何创建类似界面的第三方承包商也可以暗中访问敏感数据,这就有可能窃取身份,有时还可能被商业间谍利用。
有什么替代方案?毕竟查询是开发过程所必需的,除非希望在管理字段级权限方面纠缠,否则就只能苦笑着忍受它。
对于MySQL用户来讲一直就是如此,正因为这样,增加了称为视图(view)的新特性后会让人如此兴奋。从MySQL 5.0开始可以使用视图,就像存储过程包含一组命令一样,视图以类似的方式提供了一种封装查询的方法。例如,可以创建前面示例查询的视图并执行,如下:
本章先简要介绍视图的概念,并指出将视图结合到开发策略中的各个优点。然后,讨论MySQL对视图的支持,展示如何创建、执行和管理视图。