去年買了一本講SqlServer的書,這幾天把這本塵封已久的書拿了出來,準備按照上面的目錄擼一遍。 簡單的看了下這本書的目錄結構,一共是九個部分 資料庫安裝 建立資料庫和處理數據 高級T SQL T SQL編程 企業數據管理 SQL Server安全 監視和審計 性能調整和優化 商業智能 資料庫文件 ...
去年買了一本講SqlServer的書,這幾天把這本塵封已久的書拿了出來,準備按照上面的目錄擼一遍。
簡單的看了下這本書的目錄結構,一共是九個部分
- 資料庫安裝
- 建立資料庫和處理數據
- 高級T-SQL
- T-SQL編程
- 企業數據管理
- SQL Server安全
- 監視和審計
- 性能調整和優化
- 商業智能
資料庫文件
軟體安裝對我來說已經駕輕就熟了畢竟已經工作有一段時間了,所以我非常偷懶的跳過了第一部分,從第二部分開始看起。(上一篇也說過,我只裝了sqlserver dev的資料庫引擎,其餘什麼機器學習呀,Python和R語言還有外部擴展什麼的一概沒裝)
建立資料庫說的就比較簡單了,首先說的是如何創建物理資料庫,其實就是創建資料庫的文件。
或許是原來玩的數據量都比較小,所以對資料庫文件也就沒有什麼要求和註意,看完關係資料庫設計和創建物理資料庫架構一章後對資料庫文件有了新的認識。
創建一個資料庫預設情況下會產生兩種文件,一種是資料庫文件擴展名為mdf,一種是日誌文件擴展名為ldf並且都在一個目錄下。
其實資料庫文件並不是只有mdf一種,還有一種資料庫從文件的擴展名是ndf。
即資料庫文件具有主從關係,一個資料庫有一個主文件(mdf)和多個從文件(ndf)。
這樣設計的原因我想到的場景是如果主文件被寫滿了,可以迅速創建一個從文件繼續存儲數據保證資料庫的增長。(感覺集群也能實現同樣的功能)
預設情況下預設情況下會有一個日誌文件(ldf)用於記錄資料庫事物日誌,這個日誌有可能是恢複數據庫的救命稻草日誌文件可以有多個沒有主從關係。
效率上並不推薦把資料庫文件和日誌文件放一起
文件組概念有點沒整明白,只知道主組存mdf和為分組的所有ndf理由是啥不知道。。。有時間再看一下
資料庫基本查詢流
基本操作無非就是資料庫的DML(增刪改查)操作,查詢除了簡單的select from where句式外我要註意到有一個去重操作distinctselect distinct columnname from table
可以有效去除查詢結果中重覆的數據。
還有就是CASE操作,case when thin else end name(別名)簡單使用對0 1判斷很有效,省去在記憶體中遍歷的環節,比如查性別 select sex case when '1' thin '男' else '女' end sexcase