在刪除一個表中的全部數據時
having 子句對 group by 子句所確定的行組進行控制
外部聯接
用外聯接提高表連接的查詢速度
在作表連接(常用於視圖)時
SELECT PAY_NO
FROM A
WHERE A
NO FROM B WHERE VALUE >=
SELECT PAY_NO
FROM A
WHERE A
AND B
AND B
在執行大事務時
ORA
這說明oracle給此事務隨機分配的回滾段太小了
set transaction use rollback segment roll_abc;
delete from table_name where
commit;
回滾段roll_abc被指定給這個delete事務
在利用import進行數據庫重建過程中
imp jfcl/hfjf@ora
imp jfcl/hfjf@ora
commit=Y ignore=Y
第一條命令輸入所有數據庫結構
select a
(select empno from emp
倘若利用外部聯接
select a
where a
and b
and b
可以發現
CREATE TABLE b
AS SELECT * (可以是表a中的幾列)
FROM a
WHERE lumn =
法一: 用Group by語句 此查找很快的
select count(num)
group by num
having count(num) >
delete from student(上面Select的)
這樣的話就把所有重復的都刪除了
法二:當表比較大(例如
SELECT * FROM EM
WHERE ROWID!=(SELECT MAX(ROWID) FROM EM
WHERE EM
EM
DELETE FROM EM
WHERE ROWID!=(SELECT MAX(ROWID) FROM EM
WHERE EM
EM
取得某列中第N大的行
select column_name from
(select table_name
where rank = &N
假如要返回前
select * from tablename where rownum<
假如要返回第
select * from tablename
where …
and rownum<
minus
select * from tablename
where …
and rownum<5
order by name
選出結果後用name排序顯示結果。TW.wInGwiT.cOM(先選再排序)
注意:只能用以上符號(<、<=、!=)。
select * from tablename where rownum != 10;返回的是前9條記錄。
不能用:>,>=,=,Between...and。由於rownum是一個總是從1開始的偽列,Oracle 認為這種條件 不成立,查不到記錄.
另外,這個方法更快:
select * from (
select rownum r,a from yourtable
where rownum <= 20
order by name )
where r > 10
這樣取出第11-20條記錄!(先選再排序再選)
要先排序再選則須用select嵌套:內層排序外層選。
rownum是隨著結果集生成的,一旦生成,就不會變化了;同時,生成的結果是依次遞加的,沒有1就永遠不會有2!
rownum 是在 查詢集合產生的過程中產生的偽列,並且如果where條件中存在 rownum 條件的話,則:
1: 假如 判定條件是常量,則:
只能 rownum = 1, <= 大於1 的自然數, = 大於1 的數是沒有結果的, 大於一個數也是沒有結果的
即 當出現一個 rownum 不滿足條件的時候則 查詢結束 this is stop key!
2: 當判定值不是常量的時候
若條件是 = var , 則只有當 var 為1 的時候才滿足條件,這個時候不存在 stop key ,必須進行 full scan ,對每個滿足其他where條件的數據進行判定
選出一行後才能去選rownum=2的行……
9.快速編譯所有視圖
---- 當在把數據庫倒入到新的服務器上後(數據庫重建),需要將視圖重新編譯一遍,因為該表空間視圖到其它表空間的表的連接會出現問題,可以利用PL/SQL的語言特性,快速編譯。
SQL >SPOOL ON.SQL
SQL >SELECT
COMPILE;
SQL >SPOOL OFF
然後執行ON
SQL >@ON
當然
SQL >SELECT
||TNAME||
SQL >SELECT
DECALRE
FILE_HANDLE UTL_FILE
BEGIN
FILE_HANDLE:=UTL_FILE
UTL_FILE
HELLO
UTL_FILE
END;
當想將數據庫文件移動到另外一個目錄下時
SVRMGR > connect internal;
SVRMGR > shutdown;
SVRMGR >exit;
#mv /ora
SVRMGR > connect internal;
SVRMGR > startup mount RUN
SVRMGR > alter database rename file
>
>
SVRMGR > alter database open;
表a 列 a
記錄
用select能選成以下結果:
下面有兩個例子
From:http://tw.wingwit.com/Article/program/Oracle/201311/18294.html