mysql视图的作用(详细)

测试表:user有id,name,age,sex字段

测试表:goods有id,name,price字段

测试表:ug有id,userid,goodsid字段

视图的作用实在是太强大了,以下是我体验过的好处:

作用一:

提高了重用性,就像一个函数。如果要频繁获取user的name和goods的name。就应该使用以下sql语言。示例:

select a.name as username, b.name as goodsname from user as a, goods as b, ug as c where a.id=c.userid and c.goodsid=b.id;

但有了视图就不一样了,创建视图other。示例

create view other as select a.name as username, b.name as goodsname from user as a, goods as b, ug as c where a.id=c.userid and c.goodsid=b.id;

创建好视图后,就可以这样获取user的name和goods的name。示例:

select * from other;

以上sql语句,就能获取user的name和goods的name了。

作用二:

对数据库重构,却不影响程序的运行。假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结构如下:

测试表:usera有id,name,age字段

测试表:userb有id,name,sex字段

这时如果php端使用sql语句:select * from user;那就会提示该表不存在,这时该如何解决呢。解决方案:创建视图。以下sql语句创建视图:

create view user as select a.name,a.age,b.sex from usera as a, userb as b where a.name=b.name;

以上假设name都是唯一的。此时php端使用sql语句:select * from user;就不会报错什么的。这就实现了更改数据库结构,不更改脚本程序的功能了。

作用三:

提高了安全性能。可以对不同的用户,设定不同的视图。例如:某用户只能获取user表的name和age数据,不能获取sex数据。则可以这样创建视图。示例如下:

create view other as select a.name, a.age from user as a;

这样的话,使用sql语句:select * from other; 最多就只能获取name和age的数据,其他的数据就获取不了了。

作用四:

让数据更加清晰。想要什么样的数据,就创建什么样的视图。经过以上三条作用的解析,这条作用应该很容易理解了吧

时间: 2024-11-12 10:03:04

mysql视图的作用(详细)的相关文章

Mysql视图的作用及其性能分析

定义:视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表. 作用: 1.简化操作,不用进行多表查询. 2.当不同种类的用用户共享同一个数据库时,非常灵活,(用户以不同的 方式看待同一数据. 3.视图对重构数据库提供了一定程度的逻辑独立性. 数据的逻辑独立性是指:如增加新的关系或对原有的关系增加新的 字段,用户的应用程序不受影响. 例如:原有一个Student(Sno,Sname,Ssex,Sage,Sdept)这样一个表. 后来变动为:Sx(Sno,Sname,Sage)和SY(Sno

第11章 mysql 视图

2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] 范德兰斯.MySQL开发者SQL权威指南 [M].北京:机械工业出版社,2008 [4] Forta.MySQL必知必会 [M].北京:人民邮电出版社,2009 [5] mysql视图学习总结 [6] mysql之视图 [7] mysql之视图详解

mysql 视图(view)

什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. 数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中. 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据. 视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变. 视图的作用 1.使操作简单化,可以对经常使用的查询定义一个视图,使用户

MySQL 视图、触发器、函数、存储过程

1.视图 视图的概念 视图就是一条 select 语句执行后返回的结果集. 视图的特性 视图是对若干张基本表的引用,一张虚表,查询语句的执行结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变) 视图的作用 方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性:更加安全,数据库授权命令不能限定到特定的行和特定的列,但通过合理创建视图,可以把权限限定到行列级别: 应用场景 1.权限控制的时候,不希望用户访问表中某些敏感信息的列 2.对表进行复杂的关联查询时 示例: 查询小飞上的所以

MySQL视图view/存储过程和函数的使用

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC Semibold"; color: #454545 } p.p3 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px

MySQL视图和自定义函数

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

深入解析MySQL视图view

阅读目录---深入解析MySQL视图 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌套视图 定义视图时的其他选项:algorithm.definer.SQL security 视图查询语句的处理 替代方法 具体化方法 Q:什么是视图?视图是干什么用的? A: 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据.作为一个select语句保存在数据字典中的. 通过视图,可以展现

MySQL视图介绍

数据准备 创建数据库.导入数据 [[email protected] ~]# mysql -uroot -p -e"create database viewdb;" Enter password: [[email protected] ~]# mysql -uroot -p viewdb< viewdb.sql Enter password: mysql> show databases; +--------------------+ | Database          

sql之浅谈视图的作用

[数据库]☆★sql之浅谈视图的作用 在一个项目的实际开发过程中牵涉到复杂业务的时候,我们不可避免的需要使用中间表来进行数据连接,有的同学就说了,我可以采用Hibernate进行主外键进行关联啊?多对多,多对一,一对一,等,采用主外键关联在数据的操作过程中具有很强的耦合性,尤其对于需要经常删改数据表而言,我们是不建议采用主外键关联这种模式,那么,如果我们采用中间表的话,当数据过大在性能上又面临严峻考验,sql视图的出现,在解决中间表的业务逻辑上是不错的选择.ok,首先我们了解什么是视图? 1.视