SQL基础教程MICK版 ···第五章总结
SQL基础教程MICK版 ···第五章总结
- 视图
- 子查询
- 标量子查询
- 标量子查询、没有用标量子查询、常量的比较总结
- 关联子查询
- 自己的困惑
视图
1.视图的概念
1)从SQL的角度来看视图就是一张表
(个人理解是,视图是逻辑上对表的筛选,表的内容是要存于内存中的,而视图只存SELECT 语句,有点类似于 视图是对表的查询, 由此可以知道,可以把经常要用到的查询语句做成视图)
2.视图与表的区别: 数据更新的限制,其中视图有两个限制;
/*
在没有满足第二个限制的视图无法进行更行操作,会报错的1.视图的创建
CREATE VIEW 视图名(<视图列1>,<视图列2>,...)
AS -- 这个必不可少的
(<SELECT语句>)
*/
--个人理解, 建立视图离不开一个实表 如果只写到AS就截止了,就会报错。
CREATE VIEW viewname(product_id,product_name)
AS
SELECT product_id,product_name
FROM product;/*
2.DROP掉视图
DROP VIEW 视图名;
*/
DROP VIEW viewname;
子查询
标量子查询
/*
标量子查询:它可以放在SELECT列中,可以放在WHERE子句中,也可以放在HAVING子句等等,几乎可以说,它可以放在任何位置
*/
--1 举例
SELECT product_id,product_name,product_type,sale_price,(SELECT AVG(sale_price)FROM product) AS sale_price_all -- AS sale_price_all是子查询的名字FROM product;--2 与没有用标量子查询的区别
SELECT product_id,product_name,product_type,sale_price, AVG(sale_price) AS sale_price_all
FROM product;--3 与常量的比较
SELECT product_id,product_name,product_type,sale_price, 1000 AS sale_price_all
FROM product;
标量子查询、没有用标量子查询、常量的比较总结
聚合函数在SELECT中只执行了一次,而用标量子查询就可以根据行数的多少生成对应的列
关联子查询
/*
我的理解是:关联子查询是在多个标量子查询的基础上加个条件,用条件对多个标量子查询的值筛选出来一个
*/
-- 标量子查询的例子 1
SELECT product_id,product_name,product_type,sale_price,(SELECT AVG(sale_price)FROM product) AS sale_price_all-- (SELECT AVG(sale_price) FROM product) AS sale_price_all -- 用于计算出 sale_price的总值/总数的比值
FROM product;-- 关联子查询的例子 2
SELECT product_id,product_name,product_type,sale_price,(SELECT AVG(sale_price)FROM product AS P1WHERE P1.product_type = P2.product_type -- 根据这个条件筛选出对应 平均值GROUP BY product_type -- 对sale_price分成几组进行算平均值) AS sale_price_all
FROM productcopy AS P2;
自己的困惑
1.我发觉,以上面关联子查询的例子为例,去掉GROUP BY 操作的结果还是一样,
这一刻我觉得我的理解可能出现的偏差,真正的理解是怎么样的?
·······以下做出一种假设
1)WHERE子句中有限定SELECT的能力,也就是,WHERE子句中是可以通过限定SELECT中的列,列进行对应的划分结果还是一样,
很显然,经过查询之后,仔细分析了一波。假设是错误的。正确的解释应该是下面这个!!!!!
/*
根据语句执行顺序
和 下面三句话
先做外部主查询;
将主查询的值传入子查询并执行;
子查询再将查询结果返回主查询,主查询根据返回结果完成最终的查询。以下分析结果
*/
SELECT product_id,product_name,product_type,sale_price,(SELECT AVG(sale_price) -- 6 条件筛选了之后,在进行AVG得到值FROM product AS P1 -- 3 子查询的表来自哪里WHERE P1.product_type = P2.product_type -- 4 对子查询的限制条件是什么-- GROUP BY product_type -- 5 --分成若干个组,很显然这个多余了, -- 因为4进行限制之后,才开始分组,-- 然而这个限定条件已经不能让这个分组有什么实际意义了) AS sale_price_all -- 2 对该表进行查询
FROM productcopy AS P2; -- 1 主查询来自哪里
补充,继续贴出 语句执行顺序
SQL基础教程MICK版 ···第五章总结相关推荐
- SQL基础教程MICK版 --第四章总结
SQL基础教程MICK版 ···第四章总结 DML操作.事务的概念.性质.和表现形式 DML操作之INSERT DML操作之UPDATE DML操作之DELETE.TRUNCATE 事务的概念,DBM ...
- SQL基础教程MICK版 ···第三章总结
SQL基础教程MICK版 ···第三章总结 SELECT语句 关于上表的语句顺序 和 执行顺序 完整的语法结构 GROUP BY需要注意的点 用于限定GROUP BY的 HAVING子句 关于ORDE ...
- SQL基础教程MICK版 ···第六章总结
SQL基础教程MICK版 ···第六章总结 函数 谓语 CASE语句 -- 有点像SWITCH语句 函数 函数的分类 算术函数 聚合函数 字符串函数 转换函数 日期函数 算术函数 ABS括号内数值 返 ...
- SQL基础教程MICK版 第一章总结
SQL基础教程MICK版 ···第一章总结 数据库的结构 二维表 SQL操作大概的内容 要注意的规则 表的创建 表的删除与表定义的更新 表的数据键入 数据库的结构 最常见的系统结构就是 客户端\服务器 ...
- SQL基础教程MICK版 ···第二章总结
SQL基础教程MICK版 ···第二章总结 前期准备 SELECT 语句基础 算术运算符.比较运算符和 NOT运算符 特殊的NULL 逻辑运算符 前期准备 应用第一章学的 建一个数据库 在该库中 建立 ...
- SQL基础教程MICK版 ···第七、八、九章总结
SQL基础教程MICK版 ···第七.八.九章总结 表的联结 -- 内联结.外联结 表的合并--- UNION (其他操作对MYSQL不适用.没有看) 关于ROLLUP---显示小计和总计 驱动的概念 ...
- 《Python基础教程第二版》第二章-Python列表和元祖
序列 例: Edward = ['abc', 12] 序列中的所有元素都是有编号的,从0开始递增. Note: 使用负数索引-1,Python会从右边,也就是从最后一个元素开始计数.最后一个元素的位置 ...
- 《SQL基础教程(第2版)》作者MICK:上帝存在于细节之中(图灵访谈)
本文仅用于学习和交流目的,不得用于商业目的.非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/art... 访谈嘉宾:MICK, 就职于日本的一家 ...
- sql基础教程和mysql基础教程_书评「SQL基础教程(第2版)」| 你应该知道的基础知识点梳理·上...
写在前面关于这本书:SQL的基础教程,可以使你在SQL的学习中轻松实现从0到1的过程,循序渐进地掌握SQL的基础知识和技巧.对于零基础来说非常友好,看完能够迅速上手SQL. 关于本文:一篇对这本书的知 ...
最新文章
- ubuntu bind9 配置简单记录
- ITK:将vtkImageData转换为itk :: Image
- stata 导出 相关系数表_Stata: 空间权重矩阵的构建
- GB4208中规定的外壳防护等级IP
- PostgreSQL 分页——示例
- linux 线程_Linux 多线程编程(不限Linux)
- linux下mysql5.7修改密码
- [转]Java输入输出流的使用详细介绍
- UVA10450 POJ1953 World Cup Noise【斐波那契数列】
- 如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析(二)...
- 数据接口复习 3 stack and queue
- 工商企业大数据爬虫系统
- estore简版商城思路
- 2021.11.20【读书笔记】|差异可变剪接事件及DTU分析
- Spring运行时值注入分析
- 2.04 标志寄存器
- cherry Tree的严重漏洞
- 烽火算法题 报数问题(不是约瑟夫环)双向链表 Java实现与C实现
- 如何myabtis使用注解对数据库进行操作呢?
- 开启Maven使用之路