SQL Server数据库的管理及维护
理論:
首先打開 SSMS(SQL server Management Studio)
使用SSMS可以實現好多功能:注冊服務器,連接到數據庫引擎,配置服務器的屬性,創建對象,管理文件和文件組,附加或分離數據庫,啟動數據庫腳本編寫工具,管理安全性
,查看系統日志等。
數據文件和事務日志文件組成,一個數據庫至少應該有一個 是數據文件和一個事務日志文件。
SQL server 數據庫具有 以下四種類型:
主數據庫文件:主數據庫文件包含數據庫的啟動信息,擴展名為.mdf
次要數據庫文件:除主數據庫文件以外的所有其他數據文件都是次要數據庫文件,擴展名為.ndf
事務日志文件:恢復數據庫所有事務日志的信息,每個數據庫必須有一個事務日志文件。擴展名為.ldf
文件流數據文件:可以使得基于SQL server 的應用程序能在文件系統中存儲非結構化的數據如:文檔,圖片等
數據文件由若干個64kb大下的區組成,每個區由8個8kb連續頁組成。
| 主數據文件 :文件 ID 01 |
| 頁 01:0000 | 頁 01:0001 | 頁 01:0002 | …………… | 頁 01:0511 |
?
| 次要數據文件 :文件 ID 02 |
| 頁 02:0000 | 頁 02:0001 | 頁 02:0002 | …………… | 頁 02:0127 |
實踐操作: 建刪改查?
1:創建數據庫
雙擊打開 SSMS(SQL server Management Studio)連接進去
新建數據庫
?
?
要合理估計數據庫的大小和增長值!擴展數據庫就是在這,屬性 彈出 數據庫屬性對話框
收縮數據庫:
分離數據庫是指數據庫從SQL Server 里移除,但是保證數據庫的數據文件和日志文件完好無損!
附加數據庫
?
確定就行了
刪除數據庫
?
數據庫表的管理
理論:
每一行代表一條唯一的記錄,每一列代表記錄中的一個字段。
數據完整性分為4類
1. 實體完整性 :特定表唯一實體
2. 域完整性: 指定項列的項的有效性
3. 引用完整性: 例如數據輸入或刪除,必須A里由得數據,b里才能引用修改
4. 用戶定義完整性: 約束和表及約束,存儲過程及觸發器
數據類型:精準數字,近似數字,日期和時間,字符串,Unicode字符串,二進制字符串,其他數據類型。
精準數字
| int | 主要整數數據類型,占4個字節空間 |
| bigint | 存儲整數值超過int數據類型支持范圍,占8個字節 |
| smallint | 存儲一些常限定的在特定范圍內的數值型數據,占用2個字節 |
| tinyint | 存儲有限數目的數值時很有用,占1個字節 |
| bit | 整數類型,其值只能是0,1,null,只有2中可能 |
| decimal | 用來存儲固定精度和范圍的數值型數據 |
| money | 用來表示錢和貨幣值,8個字節 |
| smallmoney | 用來表示錢和貨幣值,8個字節 |
| numeric | 用來存儲固定精度和范圍的數值型數據 |
近似數字
| float | 用于表示浮點數值數據的大致數值類型 |
| real | 用于表示浮點數值數據的大致數值類型 |
日期和時間
| date | 用來表示日期,占3個字節 |
| time | 用來表示一天中的某個時間,占5個字節 |
| datetime | 用來表示日期和時間,占8個字節 |
| Datetime2 | 比datetime 數值范圍更大,默認的小數精度更高 |
| dateimeoffset | 增加了時區 |
| smalldatetime 精確到一分鐘,占4個字節空間 |
字符串
| char | 存儲固定長度,最多包含8000個字符,非unicode字符數據 |
| varchar | 存儲可變長度,非unicode字符數據 |
| Text | 用于存儲大量的的非unicode字符數據 |
Unicode字符串
| nchar | 用于存儲定長Unicode字符數據 |
| nvarchar | 用于存儲定長Unicode字符數據 |
| ntext | 用于存儲定長Unicode字符數據 |
二進制字符串
| binary | 用于存儲可達8000字節長的定長的二進制數據,當輸入表的內容接近相同長度時 |
| Varbinary | 用于存儲可達8000字節長的定長的二進制數據,當輸入表的大小可變時用的 |
| image | 用于存儲變長的二進制數據 |
實踐操作:創建表
例子:某公司安裝SQL server 2008 企業版32位,現在需要在名為 test的數據庫中創建表,表名稱為 student 其中包含列為:學生編號(int) 姓名(nvarchar50),身份證號(varchar18)
所在班級(tinyint),成績(tinyint),備注(nvarchar2000)其中學生編號自動生成,從1開始,每增加一人則編號自動加1,要求輸入成績的時候,必須為0-100,設置身份證為主鍵。
?
?
設置主鍵
?
?
CHECK約束公式
Age >= 0 AND age <=200 值在0-200之間的數值
保存該表名字為 student
用T-SQL 語句操作數據表
插入數據
?
Insert[into]<表名> [列名] values <值列表>
?
?
然后點執行
?
更新數據,update (表名) set (列名=更新值)[where<更新條件>]
?
?
刪除數據
Delete from<表名>【where<刪除條件>】
?
?
使用Truncate table 語句刪除表中數據
Truncate Table <表明>
這時數據都沒了
實驗完成!
本文轉自 cs312779641 51CTO博客,原文鏈接:http://blog.51cto.com/chenhao6/1196447
總結
以上是生活随笔為你收集整理的SQL Server数据库的管理及维护的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++模板 —— 万字带你了解C++模板
- 下一篇: Python random模块(获取随机