1.pl/sql基本语句 DECLARE BEGIN END; / 循环语句 DECLARE I NUMBER(2):=1; BEGIN WHILE I<100 LOOP I:=I+1; END LOOP; END; / DECLARE I NUMBER(2):=1; BEGIN LOOP EXIT WHEN I<100; I:=I+1; END LOOP; END; / 判断语句 DECLARE I NUMBER(2):=1; BEGIN IF I>2 THEN .... E…
注释:为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的 oracel的高级用法:rank()/dense_rank() over(partition by ...order by ...) 现在客户有这样一个需求,查询每个部门工资最高的雇员的信息 方法一:常用方法 select e.ename, e.job, e.sal, e.deptno from scott.emp e, (select e.deptno, max(e.sal) sal from scott.e…
http://www.cnblogs.com/chen1388/archive/2010/07/06/1771919.html decode函数: decode(aa, 1, 'xs', 2, 'ps', 'ms') 相当于 (case aa when 1 then 'xs' when 2 then 'ps' else 'ms' end) http://www.cnblogs.com/chen1388/archive/2010/07/06/1771930.html trunc函数,截断函数 fo…
场景 01 (IN 语句 排序 decode() 函数): 1,我们在查询中会经常使用这样的用法, select * from table_name t where t.id in (1, 3, 7, 9),这是一条查询表中 id 为 1, 3, 7, 9 的数据现在我们加上一个需求, 要求查出来的数据的顺序和 括号内 id 的 顺序一致,有人会说直接 order by t.id 啊,多简单,那假设顺序是乱的呢?又假如 id 不是数字,而是字符串呢? 如 select * from table…
复习 1.多表查询 2.navicat 3.pymysql 1.视图 ***(是一个虚拟表,非真实存在的) 引子 select * from emp left join dep on emp.dep_id = dep.id union select * from emp right join dep on emp.dep_id = dep.id; create view temp(emp_id,emp_name,salary,dep_id,dep_id2,dep_name,work) as se…
基本group by用法 create table test_table(a varchar(20),b varchar(20),c varchar(20)) insert into test_tablevalues(1,'a','甲')insert into test_tablevalues(1,'a','甲')insert into test_tablevalues(1,'a','甲')insert into test_tablevalues(1,'a','甲')insert into te…
高级排序函数: [ ROW_NUMBER()| RANK() | DENSE_RANK ] OVER (partition by xx order by xx) 1.row_number() 连续且递增的数字 1 2 3 4 row_number() over (partition by xx order by xx ) --学生表中按照所在专业分组,同专业内按成绩倒序排序,成绩相同则按学号正序排序,并给予组内等级select row_number() over(partition b…
为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的. Oracle中的select语句可以用start with ... connect by prior ...子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: select ... from where <过滤条件,用于对返回的所有记录进行过滤>start with <根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树>connect by [prior…
标题说是高级篇,其实也就是相对于基础篇来说的,也不是很深奥,自己平时工作中也都会用到,这里回忆的并不是特别冷门的知识,不要掉以轻心,以为“高级”就觉得工作中不会用到了. 一.select into 和 insert into select 两种表复制语句 create table <new table> as select * from <exists table>,要求目标表不存在. insert into table2(f1,f2,...) select v1,v2,....…
路飞:" 把原来CSDN的博客转移到博客园咯!" 前段时间,自己负责的任务中刚好涉及到了组织关系的业务需求,自己用了oracle递归查询.下面简单来举个例子.在工作中我们经常会遇到有一定组织关系层次的关系.比如某个省下有多少市,每个市下又有多个区.再或者公司组织部门相互的隶属关系.这时我们就可能会用到 start with connect by prior 递归查询了 用法举例 1. 基本sql语法: select ... from + 表 start with …
回顾 多表关联查询的方式 内连接 根据AB表关联的条件进行过滤查询,只保留满足条件数据 Select * from a,b where a.xxx=b.xxx; Select * from a inner join b on a.xxx=b.xxxx inner join c on a.xxxx=c.xxxx 外连接 左外连接 以左表为驱动表,根据AB表关联的条件进行过滤查询,保留满足条件的数据,以及左边表的所有记录显示 Select * from a left join b on a.xxx=…
--MINUS去差集,取第一个集合有的而第二集合没有的,并以第一个字段排序select t.bumenbm from T_HQ_BM t minus select b.bumenbm from t_hq_bm2 b --INTERSECT 取交集,取两个集合都有的,并按第一个字段排序 select t.bumenbm from T_HQ_BM t intersect select b.bumenbm from t_hq_bm2 b --UNION去重合并,去重复记录,并按第一个字段排序 sele…
--内连接--select t.*,b.bumenmc from T_HQ_RYXX t,t_hq_bm b where t.bum = b.bumenbm--select * from t_hq_ryxx t join t_hq_bm b on t.bum in b.bumenbm --自连接--select * from t_hq_ryxx a,t_hq_ryxx b where a.bum in b.bum and a.xingb = 2; --左连接--select * from t_h…
参照下面的sql语句. SQL> SELECT * FROM UserInfo; NAME CHINESE -------------------- ---------- ZhangSan 60 SQL> update UserInfo set CHINESE=50||CHINESE; 1 row updated. SQL> SELECT * FROM UserInfo; NAME …