oracle基本总结

一,算术运算符
 SELECT ename , sal *12 +1000 FROM emp WHERE deptno              = 30;
二, 排序
 select * from table where deptno = 20   order by sal desc;
ASC 升序
DESC 降序
三,联合查询
 select ename from emp   UNION  select dname from dept;
四, 内连接
 显式内连接
  SELECT  e.name , e.job , e.sal , d.loc from emp e   INNER JOIN  dept d ON e.deptno = d.deptno where d.dname = "research"
 隐式内连接
select   e.name , e.job , d.name , d.loc  from emp e ,dept d where e.deptno = d.deptno   AND  d.dname = "research";
五,外链接
 左外链接
  select e.name,e.job,d.name,d.loc from emp e  LEFT JOIN  dept d   ON  e.deptno = d.deptno;
右外链接
select e.name,e.job,d.name,d.loc from emp e  RIGHT JOIN  dept d   ON  e.deptno = d.deptnp;
六 , 完整外链接
 select e.name,e.job,d.name,d.loc from emp e   FULL JOIN  dept d   ON  e.deptno = d.deptno;
七,子查询
select ename from emp where sal > (select sal from emp where ename="allen");
单行子查询
 select ename from emp where sal > (select sal from emp where ename = "allen");
多行子查询
 select empno,ename,job,sal from emp where   sal > ANY (select sal from emp where depno = 30);
<ANY 小于最大值
>ANY 大于最小值
=ANY 等同于IN
<ALL 小于最小值
>ALL 大于最大值
多列子查询
select empno,ename,job,deptno from emp where ( ename,deptno)   IN ( select ename,deptno,from emp where deptno = 10); /*此句无实际意义,仅为说明*/
相关子查询
 select * from dept d where 2 <(select count(*) from emp where d.deptno = deptno);
/*count(*) 为统计函数*/
二,系统函数
  ABS 返回统一的绝对值
    ABS(-5) 结果为5
CEIL, FLOOR
   CELL 根据输入值返回一个数值,输入参数可以是非整数值,但返回结果大于等于输入参数的最小值
   CELL(5.1)  结果为 6
   CELL(-5.1)  结果为-5
FLOOR  返回一个小于等于给定十进制数的最大整数,与CELL相反
MOD
 返回一个数除以另一个数的余数
 MOD(14,12) 结果为 2
ROUND , TRUNC
两个相关的单值函数,ROUND根据给定的精度舍入数值
 ROUND(89.985 , 2) 结果为 89.90
 ROUND(89.985 , -1) 结果为 90
字符函数
CONCAT 函数将两个输入字符串合并成一个并返回结果
  COUNT("this is"," test");
  结果为: this is test
INSERT 函数用于确定一个字符串在另一个字符串中的位置,并返回一索引顺序值,指明改位置发现了要搜索的子串.
INSTR("AAABAABA","B") 结果为 4
INSTR("AAABAABA","B",1,2) 结果为 7
LOWER UPPER
LPWER 函数返回指定字符的小写形式
LPAD RPAD
LPAD 用于从左面填充指定的一种字符,填充完毕后返回字符串的长度
RPAD 用于从右面填充指定的一组字符
LTRIM RTRIM TRIM
 LTRIM 用于删除字符串左边的前缀字符,
SUBSTR
  SUBSTR 函数用于取得字符串的子串
REPLACE
REPLACE函数用于替换字符串的子串内容
日期时间函数
ADD_MOTHS
 将一个日期加上指定的月份,日期中的日将不变.
  ADD_MONTHS("30-4月-2013",1) 结果为: 31-5月 -13
NEXT_DAY 函数返回从实参日期开始,紧随其后的指定星期对应的日期.
 NEXT_DAY('2013-03-25','星期三')
         结果为 2013-03-27
转换函数
 TO_CHAR 将DATE 或 NUMBER 转换成字符串
 TO_DATE 将NUMBER,CHAR,VARCHAR2 抓换成DATE
 TO_NUMBER 将CHAR VARCHAR2 转换成NUMBER 
分组函数
  常用的分组统计函数有MAX MIN AVG SUM COUNT 完全指定分组的最大值,最小值,平均值,与总和的计算.
select   MAX(sal) max ,MIN(sal)  min from emp;
select   AVG(sal) avg,SUM(sal)  sum from emp;
select   COUNT(ename) 雇员数, COUNT(DISTINCT deptno)
from emp;
select deptno "部门号" , COUNT(ename) "雇员数", TRUNC(AVG(sal),2)"平均工资" from emp   GROUP BY  deptno;
HAVING 过滤
select deptno 部门号.COUNT(ename) 雇员数,TRUNC(AVG(sal),2) 平均工资
from emp GROUP BY deptno   HAVING TRUNC(AVG(sal),2)>2000;
数据操作
  insert into department(deptno,deptname,location) values(10,"市场一部","天津");
update  employee set salary = salary*1.1,hiredate = add_months(hiredate,-12) where deptno = 10;
delete from employee where deptno =(select deptno from department where deptname ='市场一部');
DML 事物操作
commit;
rlooback;
savepoint;

表对象
 create  table department(deptno number(2) not null primary key, deptname varchar2(20) not null);
drop  table department;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值