- 浏览: 2447 次
- 性别:
- 来自: 河北
最新评论
文章列表
1. ROWNUM是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,
依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
注意:一旦进行排序操作,ROWNUM发生变化
只能用子
查询
来实现先排序,
后
rownum
2.查找表中第一行记录:
select * from temp where rownum = 1;
注意:无法查到rownum = n(n>1的自然数)
3查找表中大于第n行记录:需要将rownum 起别名,实现由伪列变 ...
》》情景:库表中有多条重复数据,请用SQL实现删除一条保留一条。
--创建表SQL
create table TEMP (
ID number,--主键
name varchar2(50),
insert_date date
);
》》实现方式:
--查询出所有有重复的数据SQL
select ID,name,count(ID)
from TEMP
group by name,ID
having count(ID)>1
order by ID ;
若 主键不重复
--删除重复的数据,保留最小ID值的SQL
delete from TEMP where ...
1.游标是:
一种PL/SQL控制结构,相当于java中的Iterator ,它是指向结果集的指针。指向结果集第一条记录的前一条,每次fetch 都会向下移动下
游标并不是一个数据库对象,只是存留在内存中
2. 作用:方便对表的行数据逐条进行处理
---------------
--注意:fetch是下移动,%found是判断此行有无数据的--这是作为循环的跳出条件的,定要注意--for循环除外
---注意:%found 与%notfound的区别--%found是判断此行有没有数据,有的的时候执行;%notfound 判断当前行是否有数据,没有则停止执行
--在打开游标之前最 ...
存储过程
--可以理解为给匿名块起个名字,可以保存到数据库服务器上,方便以后的应用。
--预编译(已经编译好的)sql语句。
---oracle语句也是要先编译在运行的语言。所以说编译好了,就可以直接运行了,节约了再次编译的时间。
-------------------
写一个存储过程:
将pl/sql语句块改写成存储过程
1.将declare改成is 或者 as
2.加一个存储过程的定义头
create or replace procedure pro_名
is
//声明部分
begin
//执行部分
end;
查看过程,确保过程正确建 ...