sql查询

select e.dept_id from emp e GROUP BY e.dept_id

  1. wher 是过滤分组前的数据,having 是过滤分组后的数据,where必须在group by 之前,having必须在group by 之后
    select e.dept_id,avg(e.salary) from emp e.

  2. 查询出每个部门工资高于800的员工的平均工资,然后在查询出工资高于2000的部门
    select e.dept_id,avg(e.salary) asal
    from emp e where e.salary > 800 group by e.dept_id HAVING avg(e.salary) > 2000

  3. 查询所以员工数据,以及员工所属部门
    select * from emp e left JOIN dept d on e.dept_id = d.id

  4. 查询员工姓名,员工领导姓名,自连接
    select e1.ename,e2.ename
    from emp e1,emp e2
    where e1.mgr = e2.id
    5.员工姓名,员工部门名称,员工领导姓名,员工领导部门名称
    select e1.ename,d1.id,e2.ename,d2.id
    from emp e1,emp e2,dept d1,dept d2
    where e1.mgr = e2.id
    AND e1.dept_id = d1.id
    AND e2.dept_id = d2.id
    6.员工姓名,员工部门名称,员工领导姓名,员工领导部门名称 员工和领导在同一个部门
    select e1.ename,d1.id,e2.ename
    from emp e1,emp e2,dept d1
    where e1.mgr = e2.id
    AND e1.dept_id = d1.id
    AND e2.dept_id = e1.dept_id

  5. 子查询
    子查询返回一个值
    查询出工资和scott一样的员工信息
    select * from emp where salary in (select salary from emp where ename=‘小白龙’)

  6. 子查询返回一个集合
    查询出工资10号部门任意一个员工一样的员工信息
    select * from emp where dept_id in (select id from dept where id=‘30’)

  7. 子查询返回一张表
    查询出每个部门最低工资,和最低工资员工的姓名,和该员工所在部门名称

  8. 先查询每个部门最低工资
    select dept_id,min(salary) msal
    from emp e GROUP BY dept_id

  9. .三表联查,获取到最终结果
    select e.ename,t.msal,e.dept_id,d.dname
    from (select dept_id,min(salary) msal
    from emp e GROUP BY dept_id) t,emp e,dept d
    where t.msal = e.salary
    and t.dept_id = e.dept_id
    and t.dept_id = d.id

12. Orcle 分页查询每页5条,显示第二页(重点记忆)

select * from(
select rownum rn,tt.* from(

	  查询语句···
		
) tt where rownum < 11

) where rn > 5

  1. 单列索引,复合索引
    create index idx_ename on emp(ename)
  2. 单列索引触发规则,条件必须是索引列中的原始值(单行函数,模糊查询,都会影响索引的触发)
    select * from emp where ename=‘小白龙’
  3. 复合索引
    create index idx_enamejob on emp(ename,job)
  4. 复合索引中的第一列为优先检索列,
    如果要触发复合索引,必须包含有优先检索列中的原始值
    select * from emp where ename=‘小白龙’ and job = ‘xxx’ —触发复合索引
    select * from emp where ename=‘小白龙’ or job = ‘xxx’ —不触发索引
    select * from emp where ename=‘小白龙’ —触发单列索引

索引参考大佬博客 https://www.cnblogs.com/wwxzdl/p/11116446.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值