SQL训练营TASK03学习笔记-视图、子查询

本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql;

一、学习知识点

复杂查询方法-视图、子查询、函数等

二、学习内容

sql视图
视图不是表,视图是虚表,视图依赖于表
视图的优点:
通过定义视图可以将频繁使用的SELECT语句保存以提高效率。
通过定义视图可以使用户看到的数据更加清晰。
通过定义视图可以不对外公开数据表全部字段,增强数据的保密性。
通过定义视图可以降低数据的冗余
创建视图
CREATE VIEW <视图名称>(<列名1>,<列名2>,…) AS <SELECT语句>
视图需注意规则:
与表一样,视图必须唯一命名(不能给视图取与别的视图或表相
同的名字)。
对于可以创建的视图数目没有限制。
为了创建视图,必须具有足够的访问权限。这些限制通常由数据库管理人员授予。
视图可以嵌套,即可以利用从其他视图中检索数据的查询来构造一个视图。
ORDER BY 可以用在视图中,但如果从该视图检索数据 SELECT 中也
含有 ORDER BY ,那么该视图中的 ORDER BY 将被覆盖。
视图不能索引,也不能有关联的触发器或默认值。
视图可以和表一起使用。例如,编写一条联结表和视图的 SELECT
语句
需要注意的是在一般的DBMS中定义视图时不能使用ORDER BY语句。
为什么不能使用 ORDER BY 子句呢?这是因为视图和表一样,数据行都是没有顺序的。
在 MySQL中视图的定义是允许使用 ORDER BY 语句的,但是若从特定视图进行选择,而该视图使用了自己的 ORDER BY 语句,则视图定义中的 ORDER BY 将被忽略。
修改视图结构
ALTER VIEW <视图名> AS <SELECT语句>
ALTER VIEW productSum
AS
SELECT product_type, sale_price
FROM Product
WHERE regist_date > ‘2009-09-11’;

视图更新
视图是可更新的(即,可以对它们使用 INSERT 、 UPDATE 和
DELETE )
不可更新的情况有
聚合函数:如 SUM()、MIN()、MAX()、COUNT() 等。
去重:DISTINCT 关键字
分组:GROUP BY 字句HAVING 子句。
联结:UNION 或 UNION ALL 运算符。
子查询:FROM 子句中包含多个表。
并:and
更新视图语句例句
UPDATE productsum
SET sale_price = ‘5000’
WHERE product_type = ‘办公用品’;
ps:不推荐这种使用方式。而且我们在创建视图时也尽量使用限制不允许通过视图来修改表
删除视图
DROP VIEW <视图名1> [ , <视图名2> …]
要有相应的权限才可删除
DROP VIEW productsum;
子查询
子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入,在 SELECT 子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表。
与视图的关系是
子查询就是将用来定义视图的 SELECT 语句直接用于 FROM 子句当中。其中AS studentSum可以看作是子查询的名称,而且由于子查询是一次性的,所以子查询不会像视图那样保存在存储介质中, 而是在 SELECT 语句执行之后就消失了。
子查询例句
SELECT stu_name
FROM (
SELECT stu_name, COUNT(*) AS stu_cnt
FROM students_info
GROUP BY stu_age) AS studentSum;
执行顺序为先执行括号里面的语句再执行外面的语句
单一子查询
要求我们执行的SQL语句只能返回一个值,也就是要返回表中具体的某一行的某一列。
关联子查询
关联子查询就是通过一些标志将内外两层的查询连接起来起到过滤数据的目的。

三、学习问题与解答

函数太多了记不住该如何
记住常用的函数,不会的要学会善于搜索

四、学习思考与总结

视图的优点非常多,要多多利用视图
子查询是由里向外查询,先想好里面要查询的是什么
基本函数大部分与excel中的函数相一致,要学会联想学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值