前一段時間了解到的,今天有空寫下,備忘~
先來說說橫表和縱坐表的概念,先來看看以下兩圖:
第一張圖就是橫表,一行表示了乙個實體記錄,這就是我們傳統的設計表的形式
第二張圖就是縱表,他的一行記錄,是用於表示某個學生的屬性名和屬性值對應關係,像這邊有兩個屬性(名字和性別),在縱表中就要用兩條記錄來表示乙個學生。
從上面可以觀察出,橫表的好處是清晰可見,一目了然,但是有乙個弊端,如果現在要把這個表加乙個字段,那麼就必須重建表結構。對於這種情況,在縱表中只需要新增一條記錄,就可以新增乙個字段,所消耗的代價遠比橫錶小,但是縱表的對於資料描述不是很清晰,而且會造成資料庫數量很多,兩者利弊在於此。所以,應該把不容易改動表結構的設計成橫表,把容易經常改動不確定的表結構設計成縱表。
在實際開發中,經常需要互相轉換橫表和縱表的形式,這裡貼個從縱表資料轉成橫表顯示的形式。?
縱表轉橫表
1
2
3
4
select
student_no,
max
(decode(field_name,
'student_name'
,field_value))
as
student_name,
max
(decode(field_name,
'student_***'
,field_value ))
as
student_***
from
cuc_student_y
group
by
student_no;
Oracle橫表轉縱表
現有 scott 使用者下的 emp和 dept表 empempno number 4 ename varchar2 10 jobvarchar2 9 mgrnumber 4 hiredate date salnumber 7,2 comm number 7,2 deptno number 2 de...
Oracle 橫表和縱表
前一段時間了解到的,今天有空寫下,備忘 先來說說橫表和縱坐表的概念,先來看看以下兩圖 第一張圖就是橫表,一行表示了乙個實體記錄,這就是我們傳統的設計表的形式 第二張圖就是縱表,他的一行記錄,是用於表示某個學生的屬性名和屬性值對應關係,像這邊有兩個屬性 名字和性別 在縱表中就要用兩條記錄來表示乙個學生...
Oracle橫表 縱表一點記錄
橫表就是普通的建表方式,如乙個表結構為 主鍵 欄位1 欄位2 欄位3。如果變成縱表後,則表結構為 主鍵 字段 字段值。而字段 則為字段1 欄位2 欄位3。縱表對從 資料庫到記憶體的對映效率是有影響的,但細一點說也要一分為二 縱表的初始對映要慢一些 縱表的變更的對映可能要快一些,如果只是改變了單個欄位...