MySQL之复杂查询

xiaoxiao2021-02-28  64

视图和表的区别

表示保存在计算机的存储设备(通常是硬盘)中。 而视图并不会将数据保存在存储设备之中,而且也不会将数据保存到其他任何地方。视图保存的是SELECT语句。

视图的优点?

第一,视图无需保存数据,可以节省存储设备的容量。 第二,可以将频繁使用的SELECT语句保存成视图,这样不用每次书写。 应该将经常使用的SELECT语句做成视图。

如何创建视图?

CREATE VIEW 视图名称(<视图列名1>,<视图列名2>,...) AS <select语句>

使用视图的查询步骤

第一,首先执行定义视图的SELECT语句 第二,根据结果,执行在FROM子句中使用视图的SELECT语句。

视图的限制

第一,定义视图不能用ORDER BY子句。 原因:视图和表示一样的,数据行都是没有顺序的。 第二,对视图进行更新。 要满足的条件: 1.SELECT子句未使用DISTINCT 2.FROM子句中只有一张表 3.未使用GROUP BY子句 4.未使用HAVING子句

视图和表需要同时进行更新,因此通过聚合得到的视图无法进行更新。

删除视图

DROP VIEW 视图名称(<视图列名1>,<视图列名2>,..);

子查询

子查询和视图不同,子查询在SELECT语句执行完毕之后就会消失。 1.内层的查询(from子句中的SELECT子句)子查询会先执行。 2.外层的查询(SELECT子句)

标量子查询:必须而且只能返回1行1列的结果。 例如:

SELECT AVG(hanbai_tanka) FROM Shohin;

关联子查询

普通子查询和关联子查询的区别?

关联子查询在子查询中添加了WHERE子句的条件。 结合条件一定要写在子查询中。

转载请注明原文地址: https://www.6miu.com/read-80189.html

最新回复(0)