oracle 學習碎碎念

oracle 學習入門,記錄學習過程中的知識點。

 

1. 位圖索引:應用於列中值有限量時,例如boolean型變量。 對於使用位圖索引列鎖定時,oracle會鎖定所有值爲此的行。

2. 使用變量比使用常量更節省資源。因爲使用常量,oracle每次在執行的時候,都要編譯,而使用變量,編譯一次後,存在庫緩存中,下次直接調用。而且使用常量更容易被“SQL注入”。

 

3.數據補全的sql: 表格中必須有4行數據,但是查詢結果只有一條數據,其他行以空數據填充:

select wonum,devicedescription,x.pow_ZXQK,rownum myno,x.*,y.l from
(SELECT t.*, lo.pow_zxqk, ROWNUM RN FROM wolockout  t left join WOTAGLOCK lo on t.lockoutid=lo.lockoutid
WHERE ROWNUM < 6 and lck02='DYP1' and t.wonum=lo.wonum and  t.wonum='1044' and t.wonum=lo.wonum  order by t.lockoutid asc) x,(SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 5) Y where X.RN(+) = Y.L

對於where X.RN(+) = Y.L 這一句比較迷惑,不懂什麼意思。。。。 將Y.L 替換爲具體數字也會出錯疑問

 

4. rownum的使用:ROWNUM是對結果集加的一個僞列,即先查到結果集之後再加上去的一個列 (強調:先要有結果集)。簡單的說 rownum 是對符合條件結果的序列號。它總是從1開始排起的。所以你選出的結果不可能沒有1,而有其他大於1的值。 假設某個表 t1(c1) 有 20 條記錄如果用 select rownum,c1 from t1 where rownum < 10, 只要是用小於號,查出來的結果很容易地與一般理解在概念上能達成一致,應該不會有任何疑問的。可如果用 select rownum,c1 from t1 where rownum > 10 (如果寫下這樣的查詢語句,這時候在您的頭腦中應該是想得到表中後面10條記錄),你就會發現,顯示出來的結果要讓您失望了,會是一個空集。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章