oracle學習筆記零碎(三)

eBusinessMan發表於2015-03-16

1.       Oracle不贊成刪除資料檔案,一般如果整個表空間都沒用的話,則將整個表空間都drop掉!

2.       現在的話,開始思考:什麼時候用alter system,alter datebase,alter tablespace??有無規律?

3.       在歸檔模式下,每當發生一次日誌切換,都會歸檔一次

4.       究竟recover datafile # 時做了什麼??是藉助歸檔日誌和聯機日誌來recover的嗎?為什麼資料庫某個資料檔案順壞後,隨便很久前備份的對應的dbf字尾的檔案替換原順壞檔案後再recover datafile @ 就可以alter database open成功???!!!

5.       為什麼select file#,error from v$recover_file;會報錯:”缺失表示式??似乎只有當把所有的欄位都一起查詢時才能成功???

6.       即使資料檔案不存在,它也是online的,為什麼??

 

7.       使用resetlogs,將導致online logs裡的內容丟失,並且所有的備份失效,僅當online logs 隨壞的情況下,才使用resetlos模式。

8.       其實資料庫中的實體其實和java中的類是一個意思,都是一個實體物件,然後裡面封裝了好多屬性。所以有時候可以考慮使用一個封裝了表中所有屬性的類來表示表中的一條記錄。

49.SQL語句的學習要點

1.DMLDQL語句中,都任何field或者關鍵字或者表名,都可以隨意大小寫,oracle都可以識別。例如:SeleCt naMe,nO from t_StudEnT where No=23;

seLect Segment_Name from user_segmEnts where Segment_nAme='TEST1';

但是要注意物件的名稱在oracle的一些user_segments表中儲存為大寫的!!

但是建議:關鍵字大寫,其他語法元素都是(列名,表名等)小寫。

2.查詢所有列時,* 的效率性真沒有寫出所有列名的查詢方法

3.oracle中是NUMBER,沒有int.

4.DQL中,列名的別名有時候要使用雙引號引起來:1.別名中有空格,2.別名如果要區分大小寫

5.DQL語句目標列中的常量字串必須要用單引號‘’引起來。

    例如:SELECT ‘總數是:’,count(*) from user_segments;

6.使用 || 運算子將查詢的目標列或目標表示式連線起來

    SQL> select '總數是:'||count(*)  from  user_segments;

 

'總數是:'||COUNT(*)

------------------------------------------------

總數是:15

7.一直有個誤區得端正:distinct修飾的不是就近的一個目標列,而是整個查詢結果記錄!!使用distinct是指結果集中記錄不重複(每一條記錄都不完全相同);

8. ORDER BY 語句預設按照升序對記錄進行排序。但要多列排序時,就在order by字句中分別針對欄位設定排序方式:

    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

    select blocks,extents,initial_extent from user_segments order by blocks,extents;預設先blocks升序的前提下,extents升序。

9.       全域性臨時表:不同使用者之間不可見,同一使用者的不同session之間可見但資料獨立;

10.    全域性臨時表 預設是on commit delete rows;就是基於transaction的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1461696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章