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