以前學習sql的一點總結

iSQlServer發表於2009-07-13

總結一下以前對於sql的學習,給自己留下點東西。

1.三個正規化指導如何建表:(一個業務物件用一張表來存放)

  第一正規化: 設計表時,一個欄位存放一個獨立完整的資訊片,一個基本資訊單元放在一個欄位(欄位都是單一屬性的,不可再分)。

  第二正規化: 表中要有候選鍵,表中的一個欄位或多個欄位可以唯一確定表中的其他資訊。

  第三正規化: 不存在傳遞依賴。

2.事務:ACID(使用加鎖和日誌技術確保操作的不可分割性(要麼都執行成功,要麼都不執行))

  Atomic 事務不可分割性。

  Consistent 事務發生前和完成後,資料是合理,完整的。

  Isolated 事務涉及到的資料在執行過程中其他會話/執行緒是看不到的。

  Durable 事務對資料的改變時具有永續性的影響。

3.檢視:

  不能接收引數 

  遮蔽了資料庫中表的結構,保護了資料庫

  使用起來像一張表

建議在檢視上只做查的操作

4.主外來鍵的作用:

  候選鍵:一個欄位或多個欄位能夠唯一的確定表中的所有欄位

  主鍵:表中的一個或多個欄位的組合,唯一的標示表中的一行(在表中唯一的確定一條記錄)

  外來鍵:A表主鍵 也出現在B表中,那麼B表欄位叫做外來鍵

  外來鍵作用:保證資料完整性(外來鍵表中欄位必須在A表中)

5.儲存過程:(經過編譯了的,儲存在資料庫的一次執行的,批處理SQL語句)

  資料庫伺服器執行sql命令的順序:

A.檢查語法 B.編譯 C.優化 D.執行

  對於儲存過程A和B只執行一次,C只有在快取中沒有的時候才再次執行,其餘情況下,都只需要執行D。

優點:快,安全(可以賦許可權),寫一次可被很多客戶端應用程式訪問,減少客戶端程式設計的複雜性

兩句英文的說明,寫的不錯:

Clients donnot need to know anything about the database except the input and output structure of the stored procedure.

Changes can be made to database structures without breaking client code.

6.觸發機制:

  必須寄生/依賴於表,特點是自動執行 缺點:帶來的bug很難發現

  不接收引數和返回值,是特殊的儲存過程,當表中的內容發生改變時,由系統呼叫執行

7.幾個簡單的萬用字元:

  [嚴高]方括號 代表一個字元,要麼是嚴,要麼是高

   [^嚴]不是這個字元的

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

相關文章