自连接和视图——以虚拟方式查看数据的方式。
1.自连接
自连接允许我们把一个表和它自身连接起来。自连接最常用的用途是,处理那些本质上是自引用的表。这类表中的一列指向了同一表中的另一列。
inner join
2.创建视图
视图增加了访问数据的灵活性。随着时间流逝,访问数据的需求会有所变化,但是很难去重新组织数据库中的数据以满足新的需求。视图的最大优势是,它们允许为数据库中已存在的数据创建新的虚拟视图。视图使得我们无需物理的重新组织数据,就可以创建等价的新表。同样,视图为我们增加了始终保持数据库设计不断更新的能力。
所有关系型数据库都是由许多不同的对象类型组成的,最重要的类型就是表。大部分数据库管理软件都允许用户保存很多其他类型的对象类型。其中最常用的是视图和存储过程。例如,Microsoft SQL Server 允许用户创建许多其他的对象类型,诸如函数(function)和触发器(trigger)。
视图中没有保存物理数据,所以在视图中不能包含order by 子句。
3.引用视图
引用视图中的列的时候,需要指定列的别名,而该别名是在创建视图时指定的。你不可以再引用最初的列名。
4.视图的优点
视图可以减少复杂性
不用每次都写关联很多表的sql语句
视图可以增加复用性
经常用到的几张表 创建视图关联
视图可以正确地格式化数据
在数据库中,有一个日期列按照YYYYMMDD的格式存储为整数。用户可能更想以日期/时间列来查看这个数据,为了完成这个任务,可以为这个表创建一个视图,把该列转换成正确的格式。
视图可以创建计算的列
假设有两个列,用户想得到乘积,可以创建一个带有新的计算列的视图。
视图可以用来重新命名列的名称
如果数据库包含了不好理解的列名,可以创建一个带有列别名的视图,把那些名称转换成更有意义的内容。
视图可以创建数据子集
假设你有一个包含所有客户的表,大部分用户只需要看到去年下过订单的客户。可以创建一个视图,只包含有用的数据子集。
视图可以用来加强安全性限制