云顶集团用户登录「官方网站」

热门关键词: 云顶集团用户登录,云顶集团登录网站
来自 交流平台 2020-01-05 19:21 的文章
当前位置: 云顶集团用户登录 > 交流平台 > 正文

云顶集团用户登录也称表为基本表——Base,视图

定义:

视图是从一张或多张基本表(或视图)导出的表。与基本表区别,数据库只会贮存视图的定义,而视图中的数据大概存放在原来基本表中。视图是基本表的映照,要是基本表发生了变化,则从视图中查询出的数目也会相应地发出退换。视图的操作主要包涵以下内容:

视图(View)是从三个或几个表(或视图)导出的表。视图与表(一时为与视图差距,也称表为基本表——Base Table)不相同,视图是八个虚表,即视图所对应的数据不开展实际存款和储蓄,数据库中只存款和储蓄视图的定义,在对视图的数目开展操作时,系统基于视图的定义去操作与视图相关联的基本表。

1、定义视图

操作:

sql语句用create view命令构建视图,其貌似格式是:

1.

create view <>[(<列名>[,<列名>]...)]

WITH check OPTION 表示对视图进行UPDATE、INSERT、delete操作时要保管更新、删除、或插队的行知足视图定义中的谓词条件
鉴于视图是不实际存款和储蓄数据的虚表,由此对视图的改革最终要更动为对基本表的换代。所认为了避防客户对数码故意照旧无意的操作,可在概念视图时拉长with check option

as <子查询>

2
借使视图定义中有如下子句则不能够立异

[with check option];

● 分组 使用group by 和 Having

里头,子程序能够是自由复杂的select语句,但平常不蕴含order by子句和distinct短语。with check option表示对视图进行update、insert、delete操作时要保管更新、插入、删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。

● 联结

重新组合视图的性能列名或然全体简便恐怕全部钦点,没有第三种接纳。假如轻易了视图的种种属性列名,则含有视图的本性列名是由子查询select语句中的指标列名的字段组成的。可是有以下三种情景须求必得内定视图的富有列名:

● 子查询

(1)有些目的不是单纯的属性名,而是集中函数或列表明式

● 并集

(2)多表连接时选出了多少个同名列作为视图的字段

● 聚焦函数 MAX MIN COUNT AVG

(3)须求在视图中为某些列启用新的更合适的名字

● DISTINCT

比如说,创制创设“IS”系学子的视图:

● 导出列

create view  IS_student

举例子:
因为视图的换代最后会映射到基本表的换代,可是视图中的字段或者数据库中没有(通过聚合函数从基本表拿到的字段卡塔尔,那样校勘操作就能够极其。

as

评价:

select Sno,Sname,Sage

优点:

from student

简化客商操作

where Sdept='IS';

对重构数据库提供了迟早程度上的逻辑独立性

该实例中,省略了IS_student的列名,隐含了由子查询中select子句中的四个列名组成(即独有Sno,Sname,Sage)。那时候大家得以由此IS_student视图来查询IS系学子的音信了,如:select * from IS_student;//(只会来得Sno,Sname,Sage七个音信,因为创建视图时简短了列名,所以暗中同意字段就是select语句中的字段)。

安全性

生机勃勃旦想成立这样一个新闻体系学子的视图,供给实行纠正和插入操作时仍须保险该视图独有音讯系的学习者,则足以那样:

缺点:

create view  IS_student

改良节制

as

质量难点,因为视图的操作会映射到基本表,而视图定义的复杂会促成查询操作的繁琐。

select Sno,Sname,Sage

from student

where Sdept='IS'

with check option;//保险对该视图实行更换操作时,DBMS会自行增加Sdept="IS"条件。

再比如,制造三个反映学子出生年份的视图:

create view birth_student(Sno,Sname,Sbirth)

as

select Sno,Sname,2017-Sage

from student;

在select子句中,还足以选用带有聚焦函数group by子句的查询来定义视图,这种视图称为“分组视图”。比如,创设学子的学号和她的平分成绩的视图:

create view SN_AV(Sno,Gave)

as

select Sno,AVG(grade)

from SC group by Sno;

因为as子句中select语句的平分成绩是由此群集函数得到的,所以在create veiw语句中必得定义视图SN_AV的逐一属性列名,而无法大致。

2、删除视图

删去视图的话语是:drop view <视图名>[cascade];该语句会将视图的定义从数额词典中删去。假使该视图还导出了任何视图,则接受cascade级联删除语句,能够将该视图以至由该视图导出的具备视图一齐删除。

3、查询视图

视图的查询和对基本表的查询同大器晚成,比方,能够查询birth_student视图中的全体音讯:

select * from birth_student;

本文由云顶集团用户登录发布于交流平台,转载请注明出处:云顶集团用户登录也称表为基本表——Base,视图

关键词: