一、什么是视图
视图是查看数据库表中数据的一种方法;
视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力;
视图只是一种逻辑对象,并不是物理对象,因为视图不占物理存储空间;
在视图中被查询的表称为视图的基表;
视图的内容包括:基表的列的子集或者行的子集;两个或者多个基表的联合;两个或者多个基表的连接;基表的统计汇总;另外一个视图的子集;视图和基表的混合。
二、视图的优点
1.集中用户使用的数据;
2.掩码数据库的复杂性,视图把数据库设计的复杂性与用户屏蔽分开;
3.简化用户权限的管理;
4.为向其他应用程序输出而重新组织数据。
1. 目的:采用视图主要是为了操作的方便性
2. 使用场景:重复使用的结果集考虑建成视图;如果表的结构可能会频繁发生变化,那么最好设置视图。
3. 使用:视图的使用和表的使用是一致,只用于查询,因为视图是表的结果集,视图不能对基表进行增删改
使用:
增----创建视图
1. 语法
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
改---修改视图
先删除,再创建
删---删除视图
语法:DROP VIEW <视图名>
例:删除视图vw_cjd
DROP VIEW vw_cjd
其他
4.利用视图操作基本表
---添加数据行(直接影响基本表)
insert into tb_user_view1 values(8,'insert',5)
---修改数据行(影响基本表)
update tb_user_view1 set username='update' where bh=3
---删除数据行(直接影响基本表)
delete from tb_user_view1 where bh=2
多表关联创建视图
格式:CREATE OR REPLACE FORCE VIEW 视图名(列表名1,列表名2,……,列表名n)as select 查询子句
例子:
CREATE OR REPLACE FORCE VIEW tb_username_address (bh, username, address_id, address) AS
SELECT u.bh,u.username,a.bh,a.address FROM tb_user u,tb_address a WHERE u.address_id=a.bh
修改视图
格式:CREATE OR REPLACE FORCE VIEW 视图名(列表名1,列表名2,……,列表名n)as select 查询子句
例子:
CREATE OR REPLACE FORCE VIEW tb_username_address (bh, username, address_id, address) AS
SELECT u.bh,u.username,a.bh,a.address FROM tb_user u,tb_address a WHERE u.address_id=a.bh and a.address='xinxiang'
drop view 命令删除视图
格式:
drop view 视图名
例子:drop view tb_username_address
删除数据行(影响基本表):
例子:delete tb_username_address where bh=5
视图来自多个基本表时,不允许添加数据。
修改数据行(影响基本表):
例子:update tb_username_address set username='updaten' where bh=6