[转]mysql视图

视图

今天用到了数据库的视图功能,其实视图就是一张虚拟表,为你提供了一些联表操作,但是性能上并不好。有时候是做到了数据的一致性,对外提供统一的表。
一、什么是视图

¨ 视图是查看数据库表中数据的一种方法;

¨ 视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力;

¨ 视图只是一种逻辑对象,并不是物理对象,因为视图不占物理存储空间;

¨ 在视图中被查询的表称为视图的基表;

¨ 视图的内容包括:基表的列的子集或者行的子集;两个或者多个基表的联合;两个或者多个基表的连接;基表的统计汇总;另外一个视图的子集;视图和基表的混合。

二、视图的优点

1.集中用户使用的数据;

2.掩码数据库的复杂性,视图把数据库设计的复杂性与用户屏蔽分开;

3.简化用户权限的管理;

4.为向其他应用程序输出而重新组织数据。

第二节 创建视图

1、用企业管理器创建通讯录

2、用企业管理器创建一个成绩单视图

语法

: CREATE VIEW <视图名> [(列名1,列名2,……)]

[WITH ENCRYPTION]

AS

SELECT_STATEMENT

[WITH CHECK OPTION]

功能:创建视图

例1:创建一个成绩单视图

CREATE VIEW dbo.vw_cjd(name, cid, result)

AS

SELECT name, report.cid, report.result FROM student JOIN report

ON student.sid=report.sid

例2:显示成绩单视图

Select * from vw_cjd

例3:创建一个按专业统计平均年龄的视图

CREATE VIEW dbo.vw_avg(speciality, avage)

AS

SELECT speciality, avg(age) FROM student

GROUP BY speciality

例4:显示平均年龄视图

Select * from vw_avg

第三节 修改视图与删除视图

1. 修改视图

语法:ALTER VIEW <视图名> [(列名1,列名2,……)] [WITH ENCRYPTION]

AS

SELECT statement [WITH CHECK OPTION]

例:修改视图vw_cjd

ALTER VIEW vw_cjd

AS

Select name, report.cid, report.result, address From student join report

ON student.sid=report.sid

查看Select * from vw_cjd

2. 删除视图

语法:DROP VIEW <视图名>

例:删除视图vw_cjd

DROP VIEW vw_cjd

第四节 视图定义信息

一、视图定义信息

1.在企业管理体制器中查看

2.查询视图Information_schema.views

3.查询系统表syscomments

4.使用命令 sp_helptext 对象名

二、隐藏视图定义

with encryption

第五节 通过视图修改数据

¨ 只能影响一个基表;

¨ 如果指定WITH CHECK OPTION选项,那么要验证所修改的数据。

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*