• mysql连接查询


    1、笛卡尔乘积

    SQL92写法:

    select d.dname,e.ename from emp e,dept d where e.deptno = d.deptno;
    

    SQL99写法(建议使用):

    select d.dname,e.ename from emp e join dept d on e.deptno = d.deptno;


    2、内连接
    内连接查询出的数据是两张表的交集,即上图中C所表示的部分。

    select d.dname,e.ename from emp e inner join dept d on e.deptno = d.deptno;
    

    其中inner可以省略:

    select d.dname,e.ename from emp e join dept d on e.deptno = d.deptno;


    3、找出员工所对应的工资等级,显示员工姓名、工资、工资等级:

    select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal;


    4、查询员工的名称和员工对应的领导名称:

    select a.ename empname ,b.ename leadername from emp a join emp b on a.mgr = b.empno;
    说明:上面的写法是emp表自己跟自己做连接查询,这种写法叫做自连接。


    5、找出每一个员工对应的领导名,要求显示所有员工:

    select a.ename empname ,b.ename leadername from emp a left join emp b on a.mgr = b.empno; 
    

    说明:查询结果中的king的领导是null,使用左连接或右连接才可以将其查询出来。

    找出每一个员工对应的部门名称,以及该员工对应的工资等级,要求显示员工姓名、部门名称、工资等级:

    SELECT 
        e.ename, d.dname, e.sal, s.grade
    FROM
        emp e
            JOIN
        dept d ON e.deptno = d.deptno
            JOIN
        salgrade s ON e.sal BETWEEN s.losal AND s.hisal;



    6、使用union合并结果

    将查询的结果集合并,合并结果集时查询字段的个数必须一致。

    查询出job为MANAGER和SALESMAN的员工:

    SELECT 
        empno, ename, job
    FROM
        emp
    WHERE
        job = 'MANAGER' 
    UNION 
    SELECT 
        empno, ename, job
    FROM
        emp
    WHERE
        job = 'SALESMAN';


    7、limit

    作用:获取一表前几条戒中间某几行数据,主要用来分页处理,limit关键字只在MySQL中起作用。

    找出工资排名在前5的员工:

    select ename,sal from emp order by sal desc limit 0,5;
    

    或者:

    select ename,sal from emp order by sal desc limit 5;
    

    找出工资排名在[ 3-9 ]的员工:

    select ename,sal from emp order by sal desc limit 2,7;
     



    参考:http://www.monkey1024.com/database/819
  • 相关阅读:
    单表通用excle导入(只要是单表都可以,只需要传文件跟表名及用户id即可)
    单表通用excle导出(只要是单表都可以)
    mysql数据库中的mybatis中xml解决in不起作用的问题
    Mysql获取系统时间,年,月,日
    Linux下MySQL的数据库安装
    MP3音频文件的剪切合并方法
    Oracle client客户端简易安装网上文档一
    excel导出功能
    Oracle数据库的创建表全
    Oracle表字段的增加、删除、修改和重命名
  • 原文地址:https://www.cnblogs.com/51python/p/10613927.html
Copyright © 2020-2023  润新知