*多表查询

  分类:1.合并结果集

     2.连接查询

     3.子查询

  

*合并结果集:要求被合并的表中,列的类型和列数相同。

  *UNION,去除重复行。完全相同的行会被去除

  *UNION ALL:不去除重复行。

  例:select * from ab  UNION ALL  select * from cd;

*连接查询

  分类:1.内连接

     2.外连接:左外,右外,全外。

     3.自然连接

  *内连接:select * from 表1 别名1 inner join 表2 别名2  on 别名1.xx = 别名2.xx;//内连接只会将所有满足条件的记录查询出来,不满足条件的记录不显示。

  *自然连接:select * from 表1 别名1 natural join 表2 别名2 ;//注意:自然连接不用写on条件。直接关联就可以了

  *左外连接:select * from 表1 别名1 left outer join 表2 别名2 on 别名1.xx = 别名2.xx;

    //左表记录无论是否满足条件都会查询出来,右表没有匹配到的行中的列显示为Null。

  *右外连接:select * from 表1 别名1 right outer join 表2 别名2 on 别名1.xx = 别名2.xx;

    //右表记录全显示,左表没匹配到的列显示为null;

  *全外连接:select * from 表1 别名1 full outer join 表2 别名2 on 别名1.xx = 别名2.xx;

  

*子查询:

  特点:查询中嵌套查询,注意select的个数。

  出现位置:1.where后作为条件存在。2.from后作为表存在(多行多列的情况下)

  例子:

    1.查询部门编号为30的员工编号和姓名

     sleect e.eptno,e.ename from (select * from emp where deptno = 30) e;//这里的子查询必需起别名,不然前面不确定要查的是哪个表。

    2.查询本公司工资最高的员工信息

     select * from emp where sal =(select Max(sal) from emp);

    3.列出薪金高于工资平均薪金的所有员工信息,所在部门名称,上级领导,工资等级

        select e.*,d.dname,m.ename,s.grade    //dname=>部门名称,ename=>上级领导,grade=>工资等级

     from emp e left outer join dept d on e.deptno = d.deptno  //连接员工表emp与部门表dept,主键员工编号deptno

        left outer join emp m on e.mgr = m.empno   //员工表emp自身连接

        left outer join salgrade s on e.sal between s.losal and s.hisal  //员工表emp与工资等级表salgrade连接

     where e.sal > (select AVG(sal) from emp);

.

总结:以上列出的只是基本的,关于多表查询还有很多要学习的。现在用着还不太熟练,日积月累,做的项目多了就会慢慢成长起来的,加油加油。

转载于:https://www.cnblogs.com/shaokai7878/p/9396497.html

【oracle笔记3】多表查询相关推荐

  1. Oracle数据库之多表查询

    oracle安装参照: Oracle数据库之安装教程 Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 ...

  2. Django 笔记6 -- 多表查询

    Django 笔记6 – 多表查询 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Djang ...

  3. MySQL 笔记5 -- 多表查询

    MySQL 笔记5 – 多表查询 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.表之间关系 1.一对一 ...

  4. Oracle SQL的多表查询 看这一篇文章就够了~

    多表查询核心 数据关联 左右连接 数据分组 (分组统计.统计函数.多字段分组) 分组数据的过滤(having) 子查询(以上的综合) 本篇文章将根据以上五点进行SQL多表查询的详细解释,包含有语法.案 ...

  5. oracle数据库查询需步骤,PLSQL操作Oracle数据库之单表查询SQL语句 看完你就知道了...

    Orcale数据库作为商业级的大型关系型数据库管理系统,以其较高的安全性和强大的可移植性赢得了市场的广泛认可,而PLSQL作为操作Oracle的编程语言的最佳选择,掌握其编程原理及基本的sql操作是掌 ...

  6. oracle数据库同时实现联表查询和分页查询(未明确定义列)

    ps:只是记录新手小白的脱坑之路,大佬勿喷 今天在做前端数据查询的时候,在实现联表查询的同时进行分页查询遇到了令人头秃的问题,分页查询的sql语句是这样的 select * from (select ...

  7. Oracle学习:多表查询与子查询

    一.多表查询 (1)等值连接 查询员工信息:员工号 姓名 月薪(emp)和部门名称(dept) select e.empno, e.ename, e.sal, d.dname from emp e, ...

  8. mysql学习笔记14 多表查询初步

    对数据分组的总结 举例:统计各个部门的平均工资,并且是大于1000的,并且按照平均工资从高到底排序 mysql> select avg(stsal) as myavgsal, stdepno f ...

  9. php多表查询 例子,thinkphp学习笔记之多表查询

    在操作过程中,两表查询都没有问题,但是三表查询就开始出现问题 有以下三张表,分表为pl表(uid,content),user表(id,username),lyb表(uid,title) 多表查询操作有 ...

  10. oracle中的单表查询,单字段与多字段排序

    -单表的查询学习 –查询表的所有数据 select *from 表名; *代表所有 select *from emp; –查询表中指定字段的值 :select 字段名1,字段名2,-from表名 se ...

最新文章

  1. HTTP访问服务的相关解释
  2. 更新ADT到Android L的方法
  3. LaTeX 公式输入软件 KLatexFormula
  4. 直播预告丨B2B 企业如何高效获客增长?
  5. TensorFlow2.0(十二)--实现简单RNN与LSTM网络
  6. 共享单车需求预测问题:分析篇
  7. php 连接timesten,timesten常见的一些简单问题
  8. 【vuejs】有关UI框架“ydui”中的tabbar底部导航的应用以及tabbar切换激活状态的现实
  9. MFC学生信息管理系统
  10. linux上多个CUDA切换使用(小白教程)
  11. 第二讲:高性能计算关键技术和趋势分析
  12. Win10添加Loopback网卡
  13. 解决win10小娜Cortana(win+S)无法搜索本地应用或无反应
  14. 环路补偿-一阶、二阶、运放补偿讲解及计算
  15. QQ邮箱授权码和二代密保
  16. Java中HashMap常见问题 -- 扩容、树化、死链问题
  17. ubuntu下使用QT编译 No such file or dire解决
  18. C51中intrins_h头文件解释分析
  19. android11 定位权限页面不显示始终允许
  20. 【win11 22h2升级的坎坷经历】

热门文章

  1. 挨踢项目求生法则-战略篇
  2. IT人怎能忘记这些开源?
  3. WEB测试—用户界面测试
  4. 关于Hibernate中No row with the given identifier exists问题的原因及解决
  5. CentOS6.4之文本编辑器Vi/Vim
  6. 我的2011就这样混掉了
  7. Android开发将List转化为JsonArray和JsonObject
  8. 在DWZ框架中整合kindeditor复文本框控件
  9. Linux 运维和网站开发,你更愿意让哪个作为您的职业?为什么?
  10. zabbix 监控端口,其他端口和此端口类似