`
yyangbb
  • 浏览: 36549 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

应该具备的Oracle基本功(1)

阅读更多

以下的文章,主要为大家在实际工作中提供一种解决方法。

---用户名:scott

---密  码:tiger

---*********Oracle表连接与子查询示例************

---求部门中哪些人的薪水最高

select ename,sal from emp  
join (select max(sal) max_sal, deptno from emp group by deptno) t  
on (emp.sal = t.max_sal and emp.deptno = t.deptno); 

---求部门平均薪水的等级

select deptno,avg_sal,grade from 
(select deptno,avg(sal) avg_sal from emp group by deptno) t  
join salgrade s on (t.avg_sal between s.losal and s.hisal); 

---求部门平均的薪水等级

select deptno,avg(grade) from 
(select deptno,ename,grade from emp join salgrade s on (emp.sal between s.losal and s.hisal)) t  
group by deptno; 

---雇员中哪些人是经理人

 

select ename from emp where empno in (select distinct mgr from  emp); 

 

---不用组函数,求薪水的最高值

select sal from emp where sal not in 
(select distinct e1.sal from emp e1 join emp e2 on (e1.sal < e2.sal)); 

---用组函数,求薪水的最高值

select max(sal) from emp;

 

---求平均薪水最高的部门的部门编号

select deptno , avg_sal from 
 (select avg(sal) avg_sal,deptno from emp group by deptno) t  
where avg_sal =  
 (select  max(avg_sal) from (select avg(sal) avg_sal,deptno from emp group by deptno) t); 

----组函数嵌套的写法

select deptno , avg_sal from 
 (select avg(sal) avg_sal,deptno from emp group by deptno) t  
where avg_sal =  
 (select  max(avg(sal)) from emp group by deptno); 

---求平均薪水最高的部门的名称

select dname from dept   
where deptno =  
(  
 select deptno from 
 (select avg(sal) avg_sal,deptno from emp group by deptno) t  
 where avg_sal =  
 (select  max(avg_sal) from (select avg(sal) avg_sal,deptno from emp group by deptno) t)  
); 

---求平均薪水的等级最低的部门的部门名称

  1. select avg(sal) avg_sal,deptno from emp group by deptno  

 

--部门平均薪水

select min(avg_sal) from 
(  
select avg(sal) avg_sal,deptno from emp group by deptno  

--平均工资的最小值

select avg_sal,deptno from  
(select avg(sal) avg_sal,deptno from emp group by deptno) t  
where avg_sal =  
(  
select min(avg_sal) from 
(  
select avg(sal) avg_sal,deptno from emp group by deptno  
)  

--平均工资的最小值及部门编号

select t.avg_sal,t.deptno,s.grade from   
(select avg(sal) avg_sal,deptno from emp group by deptno) t  
join salgrade s on (t.avg_sal between s.losal and s.hisal)   
where avg_sal =  
(  
select min(avg_sal) from 
(  
select avg(sal) avg_sal,deptno from emp group by deptno  
)  

--平均工资的最小值及部门编号和工资等级

select d.dname,t.avg_sal,t.deptno,s.grade from   
(select avg(sal) avg_sal,deptno from emp group by deptno) t  
join salgrade s on (t.avg_sal between s.losal and s.hisal)   
join dept d on (t.deptno = d.deptno)  
where avg_sal =  
(  
select min(avg_sal) from 
(  
select avg(sal) avg_sal,deptno from emp group by deptno  
)  

--平均工资的最小值及部门编号和工资等级及部门名称

----Another 按照题意的写法

select t1.deptno,t1.avg_sal,grade,d.dname from 
(  
select deptno,avg_sal,grade from 
(select deptno,avg(sal) avg_sal from emp group by deptno) t  
join salgrade s on (t.avg_sal between s.losal and s.hisal)  
) t1  
join dept d on (t1.deptno = d.deptno)   
where grade =  
(   
select min(grade) from 
(  
select deptno,avg_sal,grade from 
(select deptno,avg(sal) avg_sal from emp group by deptno) t  
join salgrade s on (t.avg_sal between s.losal and s.hisal)  
)  
); 

---创建视图或者表,如果没有权限

  1. conn sys/sys as sysdba; 

--已连接。

  1. grant create tablecreate view to scott; 

--授权成功。

---创建视图

create view v$_dept_avg_sal_info as 
  select deptno,avg_sal,grade from 
(select deptno,avg(sal) avg_sal from emp group by deptno) t  
join salgrade s on (t.avg_sal between s.losal and s.hisal); 

--视图已建立。

---创建这个v$_dept_avg_sal_info视图可以简化上面那个查询的重复代码

select t1.deptno,t1.avg_sal,grade,d.dname from 
v$_dept_avg_sal_info t1  
join dept d on (t1.deptno = d.deptno)   
where grade =  
(   
select min(grade) from 
v$_dept_avg_sal_info  
); 

---求比普通员工的最高薪水还要高的经理的名称

select max(sal) from emp where empno not in 
(select distinct mgr from emp where mgr is not null); 

--普通员工的最高薪水

select ename from emp   
where empno in (select distinct mgr from emp where mgr is not null)  
and sal >  
(  
select max(sal) from emp where empno not in(select distinct mgr from emp where mgr is not null)  
); 

--普通员工的最高薪水还要高的经理的名称

--- Oracle 联机归档日志 备份方式

---求薪水最高的第6名到第10名雇员(rownum)

select ename,sal from 
(select ename,sal,rownum r from 
(  
select ename, sal from emp order by sal desc 
)  
where r>=6 and r<=10; 

---五种约束条件

create table stu  
(   
id number(2),  
name varchar2(20) constraint stu_name_nn not null,--非空约束  
sex  number(2),  
age number(3),  
sdate date, 
grade number(3) default 1,  
class number(3),  
email varchar2(50),  
constraint stu_name_email_uin unique(name,email)--唯一主键  
) ;  
  
insert into stu(name,email) values('','tianyuexing@163.com'

--ORA-01400: 无法将 NULL 插入 ("SCOTT"."STU"."NAME")  

insert into stu(name,email) values('tianyuexing','tianyuexing@163.com');  

insert into stu(name,email) values('tianyuexing','tianyuexing@163.com');

--ORA-00001: 违反唯一约束条件 (SCOTT.STU_NAME_EMAIL_UIN) 

分享到:
评论

相关推荐

    Oracle服务器服务控制

    总的来说,掌握Oracle服务器服务的控制技巧是每个DBA必须具备的基本功,它不仅能提高工作效率,也有助于优化系统性能,保障数据库的安全稳定运行。通过熟练运用各种工具和命令,数据库管理员可以更好地应对各种运维...

    oracle 官方培训资料

    这些内容是Oracle数据库管理员和开发者的基本功,通过练习和解答可以帮助提升对数据查询和处理的能力。 "Review_L10_19&App_D11297GC20_response.doc"和"Review_L1_9_D11297GC20_response.doc"可能是课程复习资料,...

    Oracle.10g.Administration

    3. **SQL基础**:作为数据库管理员,掌握SQL是基本功,包括数据查询、数据插入、更新和删除,以及复杂的联接操作和子查询。 4. **数据库管理**:管理用户、权限和角色,理解身份验证、授权和审计机制,确保数据库的...

    oracle dba必备技能详解

    2. **SQL语言**:掌握SQL是DBA的基本功,包括DML(数据操作语言)如INSERT、UPDATE、DELETE,以及DDL(数据定义语言)如CREATE、ALTER、DROP等。此外,了解PL/SQL编程也是必要的,它允许创建复杂的业务逻辑和存储...

    Oracle+11g+官方中文文档集萃

    熟悉SQL语句和PL/SQL语法,是数据库开发人员的基本功。 4. **表和索引**:表是数据的主要存储结构,而索引则能加速查询速度。Oracle 11g提供了多种索引类型,如B树索引、位图索引、函数索引等,理解它们的使用场景...

    软件测试人员所需要具备的技能

    这是一个基本功。 在实际工作中,软件测试人员需要能够快速地部署应用系统和搭建测试环境,以便进行测试工作。因此,掌握操作系统和网络基础知识是非常必要的。这包括了解操作系统的基本概念、文件系统、进程管理、...

    oca 考试第二门LZ-007

    掌握SQL是任何数据库管理员的基本功,它能够有效地处理和分析数据。 2. 数据库结构:考生需要理解Oracle数据库的物理和逻辑结构,如表空间、段、区和块,以及如何创建和管理表、索引和视图。 3. 数据库安全:理解...

    软件测试必备技能,软测人员必备

    这项技能是测试人员的基本功之一,可以快速构建测试环境,进行系统部署测试。 二、编程语言知识 软件测试人员需要掌握多种编程语言,如C、C++、JAVA、C#、VB等,这些语言知识可以帮助测试人员设计测试用例、执行...

    android应用架构师职位描述与岗位职责任职要求.docx

    4.Android网络编程和数据库开发:安卓应用架构师需要熟识Android网络编程和数据库开发,并能基本功扎实,可以应对各种安卓复杂问题。 5. 团队合作和沟通能力:安卓应用架构师需要具备良好的沟通表达能力和团队合作...

    2022年JAVA工程求职信7篇.docx

    这些是JAVA开发的基本功。 2. **数据库操作**:了解并能操作数据库是必要的,如Oracle,需要熟悉SQL语句,能够进行数据查询、增删改查操作,并懂得JDBC连接数据库的方式。 3. **Web框架**:求职者应熟悉SSH...

    让天下没有难做的JVM.pdf

    JVM,全称为Java虚拟机(Java Virtual Machine),是运行Java字节码的虚拟机进程。...了解和掌握JVM的工作原理和调优技术,是每个Java开发者不可或缺的基本功,对于提升Java程序的性能和解决实际问题具有重要意义。

    信息系统部程序开发岗位职责.pdf

    其次,精通多种软件开发工具是程序开发人员的基本功。这包括但不限于编程语言(如Java、Python、C#等)、开发框架(如Spring、AngularJS等)、报表开发工具(如Crystal Reports、BIRT等)。这些工具的熟练运用能提高...

    计算机网络教育毕业鉴定 .doc

    网络硬件和网络协议的理解对于网络工程师而言是基本功。熟练掌握IP交换与路由技术、网络设计、网络分析、测试与优化等知识,可以帮助学生构建稳定和高效的网络系统。同时,学习如何设计和应用单片机,也能够增强学生...

    一个阿里工作4年java程序员的从业心得-写给还在迷茫的朋友.docx

    良好的文档编写能力是项目经理和设计人员的基本功。 4. **Linux系统**:熟悉Linux操作系统及其常用命令,是部署和管理项目所必需的技能,因为在实际生产环境中,Windows系统的应用相对较少。 5. **行业背景积累**...

    浅谈五年制高职软件技术专业建设

    1. **良好的编码能力**:这是软件工程师的基本功,直接关系到项目的开发效率。掌握至少一种主流编程语言(如C#、ASP.NET、JAVA等)是非常必要的。 2. **自觉的规范意识和团队精神**:在IT行业中,团队协作至关重要。...

    四级数据库工程师

    尽管时间已经过去,但其中包含的基础理论和核心技能仍然具有参考价值,尤其是在数据库设计原则、SQL语言、数据结构等方面,这些是所有数据库工程师必须掌握的基本功。 在深入理解“四级数据库工程师”的内涵之前,...

    Java程序员岗位需求分析及人才标准的研究.zip

    熟练掌握Java语法、类与对象、封装、继承和多态是Java程序员的基本功。此外,理解异常处理、集合框架(如ArrayList、LinkedList、HashMap等)以及IO流操作也是必不可少的。 二、Java开发框架 现代Java开发中,熟悉...

    java程序员面试资料

    1. **Java基础语法**:这是所有Java程序员必须掌握的基本功,包括变量、数据类型、运算符、控制流程(if/else,switch,for,while等)、类与对象、封装、继承、多态等。 2. **数据结构与算法**:理解数组、链表、...

    软件设计师真题 最全!!!!!

    2. **编程语言**:精通至少一种或多种编程语言是软件设计师的基本功。C++、Java、Python、JavaScript等都是常见考察点,真题可能会涉及语言特性、错误排查、性能优化等方面。 3. **软件工程**:理解软件开发的全...

    计算机专业毕业实习报告.pdf

    这些操作对于一个计算机专业毕业生来说是基本功,也是未来从事IT行业工作的重要技能之一。 7. 调试与异常处理 在代码中,实习生通过try-catch结构处理了可能出现的异常,这表明了实习生对错误处理和调试有基本的...

Global site tag (gtag.js) - Google Analytics