数据库-从入门到跑路 .4 视图的概念和应用

本文围绕数据库视图展开,介绍了视图是从一个或多个表导出的虚拟表,数据库仅存其定义,数据在原表。阐述了视图作用,说明了创建视图的各参数含义及选项。还提及视图在单表、多表上的创建、查看,以及修改、更新和删除等实际运用。

第七节
一 视图引入
1,视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
2,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
3,使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

二 视图的作用
1,视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
2,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
3,使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

三 创建视图

格式:
CREATE [ ALGORITHM ={ UNDEFIEND | MERGE | TEMPTABLE }]
	VIEW 视图名 [ ( 属性清单) ]
	AS SELECT 语句
	WITH  [ CASCADED | LOCAL ]  CHECK OPTION ];
  1. ALGORITHM 是可选参数,表示视图选择的算法;

  2. “视图名”参数表示要创建的视图的名称;

  3. “属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与 SELECT 语句中查询的属性相同;(可以自己选择属性进行显示)

  4. SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中;

  5. WITH CHECK OPTION 是可选参数,表是否更新视图时要保证在该视图的权限范围之内;

  6. ALGORITHM 包括 3 个选项 UNDEFINED、MERGE 和 TEMPTABLE。
    UNDEFINED 选项表示 MySQL 将自动选择所要使用的算法;
    MERGE 选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分
    取代语句的对应部分;
    TEMPTABLE 选项表示将视图的结果存入临时表,然后使用临时表执行语句;

  7. [ CASCADED | LOCAL ]两者选一
    是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL 表示更新视图时,要满足该视图本身的定义条件即可;

四 实际运用

在单表上创建视图

CREATE VIEW v1 AS SELECT * FROM t_book;				//建立一个视图和t_book一样,命名为v1

CREATE VIEW v2 AS SELECT bookName,price FROM t_book;		//建立一个拥有bookName,price的v2视图

CREATE VIEW v3(b,p) AS SELECT bookName,price FROM t_book;	/把bookName,price改名


SELECT * FROM v1;

SELECT * FROM v2;

SELECT * FROM v3;						//查询视图的方式

多表创建视图

CREATE VIEW v4 AS SELECT bookName,bookTypeName FROM t_book,t_booktype 
WHERE t_book.bookTypeId=t_booktype.id;			//where后可以加条件

CREATE VIEW v5 AS SELECT tb.bookName,tby.bookTypeName FROM t_book tb,t_booktype tby 
WHERE tb.bookTypeId=tby.id;						//在from后面重命名表,可以实现在多表中建立视图		
				
SELECT * FROM v4;

SELECT * FROM v5;								//查询视图的方式

查看视图

格式:
1. DESCRIBE 语句查看视图基本信息
2. SHOW TABLE STATUS 语句查看视图基本信息
3. SHOW CREATE VIEW 语句查看视图详细信息
4. 在 views 表中查看视图详细信息


DESC v5;										//查看视图的格式类信息

SHOW TABLE STATUS LIKE 'v5';					//查看视图的状态(与表对比说明是虚表)

SHOW TABLE STATUS LIKE 't_book';				//查看表的状态

SHOW CREATE VIEW v5;							//查看详细建表信息

五 应用举例

修改视图

格式:
第一种:CREATE OR REPLACE [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
	VIEW 视图名 [( 属性清单 )]
	AS SELECT 语句
	[ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
第二种:ALTER [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
	VIEW 视图名 [( 属性清单 )]
	AS SELECT 语句
	[ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

	
SELECT  * FROM v1;											//查询v1表

CREATE OR REPLACE VIEW v1(bookName,price) AS SELECT bookName,price FROM t_book;	
															//修改v1表,只显示2个字段

ALTER VIEW v1 AS SELECT * FROM t_book;						//修改v1表,全是全字段				

更新视图:与更新表对比基本相同

INSERT INTO v1 VALUES(NULL,'java good',120,'feng',1);				//插入数据

UPDATE v1 SET bookName='java very good',price=200 WHERE id=5;			//更新(批量修改数据)

DELETE FROM v1 WHERE id=5;							//删除视图中指定数据

删除视图

概念:删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
	DROP VIEW [ IF EXISTS ] 视图名列表 [ RESTRICT | CASCADE ]

drop view if exists v4								//删除视图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值