| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> oracle(6) -> 正文阅读 |
|
[大数据]oracle(6) |
4.2.2 等值连接在笛卡尔积的基础上取条件列相同的值 查询员工信息和部门信息 查询员工姓名,部门名称 --查询每一个员工的信息以及所在部门的信息 --查询的数据:员工信息,部门信息 --数据来源:emp,dept --链接条件:emp.deptno=dept.deptno select * from emp e,dept d where e.deptno=d.deptno; --查询出每一个有员工存在的部门的信息和部门的人数 --查询数据:部门信息,对应的部门的人数 --数据来源:dept,emp 经过计算 --链接条件:dept.deptno=人数对应的.deptno --查询出有员工的部门的员工人数 select count(*),deptno from emp group by deptno; select * from dept d, (select count(*),deptno from emp group by deptno) c where d.deptno=c.deptno; 4.2.3非等值连接!=,>,<,<>,between and 查询员工姓名,工资及等级 --查询数据:ename,sal,hiredate,grade --数据来源:emp,salgrade --链接条件:emp.sal between losal and hisal --查询员工表 select * from emp; select * from salgrade; select ename,sal,hiredate, grade from emp e,salgrade s where e.sal between losal and hisal; 4.2.4外连接内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。 外连接可以是左向外连接,右向外连接或完整外部连接。 左向外连接的结果集包括LEFT OUTER 子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表均为空值。 右向外连接是左向外连接的反向连接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。 看‘+’,带‘+’的表为从表,对立面的表为主表。 找出所有员工的姓名以及他上级的名称 找出所有上级的名称以及其手下员工的名称 找出所有部门的员工数及部门名称 找出所有员工的部门名称及员工数 --查询每一个部门的信息和部门人数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (这是一个内连接) 注意:这个部门里面没有员工的时候不显示, select * from dept; select count(*),deptno from emp group by deptno; select * from dept d,( select count(*),deptno from emp group by deptno; )c where d.deptno=c.deptno; ~~~~~~~~~~~~~~~~~~·~~~~~~~~~~ (这是一个外连接) 注意:这个部门里面没有员工的时候是会占位显示为null 不用区分哪个是左连接还是哪个是右连接只需要知道主表既可 --外连接 主表 (只要在主表中出现的记录,就必须出现在结果中) 注:不是主表的后面有’(+)’ 代表只是主表的附属品 --查看每一个部门的信息,对应的员工数 --查询的数据:部门信息,部门人数 --数据来源:dept d,(select count(*),deptno from emp group by deptno)c --连接条件 d.deptno=c.deptno(+) select * ?from dept d,( select count(*),deptno from emp group by deptno)c where d.deptno =c.deptno(+); 处理为null的时候 ,当为null 显示为0 select d.deptno,dname, loc ,nvl(cc,0)from dept d, (select count(*),deptno from emp group by deptno)c where d.deptno=c.deptno(+); --列出每一个有上级的员工的信息和上级信息 --列出所有的员工信息以及其上级的信息 --查询数据:员工信息,上级的信息 --数据来源:emp e,emp m --连接条件:e.mgr=m.empno(+) select * from emp e,emp m where e.mgr =m.empno(+); 4.2.5 自连接特殊的等值连接 (来自于同一张表) 找出存在上级的员工姓名 --查询出每一个员工(有上级存在的员工)自己的信息,以及上级的信息 --查询的数据:员工信息,上级信息 --数据来源:emp e, emp m --连接条件: e.mgr=m.empno select * from emp e,emp m where e.mgr =m.empno; |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:33:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |