Oracle系列:(13)多表查询-创新互联

多表查询,包括等值连接等值连接外连接自连接

成都创新互联公司主营峰峰矿网站建设的网络公司,主营网站建设方案,成都app开发,峰峰矿h5小程序定制开发搭建,峰峰矿网站营销推广欢迎峰峰矿等地区企业咨询

内连接,包括等值连接非等值连接

员工表emp和部门表dept的笛卡尔集(笛卡尔集表=列数之和,行数之积,笛卡尔集表内中有些数据是不符合要求的)

select emp.ename,dept.dname from emp,dept;

使用等值连接/内连接(只能使用=号),显示员工的编号,姓名,部门名,使用表别名简化

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

使用非等值连接(不能使用=号,其它符号可以,例如:>=,<=,<>,betwen and等),显示员工的编号,姓名,月薪,工资级别

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

Oracle系列:(13)多表查询

内连接查询:只能查询出符合条件的记录

外连接查询:既能查询出符合条件的记录,也能根据一方强行将另一个方查询出来

使用外连接,按部门10,20,30,40号,统计各部门员工人数,要求显示部门号,部门名,人数

部门号 部门名     人数

10   ACCOUNTING   3

20   RESEARCH    5

30   SALES     6

40   OPERATIONS   0

等值连接/非等值连接/内连接:只会查询出多张表中,根据某个字段匹配,符合条件的记录,不符合条件的记录是不会存在的

左外连接[是oracle专用的,不是SQL99规则]:

select dept.deptno "部门号",dept.dname "部门名",count(emp.empno) "人数" from dept,emp where dept.deptno = emp.deptno(+)  group by dept.deptno,dept.dname;

Oracle系列:(13)多表查询

右外连接:

select dept.deptno "部门号",dept.dname "部门名",count(emp.empno) "人数" from dept,emp where emp.deptno(+) = dept.deptno group by dept.deptno,dept.dname;

Oracle系列:(13)多表查询

使用左外连接,按部门10,20,30,40号,统计各部门员工人数,要求显示部门号,部门名,人数,且按人数降序排列

select dept.deptno "部门号",dept.dname "部门名",count(emp.empno) "人数" from dept,emp where dept.deptno = emp.deptno(+)  group by dept.deptno,dept.dname order by 3 desc;

Oracle系列:(13)多表查询

使用自连接,显示"SMITH的上级是FORD"这种格式

select users.ename || '的上级是' ||boss.ename from emp users,emp boss where users.mgr = boss.empno;

只有13条记录,不含有KING

Oracle系列:(13)多表查询

基于上述问题,将KING的上级是“”显示出来

select users.ename || '的上级是' ||boss.ename from emp users,emp boss where users.mgr = boss.empno(+);

14条记录

注意:自连接也用到内连接和外连接

Oracle系列:(13)多表查询

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:Oracle系列:(13)多表查询-创新互联
URL链接:http://cdiso.cn/article/cdddgi.html

其他资讯