oracle多表查询(二)

现在要求查询出每一个雇员的编号、姓名、工资、部门名称、工资所在公司的工资等级。

select e.EMPNO 员工编号,e.ENAME 员工姓名,e.SAL 员工工资,d.DNAME 部门名称,s.GRADE 工资等级 FROM EMP e,DEPT d, SALGRADE sWHERE e.DEPTNO=d.DEPTNO AND e.SAL BETWEEN s.LOSAL AND s.HISAL;

左,右连接

左、右连接指的主要是查询判断条件的参考方向

例如我们执行:

SELECT * FROM emp e, dept d WHERE e.deptno=d.deptno;

但是我们的部门一共有四个,这样看不到部门D的数据,这时就需要我们使用右连接
SELECT * FROM emp e right JOIN dept d ON e.deptno=d.deptno;(右连接的意思就是,即使关联条件执行后,right join后面表的数据也都会显示,相对于的right join前面表的数据就都是null)

这种写法等价于
SELECT * FROM emp e , dept d where e.deptno(+)=d.deptno;(这时oracle数据库独有的写法)




原文地址:https://www.cnblogs.com/HUCHEN/p/9979654.html

时间: 2024-12-20 22:40:54

oracle多表查询(二)的相关文章

oracle系统表查询

oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查询本用户的表,视图等select * from all_col_comments --查询所有用户的表的列名和注释.select * from user_col_comments -- 查询本用户的表的列名和注释select * from all_tab_columns --查询所有用户的表的列名等信息

Oracle锁表查询和解锁方法

数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remove DQL:数据库查询语言,关键字:select oracle表在什么情况下会被锁住 DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL

oracle 字典表查询

1.oracle 字典表查询 /*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/ select username,user_id,created from all_users; /*查看当前用户的用户详情*/ select username,user_id,account_status,lock_date,expiry_date,default_tablespace,temporary_tablespace,created,init

oracle 多表查询

oracle 多表查询  1对多    多个数据放到一个字段内 select  id,zhzxm,fzhzxm,ltrim(max(sys_connect_by_path(xm, ',')), ',') xm from ( select id,zhzxm,fzhzxm,xm,row_number() over(partition by id order by lrsj) rn  --标记相同的字段 from (select t2.id id,t2.zhzxm zhzxm,t2.fzhzxm fz

oracle 表查询(二)

1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or job = 'MANAGER') and ename like 'J%'; 2.使用order by字句 默认asc问题:如何按照工资从低到高的顺序显示雇员的信息?select * from emp order by sal;问题:按照部门号升序而雇员的工资降序排列select * from emp or

oracle 表查询二

1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or job = 'MANAGER') and ename like 'J%'; 2.使用order by字句 默认asc问题:如何按照工资从低到高的顺序显示雇员的信息?select * from emp order by sal;问题:按照部门号升序而雇员的工资降序排列select * from emp or

七、oracle 表查询二

1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写的J?select * from emp where (sal > 500 or job = 'MANAGER') and ename like 'J%'; 2.使用order by字句 默认asc问题:如何按照工资从低到高的顺序显示雇员的信息?select * from emp order by sal;问题:按照部门号升序而雇员的工资降序排列select * from emp or

Oracle 多表查询(1)

一.基本概念 多表查询的语法如下: SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名] ,-]FROM 表名称 [别名], [表名称 [别名] ,-][WHERE 条件(S)][ORDER BY 排序字段 [ASC|DESC] [,排序字段 [ASC|DESC] ,-]]; 但是如果要进行多表查询之前,首先必须先查询出几个数据 -- 雇员表和部门表中的数据量,这个操作可以通过COUNT()函数完成. 范例:查询emp表中的数据量 --返回了14条记录 SELECT C

oracle之sql查询二

此文章为http://huangsir007.blog.51cto.com/6159353/1854818该片的后续 关于数据库语言查询: SQL> show parameter nls_language; NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ nls_languag

ORACLE数据库常用查询二

ORACLE数据库常用查询 1.查看表空间对应数据文件情况: SQL> SELECT TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 MB,AUTOEXTENSIBLE FROM DBA_DATA_FILES; TABLESPACE_NAME FILE_NAME MB AUTOEXTENSIBLE ------------------------------ ---------------------------------------------------