视图定义

视图的定义:从一个或多个表(或视图)导出的表。

视图与表的不同之处:视图是一个虚表,即视图所对应的数据不进行实际存储,数据库只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

视图一经定义,就可以像表一样被查询、修改、删除和更新。创建视图时,原表既可以是基本表,也可以是视图。

Create view 语句创建视图,,语法格式如下:

     Create view view_name

         As select_statement [with check option]

    其中,with check option:指出在视图上所进行的修改都要符合select_statement所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。

select_statement:用来创建视图的select语句,可在select语句中查询多个表或视图,以表明新创建的视图所参照的表或视图。对select语句有以下限制:

  • 定义视图的用户必须对所参照的表或视图有查询(即可执行select语句)权限。
  • 不能使用compute或compute by子句。
  • 不能使用order by子句。
  • 不能使用Into子句。
  • 不能在临时表或表变量上创建视图。

视图的运用举例如下:

例一:有两张表:XS(学号、姓名、专业名、出生时间、性别)和XS_KC(学号、课程号、成绩),要求创建CS_KC视图,包括计算机专业各学生的学号、其选修的课程号及成绩。要保证对该视图的修改都要符合专业名为计算机这个条件。

     分解法:A,先查询出专业名为计算机的学生的学号,并查询出该学生选修的课程号及成绩

           查询语句如下:A: select XS.学号,课程号,成绩

                                            from XS,XS_KC

                                               where XS.学号 =XS_KC.学号 and 专业名=‘计算机’

                B,创建视图,包括计算机专业各学生的学号、其选修的课程号及成绩

            查询语句如下:B:Create View CS_KC

                                        As  A with check option

       合并起来的查询语句即为:

            Create View CS_KC

                 AS

                   select XS.学号,课程号,成绩

                                            from XS,XS_KC

                                               where XS.学号 =XS_KC.学号 and 专业名=‘计算机’

                         with check option

 

例二:创建计算机专业学生的平均成绩视图CS_KC_AVG,包括学生学号(在视图中列名为num)和平均成绩(在视图中列名为score_avg)

         分析:在例一中已经创建了视图CS_KC,该虚拟表包括字段学号、成绩,故可以直接使用视图来创建新的视图

         分解如下:

            A,先从视图中查询出学生的学号和平均成绩

              查询语句如下:A:select 学号,Avg(成绩)

                                             from CS_KC

                                                group by 学号

           B,基于A查询出来的结果创建新的视图CS_KC_AVG

               查询语句如下:B: Create View CS_KC_AVG

                                           As A

       合并起来的查询语句即为:

                    Create View CS_KC_AVG(num,score_avg)

                         As

                          select 学号,Avg(成绩)

                                             from CS_KC

                                                group by 学号

 

 

                                 

 

 

转载于:https://www.cnblogs.com/harrieat/archive/2012/10/19/2730631.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值