【Sql Server】3.管理數據庫

1、數據庫組成
    表、視圖(對多個表中的數據進行組合)、存儲過程、觸發器、用戶與角色(在‘數據庫xx/安全性’下)、其餘數據庫部分數據庫


2、使用管理工具建立數據庫
1. 運行Microsoft SQL Server Management Studio
2. 建立數據庫:安全

wKioL1N-6peA8tlkAAEpnMCDUWo020.jpg

右鍵選中「數據庫」-->「新建數據庫」:服務器

wKioL1N-60KiFEu5AAFEsqttVKI983.jpg

    如上圖填寫「數據庫名稱」,「全部者」採用默認,「數據庫文件」中剛建立時數據庫的初始大小和日誌初始大小均可更改;自動增加:隨着數據的不斷增加,它會自動增加,點旁邊的屬性按鈕,能夠更改;路徑也可更改。「選項」中有更多的配置信息。
    單擊「肯定」即完成數據庫的建立,建立好的數據庫會建立出2個文件:數據庫文件(.mdf)和日誌文件(.ldf):
併發

wKioL1N-7iPiT3bkAABdoRKnwFw970.jpg


    數據庫新建好後,還可在屬性中修改某些設置:如上面新建好的數據庫xj,右擊選擇「屬性」,看到所設的「全部者」爲默認值即:數據庫設計

wKiom1N-8N7QX0q8AAEEWBlQvqE648.jpg


      如今指定‘全部者’爲一個本地用戶:NT AUTHORITY\SYSTEMide

wKiom1N-8YuxYmc0AAAiFIQJnUk958.jpg

    還能夠修改數據庫文件和日誌文件的‘初始大小’(根據對數據庫大小進行估計),「選項」下有更多的配置信息,其中排序規則:SQL Server 2008數據庫的排序規則,默認是中文環境(Chinese_PRC_CI_AS);恢復模式:定義數據庫備份與恢復的恢復模式。函數

wKioL1N-8oWyelqJAAIg7blbrD0554.jpg

    「文件組」下,數據庫文件都須要存放在一個文件組中,在執行數據庫備份,優化數據庫操做時很是有用。單擊「添加」能夠建立新的文件組。工具


