第18章 使用視圖
可以把視圖想象成有以下限制的表來用:
1.視圖是虛擬表,它只包含使用時動態檢索數據的查詢。
2.視圖可以嵌套,可以利用其他的視圖來構建新的視圖。
3.許多DBMS限制在視圖中使用Order by子句
4.視圖不能索引,也不能有關聯的觸發器和默認值。
5.有些DBMS規定視圖是只讀的,只能檢索數據不能將數據寫回系統。當也有一下DBMS是這樣的,它不運行執行導致行不再屬于這個視圖的插入和更新。
最好的用之前查手冊.
創建語法:CREATE VIEW viewname AS SELECT...
第19章 使用存儲過程
存儲過程可以看成為了以后使用而預先定義好的一條或多條Sql語句的集合.
1.存儲過程的好處:
簡單:Sql語句封裝,避免重復編寫,可重復調用,修改方便。
安全:統一調用減少訛誤。
高效:通過編譯后的形式存儲,執行效率高。
2.存儲過程的不好處:
不統一:各個DBMS對存儲過程的使用語法和實現均不統一,破壞了系統的可移植性。復雜:相對SQL而言,更復雜,更需要經驗。
具體的還是看手冊來的實際。
第20章 控制事務處理
事務處理(transaction processing)用來維護數據庫的完整。這個日常開發中遇見的N多。
1.看看這幾個詞,transaction 事務,rollback 回滾,commit 提交 ,savepoint 保留點。說明一下savepoint,其他的不用多言了。
2.savapoint:事務處理過程中的臨時占位符(placeholder),你可以對它發布回退.
3.不是所有的都可以回退的,一般而言Insert,update可以回退,但是select(沒必要),create ,drop不能回退,但是事務處理中可以使用這些語句,但進行回退時,它們不被撤銷.
4.一般DBMS會隱含提交(implicit commit),即sql語句執行過程中,提交操作會自動執行。所以要顯示的聲明事務的開始和提交。
5.MS SQL 里面關于事務的例子,可以體會Savepoint的使用。
BEGIN TRANSACTION;
DELETE OrderItems WHERE order_num =12345;
SAVE TRANSACTION deleteDI;
DELETE Orders WHERE order_num =12345;
COMMIT TRANSACTION;
ROLLBACK TRANSACTION deleteDI;
第21章 使用游標
可以理解游標其實就是操作結構集的一種機制。
1.游標總是與一條T_SQL 選擇語句相關聯因為游標由結果集(可以是零條、一條或由相關的選擇語句檢索出的多條記錄)和結果集中指向特定記錄的游標位置組成。
2.游標主要用于交換式應用,其中用戶需要滾動屏幕上的數據并對數據瀏覽或操作。游標在客戶端和服務器會話期間存在,而Web開發中,應用服務器為數據庫客戶端而不是最終用戶,所以游標在web開發中用的不多,web開發多使用自己開發的功能來實現相關操作.
具體使用不通DBMS寫法不一樣,需要參考手冊。
第22章 了解高級SQL特性
1.約束,常見的約束有這些,主鍵,外鍵,唯一約束等。
2.唯一約束與主鍵的區別:一個表可以有多個唯一約束,但是表只允許一個主鍵;唯一約束可以有Null,唯一約束可以修改或更新,唯一約束的值可以重復使用,唯一約束不能用來定義外鍵.
3.檢查約束,用來限制列中可保存的數據的類型。
一個例子:
CREATE TABLE OrderItems (
...
quantity INTEGER NOT NULL CHECK (quantity > 0),
...
);
4.索引,老朋友了。有些要注意的地方
a.索引改善檢索操作的性能,但是會降低數據插入,修改和刪除的性能。
b.索引數據可能占有大量的存儲空間.
c.選擇索引列的條件:該列的唯一性要求比較好,重復值比較多的列不適合做索引;如果一個列經常數據過濾或者排序,可以考慮索引來優化性能.
d.一個表可以有多個索引列.
5.觸發器,特殊的存儲過程,它在特定的數據庫活動發生時自動執行.但是注意觸發器的效率不如約束快。
到這里《SQL必知必會》就完了。內容比較簡單.
平凡而簡單的人一個,無權無勢也無牽無掛。一路廝殺,只進不退,死而后已,豈不爽哉!
收起對“車”日行千里的羨慕;收起對“馬”左右逢緣的感嘆;目標記在心里面,向前進。一次一步,一步一腳印,跬步千里。
這個角色很適合現在的我。
posted on 2007-11-28 18:54
過河卒 閱讀(1022)
評論(1) 編輯 收藏 所屬分類:
DataBase/Sql