当前位置:天才代写 > tutorial > 数据库教程 > 数据库教程_教学者们学会视图的使用方法

数据库教程_教学者们学会视图的使用方法

2018-05-22 08:00 星期二 所属: 数据库教程 浏览:1059

在现实数据库开发中,经常存在这样的需求:你的项目中的某些数据需要给外部的一些开发人员查阅,但你又不希望将自己数据表的结果暴露出去,这时就可以开辟一个视图,除了这个视图外,其余表操作的权限都取消,这样对方就只能操作这个视图。而在这个mysql数据库中,你可以将需要的字段开放出来,甚至在视图中使用不同的名称,这样对方完全不知道你的数据表是什么样子的。

 

数据库教程_教学者们学会视图的使用方法

另一种情况:通常,我们的数据表之间通过主外键关联,为了在一个查询中看到完整的数据,我们需要通过表连接技术将分散在多个表中的数据聚合起来,为了简便,我们可以为自己开一个视图,视图的内容就是表连接查询的结果,这样以后再次查看这些数据时直接从视图中查询即可,无需再次编写连接查询语句。
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。

mysql中使用以下语句创建视图:

 

create view testview
AS

select s.*,c.`name` classname from students s join class c on s.class=c.id

 

create vew 表示创建视图,testview是视图名称,as后面表示视图的查询语句。
运行上面语句后就在views中看到创建了一个视图。一旦创建了视图,就可以把它当作一个表使用,但是视图只是虚拟表,不能进行数据的修改,只能作为查询使用,它的所有字段信息都是根据创建视图的查询语句决定。
创建了上面的视图后,我们就可以从视图中查询数据了。
select * from testview

 

查询结果:

1 lisi 1 135
2 ww 1 135
3 zl 2 136
4 zs 3 137

 

视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。

 

    关键字:

天才代写-代写联系方式