oracle資料庫查詢過後顯示所受影響的行數

2021-10-04 15:23:21 字數 2295 閱讀 5565

本文是在查詢過程中顯示受影響的行數,就是一共查出來幾條。適用於查詢的表的資料相當大的情況,上萬條。

在其他運算元據所返回的受影響行數,就是例如我修改一下,增加一下,刪除一下。這些對資料進行操作的。想要展示受影響行數有其他函式例如sql%rowcount

sql%rowcount用於記錄修改的條數,必須放在乙個更新或者刪除等修改類語句後面執行,select語句用於查詢的話無法使用,

當你執行多條修改語句時,按照sql%rowcount 之前執行的最後一條語句修改數為準。

除了這個以外還有其他「%」型別的函式,表達意思都不一樣。感興趣可以看看,我這裡就不會再這裡描述,只是提一下有這個東西!

rownum

oracle裡面的rownum偽欄位

它會在每乙個表裡面自動加上這個字段,在查詢過程中不加入這個字段,查詢不出來。

它的排序是根據資料增加進來的順序排序的。

它的,返回的第一行分配的是1,第二行是2,我們只需要查詢最後就可。

這個字段可以用於限制查詢返回的總行數,而且rownum不能以任何表的名稱作為字首,必須加入別名否則不顯示。

例:create table student (id int, name varchar2(100));

insert into sale values(11,『張一』);

insert into sale values(12,『張二』);

insert into sale values(13,『張三』);

insert into sale values(11,『張二』);

上面這張學生表,如果查詢出來就是這樣:

select * from student

id    name

11    張一

12    張二

13    張三

11    張一

加上rownum偽字段後:

select rownum,s.* from student s

rownum    id    name

1              11    張一

2              12    張二

3              13    張三

4              11    張一

如果想取第一行,第二行資料:

select rownum,* from student where rownum=1;

rownum    id    name

1              11    張一

第二行:

select rownum,* from student where rownum=2;

rownum    id    name

想找第二行以後的資料就需要用到子查詢:

select * from(select rownum no ,* from student) where no>2;

no   id   name

3    13    張三

4    11    張一

經過上面兩條語句證明,想找第一行以後的資料也可以用這個公式:

rownum1的自然數)

解決了查詢問題就來看看排序問題:

rownum和排序

oracle中的rownum的是在讀寫資料的時候產生的序號,所以想對指定排序的資料去指定的rowmun行資料就必須注意了。

例:select rownum ,* from student order by id desc;

rownum    id   name

3              13    張三

2              12    張二

1              11   張一

4              11    張一

以上這種情況可以看出,rownum並不是按照id列來生成的序號。系統是按照記錄插入時的順序給記錄排的號,rownum也是順序分配的。為了解決這個問題,必須使用子查詢,我這裡使用了name列排序,因為id列排序會根據優先順序一直以id列排序,想要實現rownum排序得找乙個優先順序不高的如下:

select rownum ,* from (select * from student order by name);

rownum    id   name

1              11    張一

2              12    張二

3              13    張三

4              11    張一

這樣就成了按name排序,並且用rownum標出正確序號(有有小到大)!

Oracle資料庫查詢

取得該使用者下所有的表 select from user tables 取得表名為classinfo的注釋資訊 select from user tab comments where table name classinfo 取得該使用者下表名為classinfo表的結構 select from u...

Oracle跨資料庫查詢

工作中需要從乙個資料庫中的表 gis weichai data 1s 中的資料匯入到另個一資料庫的表 gis weichai data 1s 中,資料庫伺服器都是遠端的 分別為 221.131.228.256 211.161.192.46 我的實現方法是在本地使用 pl sql 操作兩個遠端伺服器,...

oracle資料庫效能查詢

作為乙個開發 測試人員 或多或少都得和資料庫打交道,而對資料庫的操作歸根到底都是 sql語句,所有 操作到最後都是 運算元據 那麼對 sql效能 的掌控又成了我們 工作中一件非常重要的工作。下面簡單介紹下 一些檢視oracle 效能的一些實用方法 1 查詢每台機器的連線數 select t.mach...