以前學習sql的一點總結
總結一下以前對於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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習SSD4的一點總結
- sql loader的一點總結SQL
- sql語句學習總結SQL
- 學習git以及github自己的一點小總結:Github
- 學習mysql之後的一點總結(基礎)MySql
- sql load的一點小總結SQL
- PL/SQL學習筆記-總結SQL筆記
- [轉]sql load 的一點小總結SQL
- [轉]sql load 的一點小總結SQL
- sql load的一點小總結(轉)SQL
- Vue學習知識點總結Vue
- OC學習總結(一)
- 【MyBatis學習總結 (五),動態SQL】MyBatisSQL
- PG知識點學習總結圖
- 【java學習】java知識點總結Java
- 第一週學習總結
- oracle認證的學習總結(一)Oracle
- 2024.8.17及以前的總結
- 新學Node-JS的一點總結JS
- Python學習第一週學習總結Python
- 【Go學習】Go(Golang)知識點總結Golang
- 學習 CodeWhisperer 的一些總結
- 總結一下最近的Go學習Go
- RunLoop的一些學習與總結OOP
- Spring Cloud學習總結(一)SpringCloud
- shell基礎學習總結(一)
- MongoDB的學習總結MongoDB
- docker的學習總結Docker
- pandas的學習總結
- 學習總結
- Duplicate的一點總結
- ash的一點總結
- [Hadoop]以前整理的一份Hadoop學習指南Hadoop
- 一點總結
- JavaScript學習之零碎記憶點總結記錄(一)JavaScript
- JAVA學習-------第二週知識點總結Java
- EXTJs學習筆記(知識點總結)JS筆記
- Mysql學習總結(50)——Oracle,mysql和SQL Server的區別MySqlOracleServer