数据库学习 6

1.  查询的顺序

select top ...

from A

join B

on ...

join C

on ...

where ......     (where 是对原始数据的筛选)

group by ...

having ......     (having 是对分组后的数据筛选)

order by ...

2. 数据库参考代码

select "T".*, "D".dname, "S".GRADE

    from dept "D"

    join(

      select top 2 "E".deptno, AVG(sal) "avg_sal"

            from emp "E"

            join dept "D"

            on "E".deptno = "D".deptno

            join SALGRADE "S"

            on "E".sal between "S".LOSAL and "S".HISAL

            where "E".sal > 1500

            group by "E".deptno

            having AVG("E".sal) >2000

            order by AVG("E".sal) desc

        ) "T"

        on "D".deptno = "T".deptno

        join SALGRADE "S"

        on "T".avg_sal between "S".LOSAL and "S".HISAL

3. 输出每个员工的姓名 工资 上司的姓名

 select "E1".ename, "E2".sal, "E2".ename "上司姓名"

     from emp "E1"

     join emp "E2"

     on "E1".mgr = "E2".empno

union

select ename, sal, '已是最大老板' from emp where mgr is null 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 2,002评论 0 4
  • mysql数据库中 :database : 文件夹table : 数据表(数据文件) 进入mysqlmysql -...
    赋闲阅读 642评论 0 0
  • 5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...
    乔震阅读 1,550评论 0 0
  • 目标 聚合函数 分组函数 子查询 多行子查询 引出 •请思考如下问题? –查询所有员工的每个月工资总和,平均工资?...
    wqjcarnation阅读 4,202评论 0 6
  • 孤魂野鬼你可能没见过,不用想,那种凄凉是执迷不悟的人无法想象的, 因为, 没有归宿! 最喜欢局外人,因为他感慨颇多...
    小熊执勤阅读 290评论 0 4

友情链接更多精彩内容