LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

SQL Server视图的创建、修改和删除

admin
2012年1月14日 17:17 本文热度 3020

1、创建:


用户可以在自己的模式中创建视图,只要具有CREATE VIEW这个系统权限即可。如果希望在其他用户的模式中创建视图,则需要具有CREATE ANY VIEW系统权限。如果一个视图的基表是其他用户模式中的对象,那么当前用户需要具有对这个基表的SELECT权限。


创建视图的命令是CREATE VIEW,这条命令的格式为:


CREATE VIEW 视图名 AS SELECT语句 WITH READ ONLY WITH CHECK OPTION;


其中最后两个选项是可选的,其中“WITH READ ONLY”限定对视图只能进行查询操作,不能进行DML操作。“WITH CHECK OPTION”限定DML操作必须满足一定的条件。


例如,下面的语句创建视图view_1,它所代表的操作是查询员工表中部门30的员工姓名、工资和奖金。


SQL> CREATE VIEW view_1 AS SELECT ename,sal,comm FROM emp WHERE deptno=30;


视图view_2所代表的操作是查询部门20和30中工资大于2000元的员工姓名、工资和奖金。创建这个视图的CREATE语句为:



SQL> CREATE VIEW view_2 AS SELECT ename,sal,comm FROM emp WHERE (deptno=30 or deptno=20) and sal>2000


视图被创建之后,可以通过DESC命令查看视图的结构。查看视图结构的方法与查看表的方法相同,查看的结果是列出视图中各列的定义。


视图的结构是在执行CREATE VIEW语句创建视图时确定的,在默认情况下,列的名称与SELECT之后基表的列名相同,数据类型和是否为空也继承了基表中的相应列。如果希望视图中的各列使用不同的名字,那么在创建视图时,在视图的名称之后应该指定各列的名称。例如,下面的语句重新创建视图view_1,并为这个视图指定了不同的名称。


CREATE VIEW view_1(name,salary,comm1) AS SELECT ename,sal,comm FROM emp WHERE deptno=30;


如果执行DESC命令查看视图view_1的结构,我们将发现视图中各列的名称就是在CREATE VIEW语句中指定的名称,而数据类型和是否为空继承了基表中的对应列。下面是执行DESC命令查看视图view_1结构的结果:


SQL> DESC view_1; 名称 是否为空? 类型 NAME NULL VARCHAR2(10) SALARY NULL NUMBER(7,2) COMM1 NULL NUMBER(7,2)


视图作为一种数据库对象,它的相关信息被存储在数据字典中。与当前用户的视图有关的数据字典是USER_VIEWS,查询这个数据字典,可以获得当前用户的视图的相关信息。例如,需要查询视图VIEW_2中的相关信息,可以执行下面的SELECT语句:


SELECT text FROM user_views WHERE view_name='VIEW_2';


在列TEXT中存储的是创建视图时使用的SELECT语句。另外,在数据字典ALL_VIEWS存储的是当前用户可以访问的所有视图的信息,在数据字典DBA_VIEWS存储的是系统中的所有视图的信息,这个数据字典只有DBA可以访问。


2、修改


如果发现视图的定义不合适,可以对其进行修改。实际上视图中的SELECT语句是不能直接修改的,所以修改视图的一种方法是先删除视图,再重新创建,另一种方法是在创建视图的CREATE语句中使用OR REPLACE选项。带OR REPLACE选项的CREATE语句格式为:


CREATE OR REPLACE VIEW 视图名 AS SELECT语句 WITH READ ONLY WITH CHECK OPTION;


这样在创建视图时,如果视图不存在,则创建它。如果已经存在一个同名的视图,那么先删除这个视图,然后再根据SELECT语句创建新视图,用这个新视图代替原来的视图。


3、删除


视图在不需要时,可以将其从数据库中删除。删除视图的命令是DROP VIEW。用户可以直接删除自己创建的视图,如果希望删除其他用户创建的视图,则需要具有DROP ANY VIEW这个系统权限。DROP VIEW命令的格式为:


DROP VIEW视图名;


例如,要删除视图view_1,可以执行下面的语句:


DROP VIEW view_1; 视图被删除后,相关的信息也被从数据字典中删除。


该文章在 2012/1/14 17:17:48 编辑过

全部评论1

admin
2012年1月14日 17:30

视图是SQL Server数据库中的重要部分,下文对SQL Server创建视图的语法的方法作了详尽的阐述,希望对您能有所帮助。

SQL Server创建视图是很常见的操作,下面就为您介绍SQL Server创建视图的语法,如果您在SQL Server创建视图方面遇到过问题,不妨一看。

SQL Server创建视图的语法:

  1. CREATE VIEW
  2. [ < database_name > .] [ < owner > .]
  3. view_name [ ( column [ ,...n ] ) ]
  4. [ WITH < view_attribute > [ ,...n ] ]
  5. AS
  6. select_statement
  7. [ WITH CHECK OPTION ]
  8. < view_attribute > ::=
  9.  { ENCRYPTION │ SCHEMABINDING │
  10. VIEW_METADATA }

例1:建立显示年龄大于20岁的学生学号、姓名、性别等信息的S_view1

  1. create view S_view1
  2. as
  3. select sno,sname,sex from s where age>20

例2:创建v_score1,要求基本表来源:S,C,SC;选择的字段为:S表中的sno、sname;C表中的cname及SC表中score;要求查询的数据为学号为20030001的学生的考试成绩。

  1. Use s
  2. create view v_score1
  3. As
  4. Select s.sno,s.sname,c.cname,sc.score
  5. From s,c,sc
  6. Where s.sno=sc.sno and c.cno=sc.cno and sno=“20030001”

在查询分析器中执行上面的程序,会生成视图v_score1。为了查看视图中的数据,在查询分析器中输入语句:

  1. select * from v_score1

该评论在 2012/1/14 17:30:37 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved