Oracle学习记录 八 多表查询

1. 笛卡尔集

select * from emp, dept;

2. 等值连接

select ename, job from emp, dept

where emp.deptno=dept.deptno;

3. 非等值连接

select ename, grade from emp, salgrade

where sal between losal and hisal;

这个其实我不太明白到底是怎么弄的。前面的两种都容易理解,这个难道是

拿一个sal就去salgrade中找在哪个范围?

4. 自连接

select t1.empno, t1.ename, t2.empno, t2.ename

from emp t1, emp t2

where t1.mgr=t2.empno;

5. 左外连接

select t1.empno, t1.ename, t2.dname

from emp t1, dept t2

where t1.deptno=t2.deptno(+);

select empno, ename, dname

from emp left outer join dept on emp.deptno=dept.deptno;

http://www.tuicool.com/articles/eQ3uiu

这篇文章介绍的还是挺详细的,基本上明白这些连接是怎么个意思了。

6. 右外连接

select t1.empno, t1.ename, t2.dname

from emp t1, dept t2

where t1.deptno(+)=t2.deptno;

select empno, ename, dname

from emp right outer join dept on emp.deptno=dept.deptno;

7. 满外连接

select empno, ename, dname

from emp full outer join dept on emp.deptno=dept.deptno;

时间: 2024-09-29 22:21:07

Oracle学习记录 八 多表查询的相关文章

Oracle学习(五):多表查询

1.知识点:能够对比以下的录屏进行阅读 SQL> --等值连接 SQL> --查询员工信息: 员工号 姓名 月薪 部门名称 SQL> select empno,ename,sal,dname 2 from emp,dept 3 where emp.deptno=dept.deptno; SQL> --不等值连接 SQL> --查询员工信息: 姓名 月薪 工资级别 SQL> select ename,sal,grade 2 from emp e,salgrade s 3

Oracle学习记录 二 创建表等操作练习

进行了第一章的基本数据操作指令练习后,进行数据库的一些操作. 创建表class有两个栏:numbers和names: create table class (numbers number, names char(20)); 这样建名都是大写的了,不想这样就加上""双引号  numbers这是栏名,number这是数据类型 2. 在建表的时候,限制哪些数据可以存入哪些不可以 create table class2 (numbers number not null, names char(

Oracle笔记(八) 复杂查询及总结

Oracle笔记(八) 复杂查询及总结 一.复杂查询 1. 列出至少有一个员工的所有部门编号.名称,并统计出这些部门的平均工资.最低工资.最高工资. 1.确定所需要的数据表: emp表:可以查询出员工的数量: dept表:部门名称: emp表:统计信息: 2.确定已知的关联字段: emp.deptno=dept.deptno: 第一步:找出至少有一个员工的部门编号 SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno HAVING COUNT(e

ORACLE 第4节 多表查询

学习目标: ?使用等值和不等值连接在SELECT语句中查询多个表中的数据. ?使用自连接. 使用外连接查询不满足连接条件的数据 Oracle连接 等值连接: 使用连接在多个表中查询数据. SELECT  table1.column, table2.column FROM  table1, table2 WHERE  table1.column1= table2.column2; ?在 WHERE 子句中写入连接条件. ?在表中有相同列时,在列名之前加上表名前缀 两个表的连接 select e.e

Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等

count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age),max(age),min(age),avg(nvl(age,0)) from b_user 1       260     70      10      37.1428571428571 group by:如果前面定义了该字段名  则groupby必须也写上该字段 select name,pw

数据库 day60,61 Oracle入门,单行函数,多表查询,子查询,事物处理,约束,rownum分页,视图,序列,索引

1.    oracle介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一.比如SilverStream就是基于数据库的一种中间件.ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能:作为一个关系数据库,它是一个完备关系的产品:作为分布式数据库它实现了分布式处理功能.但它的所有知识,只要在一种机型上学习

oracle学习 第一章 简单的查询语句 ——04

1.5 如何在SQL语句中使用算数表达式 可以在SQL语句中使用表达式.在表达式中可以使用一下4种运算符:+,-,*,/ 它们分别代表加.减.乘.除. 设想一下,在某一天,有个社会团体和工会团体参观你们的公司,您的老板为了树立公司的光辉形象,它要求您把午餐和茶水的费用加到员工的工资里并打印一张工资清单.于是您大概算了一下,其费用约合500元/月.之后您用例1-11的查询得到了老板索要的员工的工资清单. 例 1-11 SQL> SELECT empno,ename,sal,500+sal 2 FR

Oracle学习(二)—简单查询

1.SCOTT用户之中的主要数据表 dept.emp.salgrade.bonus.观察四张表结构(语法:DESC 表). |·部门表:dept NO. 字段   类型 描述 1. DEPTNO  NUMBER(2) 部门编号,最多只能由两位数字所组成 2. DNAME VARCHAR2(14) 部门名称,由14个字节长度所组成 3. LOC     VARCHAR2(13) 部门位置 |·雇员表:emp NO. 字段   类型 描述 1. EMPNO   NUMBER(4)  雇员编号,最多只

MyBatis学习总结——实现关联表查询(转)

原文链接:孤傲苍狼 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. 1 CREATE TABLE teacher( 2 t_id INT PRIMARY KEY AUTO_INCREMENT, 3 t_name VARCHAR(20) 4 ); 5 CREATE TABLE class( 6 c_id INT PRIMARY KEY AUT