本篇博客分享SQL语言视图操作--详细实践学习报告(以截图方式展示)
软件:Oracle SQL Developer
目录
1、学生-课程数据库
(与之前相比我稍微修改了一点,以此展开下面的实践)
2、视图
1、视图是从一个或几个基本表(或视图)导出的表。
2、视图是个虚表:即数据库中只存放视图的定义,而不存放试图对应的数据,这些数据仍存放在原来的基本表中。所以一旦基本表中的数据发生变化,从视图中查询出的数据也随之改变。
3、视图一经定义,就可以和基本表一样被查询、被删除。也可以在一个视图纸上再定义一个视图,但对视图的更新(增、删、改)操作则有一定的限制。
①定义视图
1、建立视图
1.1、SQL语言用create view命令建立视图,其中的子查询可以是任意的select语句
组成视图的属性列名或者全部指定或者全部省略,没有第三中选择。若省略,则隐含该视图由子查询中select子句目标列中的的诸字段组成,但下列三种情况下必须明确指定组成视图的所有列名:
1)某个目标列不是单纯的属性名,而是聚集函数或列表达式;
2)多表连接时选出了几个同名作为视图的字段;
3)需要在视图中为某个列启用新的更合适的名字。
1.2、行列子集视图:一个视图是从单个基本表中导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码,则称这类视图为行列子集视图。
视图不仅可以建立在一个或多个基本表上,也可以建立在一个或多个已定义好的视图上,或建立在基本表和视图上。
由基本数据经过各种计算派生出的数据一般是不存储的,所以定义视图时可以根据应用的需要设置一些派生属性列。这些派生属性列由于在基本表中并不实际存在,也称为虚拟列。
带有虚拟列的视图也称为带表达式的视图。