MySQL学习(十二)

视图 view 在查询中,我们经常把查询结果当成临时表来看, view是什么?view可以看成一张虚拟表,是表通过某种运算得到的一个投影。 表的变化会影响到视图 既然视图只是表的某种查询的投影,所以主要步骤在于查询上,查询的结果命名为视图就可以了。 创建视图的语法 CREATE VIEW 视图 AS SELECT 语句;

mysql> create view stats -> as -> select cat_id,avg(shop_price) as pj -> from goods -> group by cat_id -> order by pj; Query OK, 0 rows affected (0.49 sec)

视图有什么作用? 1 视图可以简化我们的查询,比如,复杂的统计时,先用视图生成一个中间结果,再查询视图 2 更精细的权限控制。 3 数据多,分表时可以用到。

视图是表的一个影子,探讨表与视图,数据变化时相互影响的关系。 表的数据变化,要影响到视图的变化 视图变化了,表如何变? 视图某种情况下,也是可以修改的,视图的数据和表的数据一一对应,就像函数的映射。表可以推出视图的数据,视图可以推出表的数据。 视图没有数据文件和索引文件,视图只是一种关系。 注意 order by limit得到的结果,与表不是一一对应的。一一对应是指,根据select关系,从表中取出的行,只能计算出视图中确定的一行。反之,视图中任意抽一行,能够反推出表中的确定的一行。

对于一些简单视图,他在发挥作用的过程中,并没有建立表,而只是把条件存起来,下次查询,把条件一合并,直接去查表。 思考:相比于建临时表,那个快? 建表:查询->形成临时表->查询寻临时表 叠加:合并条件->查询表

到底要不要建临时表,还是合并语句,有algorithm决定 algorithm = merge 合并查询语句 temptable 临时表 undefined 未定义

mysql> create view v1 -> as -> select * from goods where shop_price > 300; Query OK, 0 rows affected (0.75 sec) mysql> create algorithm = merge view v2 -> as -> select * from goods where shop_price > 300;

虽然结果上相同,但是v2不是临时表。

如果拿不准是否建表,可以用undefined,让系统自己做判断。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

mysql(视图 事务 索引 外键)

视图视图本质就是对查询的封装创建视图(定义视图 起名以v\_开头)createviewv\_studentsasselectclasses.nameas c\_name,students.\fromstudentsinnerjoinclassesonstudents.cls\_idclasses.id;查

oracle查询表数据并重新插入到本表

oracle查询表数据并重新插入到本表CreateTime2018年5月17日10:30:10Author:Marydon1.情景描述查询表中数据SELECTFROMat_aut

MySQL学习笔记20

二十、使用视图1、视图视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。例如:SELECTcust\_name,cust\_contact     FROMcustomers,orders,orderitems     WHEREcustomers.cust\_idorder

ThinkPHP 根据关联数据查询 hasWhere 的使用实例

很多时候,模型关联后需要根据关联的模型做查询。场景:广告表(ad),广告类型表(ad\_type),现在需要筛选出广告类型表中id字段为1且广告表中status为1的列表先看关联的设置部分 publicfunctionadType(){return$thisbelongsTo('A