最近在DataCamp上学习SQL(基于PostgreSQL)的课程,本文主要记录自己易记混的点,以便日后参考学习,不做原理讲解。

  1. GROUP BY(分组)一般和聚合函数一起使用,包括COUNT(),AVG(),MAX(),MIN(),SUM();一般跟在FROM后面;SELECT语句中未出现在聚合函数里的列都要出现在GROUP BY。

2. WHERE/ GROUP BY/ HAVING/ ORDER BY 执行顺序

SELECT 

首先WHERE将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量将不符合条件的记录筛选掉,这样可以减少分组的次数),WHERE语句不能用聚合函数

然后通过GROUP BY关键字对数据进行分组 ;

接着根据HAVING关键字后面指定的筛选条件,将分组后不满足条件的记录筛选掉,(HAVING可以用聚合函数,如 HAVING AVG(col) > 10;

最后按照ORDER BY语句进行排序。

WHER子句在聚合前先筛选记录,也就是说作用在GROUP BY和 HAVING子句前;而HAVING子句在聚合后对组记录进行筛选。

3. JOIN

INNER JOIN / JOIN : only includes records in which the key is is both tables.

LEFT JOIN:keeps all of the records in the left table while bringing in missing values for those key field values that don't appear in the right table.

RIGHT JOIN:keeps all of the records in the right table while bringing in missing values for those key field values that don't appear in the left table.

FULL JOIN:combines a LEFT JOIN and a RIGHT JOIN, it will bring in all records from both the left and the right table and keep all of the missing values accordingly.

当用于联结两个表的字段相同时,USING等价于JOIN操作中的ON,如以下2个实例等价:

SELECT a.name, b.age FROM test AS a
JOIN test2 AS b
ON a.id = b.id;等价于SELECT a.name, b.age
FROM test AS a
JOIN test2 AS b
USING(id);

注:细微区别在与,USING(id) 在结果集中只会有一个id列。

4. UNION

UNION:includes every record in both tables but DOES NOT double count those that are in both tables.(包含两个表中的每个记录,但重复的行,最终只会出现一次)

UNION ALL:includes every record in both tables and DOES replicate those are in bot tables.(包括两个表中的每个记录,并且保留重复行)

INTERSECT:results in only those records found in both of the tow tables.(交集,两个集中共同的部分)

EXCEPT:results in only those records in one table BUT NOT the other.(差异,两个集中不重复的部分)

你的点赞是我持续更新的动力~ 谢谢 Thanks♪(・ω・)ノ

其他SQL学习笔记 友情链接:

JessieY:SQL学习笔记 - 窗口函数OVER​zhuanlan.zhihu.com

JessieY:SQL学习笔记 - CTE通用表表达式和WITH用法​zhuanlan.zhihu.com

JessieY:SQL学习笔记 - CASE WHEN THEN​zhuanlan.zhihu.com

inner join on 加条件和where加条件_SQL学习笔记 - GROUP BY / JOIN / UNION相关推荐

  1. Angular Lazy load(延迟加载,惰性加载) 机制和 feature module 的学习笔记

    官网链接 默认情况下,NgModules 是贪婪加载的,这意味着一旦应用程序加载,所有 NgModules 也会加载,无论它们是否立即需要. 对于有很多路由的大型应用程序,可以考虑延迟加载--一种根据 ...

  2. 关于css加div布局和表格布局,菜鸟学习笔记:表格布局和div+css布局

    网页布局可以通过表格和div元素来实现(注:table布局已经淘汰),首先我们来看看table布局 表格布局 导航 推荐文章 一个猴子成长史 你看个毛线 我就瞅你咋地 村里出了个半边天 一个猴子的成长 ...

  3. 十五、PHP框架Laravel学习笔记——构造器的 join 查询

    一.join 查询 使用 join 实现内联接的多表查询,比如三张表进行 inner join 查询: $users = DB::table('users') ->join('books', ' ...

  4. 《尚硅谷高级技术之JUC高并发编程》学习笔记11—— Fork / Join 框架

    文章目录 Fork / Join 框架简介 fork() 方法 join() 方法 Fork / Join 框架的异常处理 入门案例 总结 Fork / Join 框架简介 Fork / Join 它 ...

  5. inner join on 加条件和where加条件_图解 SQL 中各种连接 JOIN

    先用文字来捋一下思路,数据库操作中无非就是「 增删查改 」,其中「 查」用得最多且最复杂,变化多端.查询的时候,我们可以只是单表查询,也可以是多表连接查询,单表查询中的学问也很大,但限于篇幅,本次主要 ...

  6. 【vue】预加载、懒加载

    项目场景: 提示:记录: 预加载:会在使用之前,提前加载js文件(等其他资源加载完毕,浏览器空闲了,在偷偷加载资源,适用于pc端)兼容性问题严重,caniuse查看是否使用该技术 懒加载:当文件需要使 ...

  7. 照片墙瀑布流加载与阻止加载

    网上大部分主流的瀑布流应用基本都是由后端在提供图片地址的同时提供图片宽高,这样,前端不必等待图片渲染完成,可以根据图片的宽高先把装载图片的容器或父节点先放上页面,完成基础性的布局,再让图片以渐变或其他 ...

  8. javascript图片懒加载与预加载的分析

    懒加载与预加载的基本概念. 懒加载也叫延迟加载:前一篇文章有介绍:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片. 预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染. 两种技 ...

  9. ViewPager+Fragment 组合的预加载和懒加载

    ViewPager+Fragment 组合的预加载和懒加载 转载自http://www.crocutax.com 预加载介绍 ViewPager+Fragment的搭配在日常开发中也比较常见,可用于切 ...

最新文章

  1. 2022-2028年中国网络出版产业投资分析及前景预测报告
  2. Celery - 一个懂得 异步任务 , 定时任务 , 周期任务 的芹菜
  3. linux C编程之makefile
  4. 关于vue,angularjs1,react之间的对比
  5. 设计模式:备忘录模式(Memento)
  6. Megcup 2017 决赛第一题 规则
  7. java yuv 裁剪480480_对android录制的NV21视频数据进行旋转(90,180,270)与剪切
  8. 高职高专教材c语言,高职《C语言程序设计》教材建设研究
  9. 计算机的网络技术说课稿模板,精选信息技术说课稿模板汇编五篇
  10. 大学英语计算机统考怎么过,2011年9月大学英语B 统考 计算机网考样题
  11. IR PC IP 之义
  12. GitHub上提交代码之写给小白
  13. ES6之什么是箭头函数?
  14. FFmpeg视频处理入门教程----从安装到使用(Linux版)
  15. IPFS未来展望,迎接Web3.0新潮流
  16. python 提示按任意键退出_详解Python实现按任意键继续/退出的功能 python请按任意键继续 什么意思...
  17. php一维数组的定义,PHP 数组定义、遍历的实现方法
  18. 迅雷向链享云售让部分区块链业务:包括链克与链克商城
  19. GIS讲堂第一课-开源GIS环境搭建相关内容
  20. Qt按ESC关闭模态对话框不触发closeEvent()问题解析(转)

热门文章

  1. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)
  2. Codeforces Round #587 (Div. 3) C. White Sheet 思维
  3. CodeForces - 375D Tree and Queries 树启 + 思维
  4. 【POI2007】OSI-Axes of Symmetry【计算几何】【manacher】
  5. 字符串匹配(多模式匹配篇)
  6. P3992 [BJOI2017]开车
  7. CF720C Homework(构造)(暴力)
  8. CF9D-How many trees?【dp】
  9. P5021-赛道修建【平衡树,贪心,二分答案】
  10. 2021“MINIEYE杯”中国大学生算法设计超级联赛(2)I love counting(Trie树)