MySQL之复杂查询

视图和表的区别

表示保存在计算机的存储设备(通常是硬盘)中。
而视图并不会将数据保存在存储设备之中,而且也不会将数据保存到其他任何地方。视图保存的是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子句的条件。
结合条件一定要写在子查询中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值