您的位置:首页 > 数据库

SQL Server之视图

2015-10-04 22:29 281 查看
   视图是从一个或者多个表导出的,用来导出视图的表称为基表,导出的视图又称为虚表。

   在数据库中,至存储视图的定义,不存放视图对应的数据,这些和数据仍然存放在原来的额基表中。

    视图的优点:

     1,方便不用户的查询和处理,简化数据操作

     2,简化用户的权限管理,增加安全性。

     3,便于数据共享。

     4,屏蔽数据库的复杂性。

     5,可以重新组织数据。

 -------------------- 又说了一堆废话

--------

----------------------创建视图-------------------------------------

   关于创建视图,基于图形化的界面操作,就不罗嗦了。

下面是关于使用SQL语句创建视图。

     1,语法格式:

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute>[ ,…n ] ]
AS select_statement
[ WITH CHECK OPTION ]
    说明:
     view_name:视图名称。

     scheme:数据库架构名

     column:列名,此为视图中包含的列

     WITH子句:列出视图的属性

    select_statement:定义视图的SELECT子句,可在该语句中使用多个表或者视图

      WITH CHECK OPTION:指出在视图上进行的修改都符合select_statement所指定的准则。

   下面是该语法的一个示例:

    在stsc数据库中创建st2_comm视图,包括学号,姓名,课程号,成绩,且专业为通信。
USE stsc
GO
CREATE VIEW st2_comm
AS
SELECT student.stno, student.stname, score.cno, score.grade
FROM student, score
WHERE student.stno=score.stno AND student.specialist= '通信'
WITH CHECK OPTION
GO

 ---------------------------查询视图---------------------------------------

  查询视图和查询表的SQL语句的结构是一样的,只需将表名换成视图名即可,比如下面的这个示例:

   例如:查询st_comm视图:

USE stsc
SELECT *
FROM st_comm   再比如,查询学号,姓名,课程名:
USE stsc
SELCT stno, stname, cname
FROM st_comm---------------------更新视图---------------------------------------
注意:对视图的更新会更新到基表中的数据,但是,有时对视图的更新操作是无法完成对基表的更新。(不明白,回过头去看看这篇文章的开头,说了一堆关于视图的废话)

1,插入数据,同样的,同向表中插入数据的SQL语句的结构是一样的;

  比如,向视图st_cp中插入一条记录('2015', '晓帅歌', '女', 'oracle’,59)。(就是不想你及格



USE stsc
INSERT INTO st_cp VALUES('2015', '晓帅歌', '女', 'oracle’,59)  2,修改数据,道理同上,我就不废话了,还是老规矩,来个例子。
例如:将视图st_cp中学号为2015的学生的总学分增加10分。

USE stsc
UPDATE st_cp SET tc=tc+10
WHERE stno = '2015'    

 3,修改数据。。。。
举例。删除学号为2014的记录

USE stsc
DELETE FROM st_cp
WHERE stno='2014' ------------------------修改视图和重命名视图-------------------------
关于图形化界面的操作,这里不介绍,很简单的,对吧。


      下面说说关于使用SQL语句实现对是视图的修改和重命名

 1,修改视图的定义:

   语法格式:

ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]
[ WITH <view_attribute>[,…n ] ]
AS select_statement
[ WITH CHECK OPTION ]
     关于参数的定义解释,如上面创建视图的参数含义。

例如:修改视图st2_comm ,取消专业为通信的要求。

USE stsc
GO
ALTER VIEW st2_comm
AS
SELECT student.stno, student.stname, score.cno, score.grade
FROM student, score
WHERE student.stno=score.stno
WITH CHECK OPTION
GO
2,重命名视图:
      语法格式:

sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
      参数说明:


(不想打字了

)

      例如:将视图st_view1命名st_view2

USE stsc
GO
EXEC sp_rename 'st_view1','st_view2'
GO
--------------------------删除视图---------------------------

  使用SQL语句删除是视图的语法格式如下:
DROP VIEW [ schema_name . ] view_name [ ...,n ] [ ; ]
  例如,删除视图st_view2:
USE stsc
DROP VIEW st_view2
       ~~~~~~~~~~~ 完 ~~~~~~~~~~~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息