MySQL数据库实战教程-70-视图
admin
2023-08-03 12:02:56
0


MySQL数据库实战教程-70-视图

文章插图
转自:http://www.cnblogs.com/wangtao_20/archive/2011/02/24/1964276.html
【MySQL数据库实战教程-70-视图】 
一、使用视图的理由是什么?
1.安全性 。一般是这样做的:创建一个视图,定义好该视图所操作的数据 。之后将用户权限与视图绑定 。这样的方式是使用到
了一个特性:grant语句可以针对视图进行授予权限 。
2.查询性能提高 。
3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大 。那么可以使用虚拟表的形式达到少修改的效果 。
这是在实际开发中比较有用的
例子:假如因为某种需要,a表与b表需要进行合并起来组成一个新的表c 。最后a表与b表都不会存在了 。而由于原来程序中编
写sql分别是基于a表与b表查询的,这就意味着需要重新编写大量的sql(改成向c表去操作数据) 。而通过视图就可以做到不修
改 。定义两个视图名字还是原来的表名a和b 。a、b视图完成从c表中取出内容 。
说明:使用这样的解决方式,基于对视图的细节了解越详细越好 。因为使用视图还是与使用表的语法上没区别 。比如视图名a
,那么查询还是"select * from a" 。
4.复杂的查询需求 。可以进行问题分解,然后将创建多个视图获取数据 。将视图联合起来就能得到需要的结果了 。

视图的工作机制:当调用视图的时候,才会执行视图中的sql,进行取数据操作 。视图的内容没有存储,而是在视图被引用的时候才派生出数据 。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的 。
视图这样设计有什么好处?节省空间,内容是总是一致的话,那么我们不需要维护视图的内容,维护好真实表的内容,就可以保证视图的完整性了 。
二、通过更新视图实现更新真实表
看到很多例子,更新视图可以更新真实表 。原因,我是这样理解的:视图并没有保存内容 。只是引用数据 。那么,更新视图,其实就是以引用的方式操作了真实表
with check option:对视图进行更新操作的时,需要检查更新后的值是否还是满足视图公式定义的条件 。通俗点,就是所更新的结果是否还会在视图中存在 。如果更新后的值不在视图范围内,就不允许更新如果创建视图的时候,没有加上with check option,更新视图中的某项数据的话,mysql并不会进行有效性检查 。删掉了就删掉了 。在视图中将看不到了 。

使用有效性检查,实际意义是什么?

视图的实践:重新组织表的需求
CREATE TABLE `result` (`MATH_NO` INT(10) NOT NULL unsigned AUTO_INCREMENT PRIMARY KEY,
`TEAMNO` INT(10) NOT NULL,
`PLAYERNO` INT(10) NOT NULL,
`WON` VARCHAR(10) NOT NULL,
`LOST` VARCAHR(10) NOT NULL,
`CAPTAIN` INT(10) NOT NULL COMMIT ‘就是PLAYERNO的另外名字‘,
`DIVISION` VARCHAR(10) NOT NULL
) ENGINE=MYISAM  DEFAULT CHARSET=utf8 COMMIT=‘重新组的新表‘ AUTO_INCREMENT=1

针对每个表创建一个视图,将数据保存进去:
CREATE VIEW teams(TEAMNO,PLAYERNO,DIVISION) AS SELECT  DISTINCT TEAMNO,CAPTAIN,DIVISION FROM result
报错:#1050 - Table ‘teams‘ already exists 
说明,因为视图也是一种表,是虚拟表 。不能与已有的表(视图)出现重名
接下来,删掉表teams,再执行创建视图的代码 。

将视图看成与表一样的东西,更加容易理解使用规则 。下面这样对比也许使自己更好理解:
1.在使用视图的时候,就是与使用表的语法一样的 。

相关内容

热门资讯

R... 本文目录导航: ROSS公司的开张,是律师VS人工智能的一次性胜利-2021-01-16 ...
人... 本文目录导航: 人工默认运行重要是指 人工默认运行重要是指 ...
1... 本文目录导航: 12款AI写作神器|必看! ai智能写作软件有哪些?ai智...
学... 本文目录导航: 学习人工默认专业须要哪些课程? 人工默认专业关键学些什么?...
人... 本文目录导航: 人工智能可以替代律师吗? 玛丽莎·梅耶尔的专一于技术 仔细...
人... 本文目录导航: 人工智能的写作和创作如何成功? AI写作如何写作 ...
人... 本文目录导航: 人工智能排名前十有哪些大学 人工智能专业排名前10有哪些学...
A... 本文目录导航: AI专业有哪些大学 中国人工默认公司排名 ...
凯... 本文目录导航: 凯利案关键证人出庭,戈恩瞒哄薪酬细节曝光 请问:名侦探柯南...
什... 本文目录导航: 什么是人工智能AI 什么是ai人工智能 A...
高... 本文目录导航: 高中人工默认作文800字三篇 正当运用科技的作文高中800...
专... 本文目录导航: 专迷信计算机还有前途吗? 自考计算机专业须要考哪些科目 ...
学... 人工智能是一个蕴含很多学科的交叉学科,你须要了解计算机的常识、消息论、控制论、图论、心思学、动物学、...
人... 本文目录导航: 人工智能务工的前景如何? 人工智能专业有哪些方向务工前景如...
百... 本文目录导航: 百度文库ai写作在哪找 百度文库AI写作助手在哪里找? ...
智... 本文目录导航: 智能AI写作软件有哪些? 目前好用的ai工具目前好用的ai...
人... 本文目录导航: 人工默认工程师月薪多少? 人工默认工程师薪水普通有多少一个...
号... 本文目录导航: 号称环球上第一款真正AI前期图片处置软件,让修图变成享用和乐趣- ...
想... 本文目录导航: 想学人工智能报什么专业 人工智能专业学什么?好找上班吗? ...
人... 本文目录导航: 人工智能应该选什么专业 人工智能须要哪些专业 ...