• 多表查询基本语法


    //查询表中的记录数

    select count(*) from emp;

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

    select e.ename,e.sal,d.dname,s.grade from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;

    

    select e.ename,e.sal,d.dname,decode(s.grade,1,'第五等工资',2,'第四等工资',3,'第三等工资') from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;

    二,左右连接

    //右连接,得到匹配结果后将右侧的结果全部显示出来

    select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno(+)=d.deptno;

    //左连接,得到匹配结果后将左侧的结果全部显示出来

    select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno(+);

    默认是左连接

    三,sql:1999语法

    交叉连接:产生笛卡尔积

    select * from emp cross join dept;

    自然连接:自动进行关联字段的匹配

    select * from emp natural join dept;

    using子句:直接关联的操作列

    select * from emp e join dept d using(deptno) where deptno=30;

    on子句:用户自己编写连接的条件

    select * from emp e join dept d on(e.deptno=d.deptno) where e.deptno=30;

    右外连接:

    select * from emp e right outer join dept d on(e.deptno=d.deptno);

    左外连接:

    select * from emp e left outer join dept d on(e.deptno=d.deptno);

  • 相关阅读:
    用户自定义控件
    sql 动态行转列
    sql 将表B中不存在表A的数据 插入到表A中
    C#获取键盘和鼠标操作的时间的类
    滚动条加粗和panel,gridControl结合用
    第三项任务——用例建模
    第二项任务——项目需求分析
    第一项任务:团队组建及项目启动
    实验报告(结对项目)
    实验报告(个人项目)
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1949465.html
Copyright © 2020-2023  润新知