Oracle中几个典型的关于函数查询_3月5日
一、在不知道部门“SALES”的部门编号的情况下,查出此部门的所有员工姓名。
select e.ename
from emp e
where e.deptno=(select deptno from dept where dname='SALES');
2、查询出月薪高于公司平均月薪的所有员工编号,姓名,所有部门编号,部门名称,上级领导名,以及
他的工资等级。
SELECT
e.empno,e.ename,e.deptno,d.deptno,d.dname,e1.ename,s.grade
from emp e,emp e1,dept d,salgrade s
where e.mgr=e1.empno(+) and e.deptno=d.deptno and e.sal between s.losal and s.hisal and
e.sal>(select avg(sal) from emp);
3、查询出与"SCOTT"从事同一工作的所有员工及部门名称。(不包括scott,用<>也可以)
select e.ename,d.dname from emp e,dept d where job=(select job from emp where
ename='SCOTT') and e.deptno=d.deptno and e.ename!='SCOTT';
4、查询出月薪等于部门30中员工的月薪的所有员工姓名和月薪。
select e.ename,e.sal from emp e where e.sal in (select sal from emp where deptno=30) and deptno!=30;
5、查出月薪高于部门30工作的所有员工月薪的,员工姓名,部门名。
All(查询语句):>最大值,<最小值
in() 再这个范围内有没有
any()比里面最小的大,比最大的小;
SELECT
e.ename,d.dname
from
emp e,dept d
where e.sal>(select max(sal) from emp where deptno=30) and e.deptno=d.deptno and e.deptno<>30;
6、查询出每个部门名,员工总数,平均工资,平均服务年限。
month_between(sysdate,e.hiredate)/12
//两个时间差多少个月/12是差多少年
select d.dname,count(e.empno),avg(e.sal),avg(months_between(sysdate,e.hiredate)/12)
from emp e,dept d
where e.deptno(+)=d.deptno
group by d.dname;
相关文档:
实例名(instance_name),一个用于数据库和操作系统之间通信的标志,数据库和操作系统之间要进行交互用的就是实例名,实例名可以和数据库名相同,一会再说数据库名,一般一个数据库名对应一个实例名,一对一关系,但在oracle的集群应用中,数据库名和实例名就是一对多的关系了。
查看实例名:sele ......
物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。
1、物化视图的类型:ON DEMAND、ON COMMIT
&n ......
create or replace procedure pro_insert_dbms
is
cid number;
cid_DDL number;
selectsql varchar2(1000);
ddlsql varchar2(1000);
row_count number;
nofrows integer;
lrowid & ......
Oracle学习笔记二存储
——通过与SqlServer对比学习
存储
在SqlServer中,我们可以为一个数据库指定一组文件。数据存储在这些文件中。
& ......
先假设有这么一个表:
create
table
S_Depart (
DepartId
INT
& ......