-- having前面必须有group by
select e.deptno
,sum(e.sal) as sum_sal
,min(e.sal) as min_sal
,max(e.sal) as max_sal
,avg(e.sal) as avg_sal
,count(e.ename) as ct1
from emp e
group by e.deptno
having e.deptno = 20
;

-- 因为null值不做统计,所以用count(1)统计效率更高
select count(1) from emp;

-- 正序 asc 、 倒叙 desc
select *
from emp e
order by e.sal; --(asc/desc)

-- 指定空值的位置 (在前 nulls first)(在后 nulls last)
select *
from emp e
order by e.eomm nulls first;

-- group by 和 distinct 都是去重,但是group by还有分组聚合的职能。

-- primary key 主键约束 、 foreign key 外键
-- (一张表想要指向另一张表,需要设置主键外键)

-- 删除 先子后父 、 添加 先父后子

-- 关联 join...on... 是标准写法的固定语法 (内关联只显示关联得了的数据)
-- 关联的本质:从一张表中依次取一条数据和另一张表的每一条数据进行一次匹配
-- 内关联 (同一张表可以多次使用,例如 emp e 、 emp b)
select *
from emp e
join dept b on e.deptno = b.deptno;

-- 外关联 为了符合阅读习惯,只写左外 (主表数据不丢失)
select e.*,d.*
from emp e
left join dept d on e.deptno = d.deptno;

-- 关联的条件写在where后面就是取数条件,写在on后面则是关联条件
--(建议把条件写在on后面,这样性能好一点)

-- 多表关联 语法
select *
from emp a
join emp b on a.deptno = b.deptno
join emp c on a.deptno = b.deptno
join dept d on a.deptno = b.deptno;

-- 笛卡尔积 服务器突然变慢的原因之一

-- 子查询 (查询套查询)(子查询是可以单独执行的)
-- 单行子查询 不反回或返回一行结果的查询
-- 多行子查询 返回0行、一行或多行的查询

select -- 标量子查询 字段子查询
from -- 表子查询(把一个查询结果集视为一张表)
where -- 条件子查询 (子查询返回了两个值,条件用 = 会报错,用in 或 not in)

-- 子查询
select *
from emp e
where sal > ( select avg(sal) from emp);

-- 表子查询
select e.deptno,avg(sal) as avg_sal
from emp e
group by e.deptno;

-- 两个表关联起来就可以看成一张表,通过分组聚合取数
select *
from emp a
join (select e.deptno,avg(sal) as avg_sal from emp e group by e.deptno ) b -- 要给表达式命别名
on a.deptno = b.deptno
where a.sal > b.avg_sal;

-- 标量子查询
select e.*
,(select avg(sal) from emp) as avg_sal
,(select max(sal) from emp) as max_sal
from emp e;

-- 字段子查询这里返回了多个字段
select e.*
,(select avg(sal),max(sal) from emp) as avg_sal
from emp e;

-- 多行子查询
select *
from emp e
where e.sal in ( select sal from emp where ename in ('MARTIN','SCOTT') );

最新文章

  1. JAVA装饰者模式(从现实生活角度理解代码原理)
  2. http://paulgraham.com/arcfaq.html
  3. 高效 Java Web 开发框架 JessMA v3.2.3 正式发布
  4. DDD:如何更好的使用值对象
  5. Cheatsheet: 2013 12.01 ~ 12.16
  6. golang vim环境搭建
  7. Arc Engine 中添加气泡提示框
  8. HDU 5651 xiaoxin juju needs help 水题一发
  9. 研究在SAE上搭建最新wordpress
  10. 常用在线工具及API网址总结
  11. 有两个数据库A和B,数据库A中有表a,如何把表a映射到数据库B中,sql 2005
  12. shell 命令合并文本
  13. SIP DB33标准笔记 监控图像获取
  14. Selenium API常用方法
  15. 【转】FFmpeg获取DirectShow设备数据(摄像头,录屏)
  16. 洛谷 P1739 表达式括号匹配
  17. mysql学习笔记--数据完整性
  18. 使用SSH远程登陆Linux
  19. Windows server 2016 支持容器 ,安装docker 搭建Ubuntu+hadoop (docker为服务器)
  20. Linux共享库 base64库

热门文章

  1. html表白代码
  2. wamp下载使用
  3. 字符串内特殊字符的替换处理,如对\n的替换
  4. 遇到端口占用无法启动IIS Express服务器
  5. 线上服务Java进程假死快速排查、分析
  6. ES深分页
  7. form 表单中input 使用disable属性
  8. springsecurity maven 打包后,404错误。maven 打包后,加载内置的xml文件
  9. STP协议-基础
  10. AVL tree rotate