3、使用語句建立數據庫
CREATE DATABASE database_name
[
    ON [PRIMARY]
    [(NAME=logical_name, FILENAME =’path’[,SIZE = database_size] [,MAXSIZE = database_maxsize] [,FILEGROWTH = growth_increment]
     )[, FILEGROUP=filegroup_name[(NAME = datafile_name, FILENAME =’path’ [,SIZE = datafile_size][ ,MAXSIZE =datafile _maxsize][ ,FILEGROWTH = growth_increment]
                                  )
      ]
    ]
]
[
    LOG ON
    [(NAME = logfile_name, FILENAME =’path’[,SIZE = logfile_size] [,MAXSIZE = logfile_maxsize] [,FILEGROWTH = logfile_increment]
     )
    ]
]優化

ON PRIMARY  指定須要關聯的數據庫的主文件,默認會將第一個建立的數據文件做爲主文件。
Name=logical_name 指定數據庫文件的邏輯名稱
FILENAME=’path’ 指定數據庫文件在磁盤上的位置
SIZE=database_size  指定數據庫文件的初始大小(MB/TB)
MAXSIZE=database_maxsize  指定數據庫文件的最大值,能夠不設置,默認爲不限制增加
FILEGROWTH=growth_increment 指定文件的增量,按%或MB
FILEGROUP filegroup_name 指定文件所屬的文件組
建立的數據文件能夠有多個
LOG ON 表示建立日誌文件
也能夠在聯機叢書中找到更詳細的語法說明spa

CREATE DATABASE 教務管理系統

ON

(

   NAME = 教務管理系統_DATA,

   FILENAME ='E:\DATA\教務管理系統_DATA.mdf',

   SIZE = 3MB,

   MAXSIZE =20MB,

   FILEGROWTH =5%

)

LOG ON

(

   NAME = 教務管理系統_LOG,

   FILENAME ='E:\DATA\教務管理系統_DATA.ldf',

   SIZE = 2MB,

   MAXSIZE =10MB,

   FILEGROWTH =1MB

)


4、查看數據庫狀態

    有三種方式:
    1.使用目錄視圖:即右鍵數據庫名,在屬性中查看,可看到數據庫文件的位置,文件組,當前數據庫文件的剩餘空間等。

    2.使用函數:查看數據庫的屬性取值狀況
select DATABASEPROPERTYEX('教務管理系統','Version')   --版本號
select DATABASEPROPERTYEX('教務管理系統','Recovery')  --數據庫恢復模式
執行結果:
661   【返回值說明:基本數據類型:int。版本號 = 數據庫處於打開狀態。NULL = 數據庫沒有啓動】
FULL  【返回值說明:基本數據類型:nvarchar(128)  FULL = 完整恢復模式  BULK_LOGGED = 大容量
日誌記錄模型   SIMPLE = 簡單恢復模式】
能夠從聯機叢書查看到這個函數包含的屬性

    3.使用系統存儲過程:在建立數據庫時,首先會調用SQL Server2008提供的模板數據庫,這個模板數據庫包含了一系列的存儲過程,利用這些存儲過程就能夠查看當前數據庫的狀態。

sp_helpdb  --能夠查看服務器上全部數據庫的主要狀態

執行結果:

wKioL1N--QbiD97bAAI5BA0AwRY796.jpg

    最後一列compatibility_level是SQL Server的兼容級別,SQL Server 2008建立的就是100,SQL Server 2005建立的就是90。


5、修改數據庫
1.界面操做修改數據庫:
    修改數據庫名:先右擊數據庫/重命名,修更名稱,這樣僅能更改數據庫名稱,並不會修改其數據文件和日誌文件的名稱,可右擊數據庫/屬性/‘文件’選項卡中修改‘邏輯名稱’,可是數據文件的路徑和物理存儲名稱是不能更改的。
    若是數據庫隨着使用的數據量愈來愈大,發現數據庫的設計不合理,還能夠修改數據庫的初始大小。若是不想改變原來的數據文件,則能夠添加一個數據文件。

wKioL1N--qzB97E-AAGLNVyugq0136.jpg

也能夠在‘選項’下修改‘恢復模式’。

2.T-SQL修改數據庫名:

alter database 教務管理系統 modify name=教務管理信息系統


6、刪除數據庫
    能夠右鍵刪除數據庫,在刪除時能夠設置圖下邊的刪除選項。
    用T-SQL語句刪除數據庫:

drop database 教務管理信息系統


7、分離和附加數據庫

    全部的企業都不會將全部的數據庫文件放在單一的服務器上,都須要將當前的數據庫文件複製幾份放在不一樣的地方來保證數據的安全性,可是數據庫在建立完成以後的運行過程當中是沒法複製數據庫文件的,因此要想將數據庫文件複製到另外的地方,另外的數據庫實例中運行的話,就須要使用特殊的操做:對數據庫進行分離和附加,來實現對當前的數據庫文件部署到不一樣的數據庫服務器上。

    分離數據庫就是指將數據庫從SQL Server 2008 的實例中分離出去,可是不會刪除該數據庫的文件和事務日誌文件,這樣,該數據庫能夠再附加到其餘的SQL Server 2008 的實例上去。
在下列狀態下沒法分離數據庫:

  • 已複製併發布數據庫。

  • 數據庫中存在數據庫快照。

  • 數據庫處於未知狀態。

    存在數據庫快照表示數據庫正在使用中,因此沒法分離,要想分離必須先刪除快照。

    附加數據庫是指將當前數據庫之外的數據庫附加到當前數據庫實例中。在附加數據庫時,全部數據庫文件(.mdf和.ndf文件)都必須是可用的。若是任何數據文件的路徑與建立數據庫或上次附加數據庫時的路徑不一樣,則必須指定文件的當前路徑。在附加數據庫的過程當中,若是沒有日誌文件,系統將建立一個新的日誌文件。

    直接複製xj的數據庫文件和日誌文件會被告訴數據庫正在使用,沒法複製,因此:右擊數據庫名xj/任務/分離:

wKioL1N_CHSS9-RgAAEpB7Hg2S8124.jpg

肯定後,在當前的‘數據庫’節點下就看不到這個已分離的數據庫了。

    如今就能夠將這個xj的數據庫文件和日誌文件複製到另外一個目錄了(E:\DATA1\下)。好比在另外一個數據庫實例下,右擊‘數據庫’/‘附加’:

wKioL1N_CTzBevNXAAGhJTusy8w217.jpg

肯定後就能夠看到數據庫被附加了進來。


8、收縮數據庫

    若是在設計數據庫時考慮到數據量很是多,而將數據庫設計得很是大,而在實際過程當中發覺要不了那麼大的數據庫容量,這時就須要將數據庫的尺寸收縮一下,因此要執行一下收縮操做。
爲了進行收縮操做,先將一數據庫demoxj初始大小設大,再進行收縮操做。

wKiom1N_ChujKrC5AACaOgQ8G8I870.jpg

右擊數據庫demoxj/任務/收縮/數據庫,對整個數據庫進行收縮:

wKiom1N_DAKRWwZAAAFTBZ7_Ax0442.jpg

收縮後再看demoxj的屬性:

wKioL1N_C_ewtZZbAACtNpX2VjY970.jpg

右擊數據庫demoxj/任務/收縮/文件,也能夠對某個數據庫文件進行收縮,好比對日誌文件進行收縮:

wKioL1N_DN6xS_5VAAGWiahSAMw118.jpg

肯定後,再看這個數據庫的屬性:

wKiom1N_DUzxjyiHAACo6RO0eGk289.jpg


9、數據庫快照

    數據庫中的數據是隨着操做不斷的變化,若是如今有個特定的需求,好比規定一個特定的時間點2012-1-1,查詢這個時間點以前的全部數據,有兩種方法:    備份與還原:可是還原後2012-1-1之後的數據就會被丟棄,這不是指望的。    數據庫快照:在某個時間點,對當前數據庫建立快照,包含全部數據的備份。

相關文章
相關標籤/搜索