一.什么时候使用视图
- 某一张表(以下把原始表称为基表)里面存放简单数据,需要向外界提供一个简单的入口来获取这些简单数据的复制运算结果。考虑视图。
- 某几张基表具有一些共同特性,需要向外界提供一个简单的入口来获取这几张表所有的数据。强烈建议视图。
二.创建视图
-
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
- 例子
CREATE
VIEW `cbms`.person`
AS
(SELECT * FROM `cbms`.`person_view`)
三.视图类型
- ALGORITHM = MERGE。会将引用视图的sql语句与视图本身的sql语句结合起来,去查询基表。
- ALGORITHM = TEMPTABLE。会将视图的结果置于临时表里面,引用视图的sql语句从临时表里面取数据。
- ALGORITHM = UNDEFINED。创建视图的sql语句没显示的指定ALGORITHM 。如果可能,它倾向于MERGE 而不是TEMPTABLE ,这是因为MERGE 通常更有效,而且如果使用了临时表,视图是不可更新的。
四.视图类型例子
对于ALGORITHM =TEMPTABLE视图,没什么好说的,数据直接从临时表取。下面看看ALGORITHM = MERGE。
CREATE ALGORITHM = MERGE VIEW v_merge (vc1, vc2) AS
SELECT c1, c2 FROM t WHERE c3 > 100;
-
SELECT * FROM v_merge;
=====>
SELECT c1, c2 FROM t WHERE c3 > 100;
-
SELECT * FROM v_merge WHERE vc1 < 100;
=====>
SELECT c1, c2 FROM t WHERE (c3 > 100) AND (c1 < 100);
注意:WHERE (基表 WHERE) AND (view WHERE)
五.视图更新
- 如果视图和基表数据是一对一的,那么视图是可以更新的。如二.2的例子。
- 以下情况会造成视图与基表数据不是一对一:
- 聚合函数(sun(),max(),min(),count()等)。
- group by, having, union, union all等情况。
- 其他情况,暂时还没遇到。
- 视图不能更新时候,你去更新它。The target table 视图名 of the UPDATE is not updatable。
分享到:
相关推荐
数据库学习:HANA学习记录(表、视图、函数、存储过程以及计算视图)
这是一个关于图书管理信息统的数据库的设计与实现,里面包括图书管理信息管理系统的需求分析,数据库设计的分析,数据表的建表、视图、存储过程、触发器、数据查询。内容详细,学习使用mysql的重要资料
实验三(1)视图的定义及使用实验 一、实验目的 使学生掌握 SQL Server中的视图创建及删除的方法,加深对视图和SQL Server图表作用的理解。 本实验需要1学时。 二、实验内容 1. 启动数据库服务软件SQL ...建立视图:
这是一个关于药品存销信息管理系统的数据库的设计与实现,里面包括药品存销信息管理系统的需求分析,数据库设计的分析,数据表的建表、视图、存储过程、触发器、数据查询。内容详细,学习使用mysql的重要资料
(1)使用命令完成附录中实验样例数据库四张表的数据定义:学生表 Student、课程表 Course、班级表 Class、成绩表 Cj。四张表结构详见附录一。 实验三 SQL 的完整性约束定义 1.复习教材第五章完整性约束定义的相关内容...
1. 实验目的 通过视图的创建过程,理解视图的概念和意义,掌握视图的基本使用方法。 2. 实验要求 ...在三层数据库中,视图是外部数据库,它是从基本表中派生出来的,并且依赖于基本表。它在内存中不存储数据
SQL实验三--数据的更新操作和视图-实验报告.doc
这是一个关于人事管理信息系统的数据库的设计与实现,里面包括人事管理系统的需求分析,数据库设计的分析,数据表的建表、视图、存储过程、触发器、数据查询。内容详细,学习使用mysql的重要资料
这是一个关于职工人事管理信息系统的数据库的设计与实现,里面包括职工人事管理系统的需求分析,数据库设计的分析,数据表的建表、视图、存储过程、触发器、数据查询。内容详细,学习使用mysql的重要资料
数据库管理与应用 6.7 通过视图删除表中数据.pdf 学习资料 复习资料 教学资源
数据库管理与应用 6.6 通过视图修改表中数据.pdf 学习资料 复习资料 教学资源
数据库管理与应用 6.5 通过视图向表中插入数据.pdf 学习资料 复习资料 教学资源
视图:view,是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表. 创建视图 Create view 视图名字 AS 正常sql语句 例如: 单表视图: CREATE VIEW myView1 AS SELECT * FROM emp; 2.多表视图: CREATE VIEW...
该例是asp.net教学中常见案例,主要通过视图、存储过程的方式访问数据库(非三层架构),操作包含逻辑完成的增删改查,主要供初学者学习使用。 特别提醒:代码环境MS.net2012,数据库环境SQL Server2012。Webconfig...
3实验三:表数据的插入、删除和更新;4实验四:索引和视图的创建、查看、删除;5实验五:触发器的创建与使用;6实验六:表之间关系图创建;7实验七:数据的导入和导出;8实验八:数据的安全性控制;9实验九:查询的...
新建视图: 保存视图: 刷新视图节点: 查看视图: 维护视图: 删除视图: 方式2-SQL语句: 创建视图: 查看视图中的数据: 修改视图: 删除视图: 方式1-图形用户界面: 新建视图: 保存视图: 刷新视图...
mysql学习总结, 表与表的关系 表:具有固定列数和任意行数。 数据库:一些关联表的集合。 主键:一个数据表只能包含一个主键,使用主键来查询数据。 外键:用来关联两张表。 索引:快速访问数据库表的特定信息...
Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。