對rownum和rowid的理解

(1)rownum

關於rownum,可以看成是對已經查詢出來的結果加上的一個僞列。

在利用rownum進行去數據的時候,系統首先從所給的條件處檢索,是查詢到不符合rownum條件的記錄爲止,不符合條件就刪除,之後的記錄就緊跟上來,所以一般以後的記錄就都不會符合條件了。所以,對於rownum(直接利用的話)一般對於>,>=,between...and..一般查詢不到什麼結果。而對於這些情況,一般可以給rownum僞列取一個別名即可,因爲取一個別名時,別名就相當於該表的一個實是在在的普通列,這個列可以象平時一個使用。

注意:在利用rownum取中間數據時,也可以利用minus;不如就給rownum取別名,利用別名亦可。

(2)rowid

rowid 是在表中是物理存在的,表示記錄在表空間中的唯一位置id,在表中是唯一。一個表建立以後,它的rowid就已經全部確定(有數據庫系統決定一個表最多可以存儲多少條記錄。?)。

 (3)對三大範式的理解:

a.1NF

第一範式是對關係型數據庫的基本要求,如果不符合第一範式的基本要求,那麼就不是關係型數據庫。

第一範式是指數據庫表中的每一列都是不可分的基本數據項,每一列不能有多個值,即實體中的每一個屬性不能有多個值或者不能有重複的屬性。如果有重複的屬性要定義新的實體,新的實體和原實體構成一對多的關係。在第一範式中每一行只能包含一個實體的信息。例如:一個員工表中的義行記錄只代表一個員工的信息,同時,一個員工的信息在該數據庫表中也只能出現一次,如果一個員工有兩個電話的話,那麼可以再建立一個新的表,電話表。簡而言之,第一範式就是沒有重複的列。

b.2NF

第二範式是再滿足第一範式的基礎上要求,表中的每一條記錄或者行或者實體都可以別唯一的區分。例如,再員工表中可以給員工進行標號,來唯一的區分每一個員工。這個唯一的屬性被稱作主關鍵字或者叫做主鍵或者叫做主碼。

第二範式要求實體的主屬性必須完全依賴主關鍵字,所謂完全依賴是指不存在僅依賴主關鍵字一部分的屬性,如果存在,那麼要建立新的實體,新實體與原實體是一對多的關係。第二範式就是非主屬性非部分依賴於主關鍵字。

c.3NF

第三範式必須首先滿足第二範式,第三範式是指數據庫表中不能包含已經在其他數據庫表中已經包含的非主屬性。例如,每個部門信息表中都包含部門編號,部門名稱,部門簡介等,那麼再員工表中就沒有必要再包含部門名稱,部門簡介了。如果沒有部門信息表,那麼就要建立部門信息表,否則會有大量的數據冗餘。第三範式就是屬性不依賴於其它非主屬性。

 

出處:http://eegpp.blog.163.com/blog/static/7721795320091247210664/

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