Oracle常用的查询和函数

----------------------------------------------------------------------------
--自连接
select worker.ename,boss.empno from emp worker,emp boss where worker.mgr=boss.empno;

--选出雇员名字为FORD的老板的名字
select worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno and worker.ename='FORD';
--如何显示和SMITH同一部门的所有员工
select * from emp where DEPTNO=(select DEPTNO from emp e where e.ename='SMITH');

---多列查询的时候显示办法
--查询与SMITH的部门和岗位完全相同的所有雇员    (多列模式----------------------)
select deptno,job from emp where ename='SMITH';

select * from emp where(deptno,job)=(select deptno,job from emp where ename='SMITH');
-------------------------------------------------------------------------------------------------------------------------------------
--在from子句中使用子查询
--如何显示(高于自己部门)平均工资的所有员工的信息
--:逻辑要清晰,分析
--1:首先要查询出各个部门的平均工资信息
    select deptno,avg(sal) from emp group by deptno;
--2:把上面的信息当做是一张表来处理
--3:指定查询列,只需要修改最里层的子查询就可以了
--4:如何排序,也只需要修改最里层的子查询就可以了

select e.*,avg_sal from emp e,(select deptno,avg(sal) as avg_sal from emp group by deptno)a where e.deptno=a.deptno and e.sal>avg_sal;

--创建表
create table myemp as select * from emp;
create table myemp1(eno,ename,sal) as select EMPNO,ename,sal from emp;

--修改scott的工资,岗位,奖金都和SMITH的工资,岗位,和奖金都一样
update emp set(sal,job,comm)=(select sal,job,comm from emp where ename='SMITH')where ename='SCOTT';
--事务的几个重要操作
--1:设置保存点
savepoint a1
--2:取消部分事务
rollback to a1;
--3:取消全部事务
rollback       
-------------------------------------------------------------------------------------------------------
--Oracle中的字符函数的应用
--1:lower(char):将字符串转化为小写的格式
--2:upper(char):将字符串转化为大写的格式
--3:length(char):返回字符串的长度
--4:substr(char,m,n):取字符串的子串
--要求:以首字母大写的方式显示所有员工的姓名:

select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) from emp;        
--要求:以首字母小写的方式显示所有员工的姓名:
select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;
--在做oracle的函数测试的时候可以使用dual表
select mod(10,3) from dual;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值