SQLServer數(shù)據(jù)庫的基本操作流程_第1頁
SQLServer數(shù)據(jù)庫的基本操作流程_第2頁
SQLServer數(shù)據(jù)庫的基本操作流程_第3頁
SQLServer數(shù)據(jù)庫的基本操作流程_第4頁
SQLServer數(shù)據(jù)庫的基本操作流程_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第三章--數(shù)據(jù)庫的基本操作3.1SQLServer數(shù)據(jù)庫的基本知識和概念3.2創(chuàng)建數(shù)據(jù)庫3.3管理數(shù)據(jù)庫3.4應(yīng)用舉例第三章目錄3.1.1SQLServer的數(shù)據(jù)庫SQLServer2005數(shù)據(jù)庫就是有組織的數(shù)據(jù)的集合,這種數(shù)據(jù)集合具有邏輯結(jié)構(gòu)并得到數(shù)據(jù)庫系統(tǒng)的管理和維護。SQLServer2005通過允許創(chuàng)建并存儲其他對象類型(如存儲過程、觸發(fā)器、視圖等)擴展了數(shù)據(jù)庫的概念。數(shù)據(jù)庫的數(shù)據(jù)按不同的形式組織在一起,構(gòu)成了不同的數(shù)據(jù)庫對象。數(shù)據(jù)庫是數(shù)據(jù)庫對象的容器。當連接到數(shù)據(jù)庫服務(wù)器后,看到的這些對象都是邏輯對象,而不是存放在物理磁盤上的文件,數(shù)據(jù)庫對象沒有對應(yīng)的磁盤文件,整個數(shù)據(jù)庫對應(yīng)磁盤上的文件與文件組,如圖3-1所示。數(shù)據(jù)、表、存儲過程、觸發(fā)器、視圖、規(guī)則、默認值、用戶定義數(shù)據(jù)類型、索引、權(quán)限、數(shù)據(jù)庫用戶、數(shù)據(jù)庫規(guī)則等對象數(shù)據(jù)庫日志文件數(shù)據(jù)文件數(shù)據(jù)、表、存儲過程、觸發(fā)器、視圖、規(guī)則、默認值、用戶定義數(shù)據(jù)類型、索引、權(quán)限、數(shù)據(jù)庫用戶、數(shù)據(jù)數(shù)據(jù)、表、存儲過程、觸發(fā)器、視圖、規(guī)則、默認值、用戶定義數(shù)據(jù)類型、索引、權(quán)限、數(shù)據(jù)庫用戶、數(shù)據(jù)庫規(guī)則等對象庫規(guī)則等對象圖3.1數(shù)據(jù)庫、數(shù)據(jù)庫對象及文件

3.1SQLServer數(shù)據(jù)庫的基本知識和概念第三章SQLServer2005是一種采用T-SQL語言的大型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。本章我們將學習創(chuàng)建并管理數(shù)據(jù)庫和文件組,掌握優(yōu)化SQLServer的技巧,并討論SQLServer存儲數(shù)據(jù)的方法。

要想熟練掌握管理SQLServer2005的技術(shù),我們就有必要理解掌握SQLServer2005數(shù)據(jù)庫的基本知識和概念。3.1.2SQLServer的事務(wù)日志

事務(wù)是一組T-SQL語句的集合,這組語句作為單個的工作與恢復的單元。事務(wù)作為一個整體來執(zhí)行,對于其數(shù)據(jù)的修改,要么全都執(zhí)行,要么全都不執(zhí)行。例如,帶兩個存折去銀行轉(zhuǎn)存,將A存折的2000元轉(zhuǎn)入B存折中,銀行工作人員將從A存折中取出2000元,然后將這2000元存入B存折中。這兩個操作應(yīng)該作為一個事務(wù)來處理,存與取的操作要么都做,要么都不做。否則,就會出現(xiàn)客戶不愿意接受的已取但未存的結(jié)果或者銀行不愿意接受的未取但已存的結(jié)果。第三章

事務(wù)日志是數(shù)據(jù)庫中已發(fā)生的所有修改和執(zhí)行每次修改的事務(wù)的一連串記錄。為了維護數(shù)據(jù)的一致性,并且便于進行數(shù)據(jù)庫恢復,SQLServer將各種類型的事務(wù)記錄在事務(wù)日志中。SQLServer自動使用預寫類型的事務(wù)日志。這就是說在執(zhí)行一定的更改操作之后,并且在這種更改寫進數(shù)據(jù)庫之前,SQLServer先把相關(guān)的更改寫進事務(wù)日志。

下面以刪除學生數(shù)據(jù)庫中學生基本信息表的某條記錄為例,介紹事務(wù)日志記錄更改數(shù)據(jù)的流程:(1)應(yīng)用程序發(fā)送刪除學生基本表中某一條記錄的請求。(2)在執(zhí)行更改的時候,將受到影響的頁面由磁盤調(diào)入內(nèi)存中。(3)在內(nèi)存中的數(shù)據(jù)更改之前,設(shè)置開始標記,將更改語句及數(shù)據(jù)記錄到事務(wù)日志中,設(shè)置結(jié)束標記(日志直接寫入磁盤)。(3)檢查點進程將所有完成的事務(wù)寫回磁盤數(shù)據(jù)庫,事務(wù)日志一直處于工作狀態(tài),審計多種事件信息。(4)如果發(fā)生系統(tǒng)故障,通過利用事務(wù)日志,自動恢復進程將向前展示所有已提交的事務(wù)。在自動恢復中,事務(wù)日志中的標記用來確定事務(wù)的起始點與終止點。當出現(xiàn)檢查點的時候,數(shù)據(jù)頁將寫入磁盤中。3.1.3SQLServer數(shù)據(jù)庫文件及文件組

1.SQLServer數(shù)據(jù)庫文件的三種類型數(shù)據(jù)庫文件是存放數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象的文件。一個數(shù)據(jù)庫可以有一個或多個數(shù)據(jù)庫文件,一個數(shù)據(jù)庫文件只屬于一個數(shù)據(jù)庫。SQLServer數(shù)據(jù)庫文件根據(jù)其作用不同,可以分為以下三種文件類型:(1)主要數(shù)據(jù)文件(primaryfile):用來存儲數(shù)據(jù)庫的數(shù)據(jù)和數(shù)據(jù)庫的啟動信息。主要數(shù)據(jù)文件是SQLServer數(shù)據(jù)庫的主體,其默認擴展名為“.mdf”,它是每個數(shù)據(jù)庫不可缺少的部分,而且每個數(shù)據(jù)庫只能有一個主要數(shù)據(jù)文件。主要數(shù)據(jù)文件中包含了其他數(shù)據(jù)庫文件的信息。實際的文件都有兩種名稱:操作系統(tǒng)文件名和邏輯文件名(T-SQL語句中使用)。(2)次要數(shù)據(jù)文件(secondaryfile):用來存儲主要數(shù)據(jù)文件沒有存儲的其他數(shù)據(jù),使用次要數(shù)據(jù)文件可以擴展存儲空間。如果數(shù)據(jù)庫用一個主要數(shù)據(jù)文件和多個次要數(shù)據(jù)文件來存儲數(shù)據(jù),并將它們放在不同的物理磁盤中,數(shù)據(jù)庫的總?cè)萘烤褪沁@幾個磁盤容量之和。次要數(shù)據(jù)文件的擴展名為“.ndf”。(3)事務(wù)日志文件(transactionlog):事務(wù)日志文件是用來記錄數(shù)據(jù)庫更新情況的文件,擴展名為“.ldf”,每個數(shù)據(jù)庫至少要有一個事務(wù)日志文件,事務(wù)日志文件不屬于任何文件組。凡是對數(shù)據(jù)庫進行的增、刪、改等操作,都會記錄在事務(wù)日志文件中。當數(shù)據(jù)庫被破壞時可以利用事務(wù)日志文件恢復數(shù)據(jù)庫的數(shù)據(jù)。SQLServer中采用“提前寫”方式的事務(wù),即對數(shù)據(jù)庫的修改先寫入事務(wù)日志,再寫入數(shù)據(jù)庫。第三章

SQLServer數(shù)據(jù)庫是數(shù)據(jù)庫對象的容器,它以操作系統(tǒng)文件的形式存儲在磁盤中。在SQLServer中數(shù)據(jù)庫是由數(shù)據(jù)庫文件和事務(wù)日志文件組成的。一個數(shù)據(jù)庫至少應(yīng)包含一個數(shù)據(jù)庫文件和一個事務(wù)日志文件。2.SQLServer的數(shù)據(jù)庫文件組文件組是將多個數(shù)據(jù)庫文件集合起來形成的一個整體。每個文件組有一個組名。文件組分為主文件組(primary)、自定義文件組(user_defined)和默認文件組(default)。一個文件只能存在于一個文件組中,一個文件組也只能被一個數(shù)據(jù)庫使用,日志文件不屬于任何文件組。主文件組中包含了所有的系統(tǒng)表,自定義文件組包含所有在使用CREATEDATABASE或ALTERDATABASE時使用FILEGROUP關(guān)鍵字進行約束的文件,默認文件組容納所有在創(chuàng)建時沒有指定文件組的表、索引以及text、ntext、image數(shù)據(jù)類型的數(shù)據(jù),任何時候只能有一個文件組被指定為默認文件組。默認情況下,主文件組被當做默認文件組。為了提高數(shù)據(jù)的查詢速度,便于數(shù)據(jù)庫的維護,SQLServer可以將多個數(shù)據(jù)文件組成一個或多個文件組。例如,在三個不同的磁盤(如D盤、E盤、F盤)中建立三個數(shù)據(jù)文件(student_data1

.mdf,student_data2.mdf,student_data3.mdf),并將這三個文件指派到文件組fgroup1中,如圖3-2所示。如果在此數(shù)據(jù)庫中創(chuàng)建表,就可以指定該表放在fgroup1中。

通過使用文件組可以簡化數(shù)據(jù)庫的維護工作:備份和恢復單獨的文件或文件組,而并非數(shù)據(jù)庫,如此可以提高效率。將可維護性要求相近的表和索引分配到相同的文件組中。為自己的文件組指定高維護性的表。

在創(chuàng)建數(shù)據(jù)庫時,默認設(shè)置是將數(shù)據(jù)文件存儲在主文件組中(primary)。也可以在創(chuàng)建數(shù)據(jù)庫時加相應(yīng)的關(guān)鍵字創(chuàng)建文件組。

學生數(shù)據(jù)庫D:\msp\data\student_data1.mdfE:\msp\data\student_data2.mdfF:\msp\data\student_data3.mdfD:\msp\data\student_log1.ldfE:\msp\data\student_log2.ldfF:\msp\data\student_log3.ldf當對數(shù)據(jù)庫對象進行寫操作時,數(shù)據(jù)庫會根據(jù)組內(nèi)數(shù)據(jù)文件的大小,按比例寫入組內(nèi)所有數(shù)據(jù)文件中。當查詢數(shù)據(jù)時,SQLServer系統(tǒng)會創(chuàng)建多個單獨的線程來并行讀取分配在不同物理硬盤中的每個文件,從而在一定程度上提高了查詢速度。圖3-2數(shù)據(jù)庫與操作系統(tǒng)文件之間的映射3.1.4SQLServer的系統(tǒng)數(shù)據(jù)庫

1.master數(shù)據(jù)庫master數(shù)據(jù)庫是SQLServer的主數(shù)據(jù)庫,記錄了SQLServer系統(tǒng)的所有系統(tǒng)信息,如所有的系統(tǒng)配置信息、登錄信息、用戶數(shù)據(jù)庫信息、SQLServer初始化信息等。2.tempdb數(shù)據(jù)庫tempdb數(shù)據(jù)庫為臨時表和其他臨時存儲需求提供存儲空間,是一個由SQLServer中所有數(shù)據(jù)庫共享使用的工作空間。當用戶離開或系統(tǒng)關(guān)機時,臨時數(shù)據(jù)庫中創(chuàng)建的臨時表將被刪除,當它的空間不夠時,系統(tǒng)會自動增加它的空間。臨時數(shù)據(jù)庫是系統(tǒng)中負擔較重的數(shù)據(jù)庫,可以通過將其置于RAM中以提高數(shù)據(jù)庫的性能。在tempdb數(shù)據(jù)庫中所做的操作不會被記錄,因而在tempdb數(shù)據(jù)庫中的表上進行數(shù)據(jù)操作比在其他數(shù)據(jù)庫中要快得多。當退出SQLServer時,用戶在tempdb數(shù)據(jù)庫中建立的所有對象都將被刪除,每次SQLServer啟動時,tempdb數(shù)據(jù)庫都將被重建恢復到系統(tǒng)設(shè)定的初始狀態(tài),因此千萬不要將tempdb數(shù)據(jù)庫作為數(shù)據(jù)的最終存放處。第三章在SQLServer管理控制臺下,我們會看到系統(tǒng)數(shù)據(jù)庫下的master、tempdb、model、msdb四個系統(tǒng)數(shù)據(jù)庫,它們是在安裝SQLServer時系統(tǒng)自動安裝的。這些系統(tǒng)數(shù)據(jù)庫的文件存儲在SQLServer默認安裝目錄(MSSQL)中的Data文件夾中。3.model數(shù)據(jù)庫

model數(shù)據(jù)庫是創(chuàng)建所有用戶數(shù)據(jù)庫和tempdb數(shù)據(jù)庫的模板文件。model數(shù)據(jù)庫中包含每個數(shù)據(jù)庫所需的系統(tǒng)表格,是SQLServer2005中的模板數(shù)據(jù)庫。當創(chuàng)建一個用戶數(shù)據(jù)庫時,模板數(shù)據(jù)庫中的內(nèi)容會自動復制到所創(chuàng)建的用戶數(shù)據(jù)庫中,所以利用model數(shù)據(jù)庫的模板特性,通過更改model數(shù)據(jù)庫的設(shè)置,并將經(jīng)常使用的數(shù)據(jù)庫對象復制到model數(shù)據(jù)庫中,可以簡化數(shù)據(jù)庫及其對象的創(chuàng)建、設(shè)置工作,為用戶節(jié)省大量的時間??梢酝ㄟ^修改模板數(shù)據(jù)庫中的表格,來實現(xiàn)用戶自定義配置新建數(shù)據(jù)庫的對象。4.msdb數(shù)據(jù)庫msdb數(shù)據(jù)庫在SQLServer代理程序調(diào)度報警和作業(yè)時使用。3.2創(chuàng)建數(shù)據(jù)庫

SQLServer2000數(shù)據(jù)庫是有組織的數(shù)據(jù)的集合,是存儲過程、觸發(fā)器、視圖和規(guī)則等數(shù)據(jù)庫對象的容器。在第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)中,我們設(shè)計了選課管理信息系統(tǒng)數(shù)據(jù)庫,命名為student,該數(shù)據(jù)庫中有學生基本信息表、課程表、教師表、學在開發(fā)SQLServer2005數(shù)據(jù)庫應(yīng)用程序之前,首先要設(shè)計數(shù)據(jù)庫結(jié)構(gòu)并創(chuàng)建數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫時需要對數(shù)據(jù)庫的屬性進行設(shè)置,包括數(shù)據(jù)庫的名稱、所有者、大小以及存儲該數(shù)據(jù)庫的文件和文件組。SQLServer2005數(shù)據(jù)庫是有組織的數(shù)據(jù)的集合,是存儲過程、觸發(fā)器、視圖和規(guī)則等數(shù)據(jù)庫對象的容器。在第1章數(shù)據(jù)庫技術(shù)基礎(chǔ)中,我們設(shè)計了選課管理信息系統(tǒng)數(shù)據(jù)庫,命名為student,該數(shù)據(jù)庫中有“學生基本信息”表、“課程”表、“教師”表、“學生選課”表、“教師任課”表、“教學計劃”表等。本節(jié)將以建立student數(shù)據(jù)庫為例,講解用SQLServer管理控制臺和T-SQL語言創(chuàng)建數(shù)據(jù)庫的方法。生選課表、教師任課表、教學計劃表等。本節(jié)我們以建立學生數(shù)據(jù)庫為例,講解用企業(yè)管理器圖形界面與T-SQL語言創(chuàng)建數(shù)據(jù)庫的方法。

第三章在開發(fā)SQLServer2000數(shù)據(jù)庫應(yīng)用程序之前,首先要設(shè)計數(shù)據(jù)庫結(jié)構(gòu)并創(chuàng)建數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫時需要對數(shù)據(jù)庫的屬性進行設(shè)置,包括數(shù)據(jù)庫的名稱、所有者、大小以及存儲該數(shù)據(jù)庫的文件和文件組。3.2.1用企業(yè)管管理器創(chuàng)創(chuàng)建數(shù)據(jù)據(jù)庫3.2.1使用SQLServer管理控制制臺創(chuàng)建建數(shù)據(jù)庫庫通過SQLServerManagementStudio創(chuàng)建數(shù)據(jù)據(jù)庫的操操作步驟驟如下::(1)打開““SQLServerManagementStudio”窗口,右右擊“對對象資源源管理器器”窗格格中的““數(shù)據(jù)庫庫”結(jié)點點,在彈彈出的快快捷菜單單中選擇擇“新建建數(shù)據(jù)庫庫”命令令,如圖圖3-3所示。第三章圖3-3““新建數(shù)據(jù)據(jù)庫”命命令(2)此時將將打開如如圖3-4所示的““新建數(shù)數(shù)據(jù)庫””對話框框,它由由“常規(guī)規(guī)”、““選項””和“文文件組””三個選選項組成成。在““常規(guī)””選項的的“數(shù)據(jù)據(jù)庫名稱稱”文本本框中輸輸入要創(chuàng)創(chuàng)建的數(shù)數(shù)據(jù)庫名名稱:student。(3)在各個個選項中中,可以以指定它它們的參參數(shù)值,,例如,,在“常常規(guī)”選選項中,,可以指指定數(shù)據(jù)據(jù)庫名稱稱、數(shù)據(jù)據(jù)庫的邏邏輯名、、文件組組、初始始容量、、增長方方式和文文件存儲儲路徑等等。(4)單擊““確定””按鈕,,在“數(shù)數(shù)據(jù)庫””的樹形形結(jié)構(gòu)中中,就可可看到剛剛創(chuàng)建的的student數(shù)據(jù)庫,,如圖3-5所示。圖3-4““新建數(shù)據(jù)據(jù)庫”對對話框圖3-5新創(chuàng)建的的student數(shù)據(jù)庫3.2.2使用T-SQL語句創(chuàng)建建數(shù)據(jù)庫庫第三章除了采用用SQLServerManagementStudio管理工具具創(chuàng)建數(shù)數(shù)據(jù)庫外外,還可可以在SQLServerManagementStudio集成的查查詢分析析器中使使用T-SQL語言中的的CREATEDATABASE語句創(chuàng)建建數(shù)據(jù)庫庫,CREATEDATABASE的常用語語法格式式如下::CREATEDATABASEdatebase_name[ON{[PRIMARY](NAME=logical_file_name,FILENAME='os_file_name'[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=grow_increment])}[,……n]LOGON{(NAME=logical_file_name,FILENAME='os_file_name'[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=grow_increment])}[,…n]COLLATEcollation_name在以上的語法法格式中,““[]”表示該項可省省略,省略時時各參數(shù)取默默認值,“{}[,…n]”表示大括號括括起來的內(nèi)容容可以重復寫寫多次。SQL語句在書寫時時不區(qū)分大小小寫,為了清清晰,一般都都用大寫表示示系統(tǒng)保留字字,用小寫表表示用戶自定定義的名稱。。database_name是要建立的數(shù)數(shù)據(jù)庫的名稱稱。PRIMARY在主文件組中中指定文件。。若沒有指定定PRIMARY關(guān)鍵字,該語語句中所列的的第一個文件件成為主文件件。LOGON指定建立數(shù)據(jù)據(jù)庫的事務(wù)日日志文件。NAME指定數(shù)據(jù)或事事務(wù)日志文件件的名稱。FILENAME指定文件的操操作系統(tǒng)文件件名稱和路徑徑。os_file_name中的路徑必須須為安裝SQLServer服務(wù)器的計算算機上的文件件夾。SIZE指定數(shù)據(jù)或日日志文件的大大小,默認單單位為KB,也可以指定定用MB。如果沒有指指定長度,則則默認是1MB。MAXSIZE指定文件能夠夠增長到的最最大長度,默默認單位為KB,也可以指定定用MB單位。如果沒沒有指定長度度,文件將一一直增長到磁磁盤滿為止。。FILEGROWTH指定文件的增增長量,該參參數(shù)不能超過過MAXSIZE的值。默認單單位為KB,可以指定用用MB,也可以使用用百分比。如如果沒有指定定參數(shù),默認認為10%,最小為64KB。COLLATE指定數(shù)據(jù)庫的的默認排序規(guī)規(guī)則。第三章一條語句可以以寫在多行上上,但不能多多條語句寫在在一行上。創(chuàng)創(chuàng)建數(shù)據(jù)庫最最簡單的語句句是“CREATEDATABASE數(shù)據(jù)庫名”。。其中:【例3.1】創(chuàng)建數(shù)據(jù)庫名名為“jsjx_db”的數(shù)據(jù)庫,包包含一個主要要數(shù)據(jù)文件和和一個事務(wù)日日志文件。主主要數(shù)據(jù)文件件的邏輯名為為“jsjx_db_data”,操作系統(tǒng)文文件名為“jsjx_db_data.mdf”,初始容量大大小為5MB,最大容量為為20MB,文件的增長長量為20%。事務(wù)日志文文件的邏輯文文件名為“jsjx_db_log”,物理文件名名為“jsjx_db_log.ldf””,初始容量大大小為5MB,最大容量為為10MB,文件的增長長量為2MB,最大不受限限制。數(shù)據(jù)文文件與事務(wù)日日志文件都放放在E盤根目錄下。。用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)據(jù)庫的操作步步驟如下:(1)在“SQLServerManagementStudio”窗口中集成的的查詢分析器器的“查詢””窗格中輸入入如下代碼::CREATEDATABASEjsjx_dbONPRIMARY(NAME=jsjx_db_data,FILENAME='E:\jsjx_db_data.mdf',SIZE=5mb,MAXSIZE=20MB,FILEGROWTH=20%)LOGON(NAME=jsjx_db_log,FILENAME='E:\jsjx_db_log.ldf',SIZE=10MB,FILEGROWTH=2MB)COLLATEChinese_PRC_CI_ASGO(2)輸入上述代代碼后,單擊擊工具欄中的的“分析”按按鈕,對輸入入的代碼進行行分析檢查,,檢查通過后后,單擊工具具欄中的“執(zhí)執(zhí)行”按鈕,,數(shù)據(jù)庫就會會創(chuàng)建成功并并返回信息,,當刷新“數(shù)數(shù)據(jù)庫”時就就會看到所創(chuàng)創(chuàng)建的數(shù)據(jù)庫庫,結(jié)果如圖圖3-6所示。圖3-6在查詢分析器器中輸入代碼碼3.2.3查查看數(shù)據(jù)據(jù)庫信息第三章數(shù)據(jù)庫的信息息主要有基本本信息、維護護信息和空間間使用信息等等,可以使用用SQLServer管理控制臺查查看數(shù)據(jù)庫信信息。使用SQLServer管理控制臺查查看數(shù)據(jù)庫信信息的操作步步驟如下:(1)打開“SQLServerManagementStudio”窗口,在“對對象資源管理理器”窗格中中展開“數(shù)據(jù)據(jù)庫”結(jié)點,,選擇要查看看信息的數(shù)據(jù)據(jù)庫“jsjx_db”,右擊“jsjx_db”數(shù)據(jù)庫,在彈彈出的快捷菜菜單中選擇““屬性”命令令,如圖3-7所示,打開如如圖3-8所示的“數(shù)據(jù)據(jù)庫屬性-jsjx_db”對話框。圖3-7查看數(shù)據(jù)庫的的信息圖3-8““數(shù)據(jù)庫屬性-jsjx_db”對話框(2)在“數(shù)據(jù)庫庫屬性-jsjx_db”對話框中,可可以查看到數(shù)數(shù)據(jù)庫的基本本信息。選擇擇“常規(guī)”、、“文件”、、“文件組””、“選項””、“權(quán)限””等選項,可可以查看到與與之相關(guān)的數(shù)數(shù)據(jù)庫信息。。3.3管理數(shù)據(jù)庫3.3.1打開數(shù)據(jù)庫第三章隨著數(shù)據(jù)庫的的增長或變化化,用戶需要要用手動或自自動方式對數(shù)數(shù)據(jù)庫進行管管理,包括擴擴充或收縮數(shù)數(shù)據(jù)與日志文文件、更改名名稱、刪除數(shù)數(shù)據(jù)庫等。下下面講述用戶戶管理數(shù)據(jù)庫庫方面的操作作。在SQLServer管理控制臺中中打開數(shù)據(jù)庫庫。在“對象象資源管理器器”窗格中展展開“數(shù)據(jù)庫庫”結(jié)點,單單擊要打開的的數(shù)據(jù)庫(如如jsjx_db數(shù)據(jù)庫),如如圖3-9所示。此時右右窗格中列出出的是當前打打開的數(shù)據(jù)庫庫的對象。圖3-9在“對象資源源管理器”窗窗格中打開數(shù)數(shù)據(jù)庫在查詢分析器器中,可以通通過使用USE語句打開并切切換數(shù)據(jù)庫,,也可以直接接通過數(shù)據(jù)庫庫下拉列表打打開并切換,,如圖3-10所示。圖3-10在“查詢分析析器”窗格中中切換數(shù)據(jù)庫庫如果沒有指定定操作數(shù)據(jù)庫庫,查詢都是是針對當前打打開的數(shù)據(jù)庫庫進行的。當當連接到SQLServer服務(wù)器時,如如果沒有指定定連接到哪一一個數(shù)據(jù)庫,,SQLServer服務(wù)器會自動動連接默認的的數(shù)據(jù)庫。如如果沒有更改改用戶配置,,用戶的默認認數(shù)據(jù)庫是master數(shù)據(jù)庫。master數(shù)據(jù)庫中保存存SQLServer服務(wù)器的系統(tǒng)統(tǒng)信息,用戶戶對master數(shù)據(jù)庫操作不不當會產(chǎn)生嚴嚴重的后果。。為了避免這類類問題的發(fā)生生,可以采用用以下兩種方方法:(1)使用USE語句切換到別別的數(shù)據(jù)庫,,如使jsjx_db數(shù)據(jù)庫成為當當前數(shù)據(jù)庫;;(2)設(shè)定用戶連連接的默認數(shù)數(shù)據(jù)庫。打開并切換數(shù)數(shù)據(jù)庫的命令令為:USEdatabase_name其中,database_name是想要打開的的數(shù)據(jù)庫名稱稱。使用權(quán)限限:數(shù)據(jù)庫擁擁有者(dbo)?!纠?.2】在查詢分析器器中打開jsjx_db數(shù)據(jù)庫。操作步驟如下下:在查詢分分析器中輸入入“USEjsjx_db”,然后單擊““執(zhí)行”按鈕鈕,如圖3-10所示,在查詢詢分析器工具具欄中的當前前數(shù)據(jù)庫列表表框中,顯示示jsjx_db數(shù)據(jù)庫。3.3.2修改數(shù)據(jù)庫容容量當數(shù)據(jù)庫的數(shù)數(shù)據(jù)增長到要要超過它指定定的使用空間間時,就必須須為它增加容容量。如果為為數(shù)據(jù)庫指派派了過多的設(shè)設(shè)備空間,可可以通過縮減減數(shù)據(jù)庫容量量來減少設(shè)備備空間的浪費費。(1)使用對象資資源管理器增增加數(shù)據(jù)庫容容量:如圖3-11所示,在“對對象資源管理理器”窗格中中,右擊要增增加容量的數(shù)數(shù)據(jù)庫(如jsjx_db數(shù)據(jù)庫),在在彈出的快捷捷菜單中選擇擇“屬性”命命令,打開““數(shù)據(jù)庫屬性性-jsjx_db”對話框,選擇擇“文件”選選項,如圖3-12所示,對數(shù)據(jù)據(jù)庫文件的分分配空間進行行重新設(shè)定。。重新設(shè)定的的數(shù)據(jù)庫分配配空間必須大大于現(xiàn)有空間間。第三章數(shù)據(jù)庫在使用用一段時間后后,時常會出出現(xiàn)因數(shù)據(jù)刪刪除而造成數(shù)數(shù)據(jù)庫中空閑閑空間太多的的情況,這時時就需要縮減減分配給數(shù)據(jù)據(jù)庫文件和事事務(wù)日志文件件的磁盤空間間,以免浪費費磁盤空間。。當數(shù)據(jù)庫中中沒有數(shù)據(jù)時時,可以修改改數(shù)據(jù)庫文件件屬性直接改改變其占用的的空間,但當當數(shù)據(jù)庫中有有數(shù)據(jù)時,這這樣做會破壞壞數(shù)據(jù)庫中的的數(shù)據(jù),因此此需要使用壓壓縮的方式來來縮減數(shù)據(jù)庫庫空間。圖3-11數(shù)據(jù)庫屬性快快捷菜單圖3-12““數(shù)據(jù)庫屬性-jsjx_db”對話框ALTERDATABASEdatabase_nameMODIFYFILE(NAME=file_name,SIZE=newsize)(2)使用T-SQL語句,在查詢詢分析器中增增加數(shù)據(jù)庫容容量。增加數(shù)數(shù)據(jù)庫容量的的語句為:其中:database_name為需要增加容容量的數(shù)據(jù)庫庫名稱。file_name為需要增加容容量的數(shù)據(jù)庫庫文件名稱。。newsize為數(shù)據(jù)庫文件件指定的新容容量,該容量量必須大于現(xiàn)現(xiàn)有數(shù)據(jù)庫的的分配空間。。使用權(quán)限默認認為數(shù)據(jù)庫的的擁有者?!纠?.3】為jsjx_db數(shù)據(jù)庫增加容容量,原來數(shù)數(shù)據(jù)庫文件jsjx_db_data的初始分配空空間為5MB,指派給jsjx_db數(shù)據(jù)庫使用,,現(xiàn)在將jsjx_db_data的分配空間增增加至20MB。代碼如下::USEjsjx_dbGOALTERDATABASEjsjx_dbMODIFYFILE(NAME=jsjx_db_data,SIZE=20MB)GO在查詢分析器器中輸入上述述代碼,單擊擊“執(zhí)行”按按鈕,就會出出現(xiàn)如圖3-13所示的結(jié)果。。圖3-13使用查詢分析析器增加數(shù)據(jù)據(jù)庫容量2、縮減數(shù)據(jù)據(jù)庫容量第三章(1)使用對象資資源管理器縮縮減數(shù)據(jù)庫容容量:在“對對象資源管理理器”窗格中中,右擊要縮縮減容量的數(shù)數(shù)據(jù)庫(如jsjx_db數(shù)據(jù)庫),在在彈出的快捷捷菜單中選擇擇“任務(wù)”→→“收縮”→→“數(shù)據(jù)庫””命令如圖3-14所示,打開jsjx_db數(shù)據(jù)庫的“收收縮數(shù)據(jù)庫-jsjx_db”對話框,如圖圖3-15所示,保持默默認設(shè)置,單單擊“確定””按鈕,實現(xiàn)現(xiàn)數(shù)據(jù)庫收縮縮。圖3-14對象資源管理理器目錄窗口口圖3-15收縮數(shù)據(jù)庫(2)使用查詢分分析器來縮減減數(shù)據(jù)庫容量量,可以通過過在查詢分析析器中執(zhí)行T-SQL語句來實現(xiàn)。??s減數(shù)據(jù)庫庫容量的語句句如下:DBCCSHRINKDATABASE(database_name[,target_percent][,{NOTRUNCATE|TRUNCATEONLY}])其中:database_name是要縮減的數(shù)數(shù)據(jù)庫名稱。。target_percent指明要縮減數(shù)數(shù)據(jù)庫的比例例。NOTRUNCATE:指定它時表表示在數(shù)據(jù)庫庫文件中保留留收縮數(shù)據(jù)庫庫時釋放出來來的空間。如如果未指定,,將所釋放的的文件空間釋釋放給操作系系統(tǒng),數(shù)據(jù)庫庫文件中不保保留這部分釋釋放的空間。。TRUNCATEONLY:指定它時數(shù)數(shù)據(jù)庫文件中中未使用的空空間釋放給操操作系統(tǒng),從從而減少數(shù)據(jù)據(jù)庫文件的大大小。使用TRUNCATEONLY時,忽略target_percent參數(shù)對應(yīng)的值值。使用權(quán)限默認認為dbo。例如,縮小jsjx_db數(shù)據(jù)庫的大小小,數(shù)據(jù)庫收收縮比例為1。代碼如下::USEjsjx_dbGODBCCSHRINKDATABASE(jsjx_db,1)GO在查詢分析器器中輸入上述述縮減數(shù)據(jù)庫庫的T-SQL命令并執(zhí)行即即可。3.3.3更改數(shù)據(jù)庫名名稱(1)在“對象資資源管理器””窗格中更改改數(shù)據(jù)庫名稱稱:在“對象象資源管理器器”窗格中,,右擊要更改改名稱的數(shù)據(jù)據(jù)庫(如jsjx_db數(shù)據(jù)庫),在在彈出的快捷捷菜單中選擇擇“重命名””命令,輸入入新的數(shù)據(jù)庫庫名稱,按【Enter】鍵即可,如圖圖3-16所示。第三章有時候需要更更改數(shù)據(jù)庫的的名稱,更改改數(shù)據(jù)庫的名名稱可以在““對象資源管管理器”窗格格中進行,也也可以在“查查詢分析器””窗格中執(zhí)行行T-SQL命令來實現(xiàn)。。(2)在查詢分析析器中用T-SQL命令更改數(shù)據(jù)據(jù)庫名稱。格格式如下:EXECsp_renamedboldname,newname其中:EXEC:執(zhí)行命令語語句。sp_renamedb:系統(tǒng)存儲過過程。oldname:更改前的數(shù)數(shù)據(jù)庫名。newname:更改后的數(shù)數(shù)據(jù)庫名?!纠?.4】更改jsjx_db數(shù)據(jù)庫的名稱稱為“jsjx_db1”。代碼如下:EXECsp_renamedb'jsjx_db','jsjx_db1'GO執(zhí)行代碼后,,系統(tǒng)會返回回成功消息。。圖3-16““在對象資源管管理器”窗格格中更改數(shù)據(jù)據(jù)庫名稱3.3.4刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫也也是數(shù)據(jù)庫管管理中重要的的操作之一。。在刪除數(shù)據(jù)據(jù)庫前,系統(tǒng)統(tǒng)會提示用戶戶確認是否刪刪除數(shù)據(jù)庫,,刪除數(shù)據(jù)庫庫一定要慎重重,因為刪除除數(shù)據(jù)庫后,,與此數(shù)據(jù)庫庫有關(guān)聯(lián)的數(shù)數(shù)據(jù)庫文件和和事務(wù)日志文文件都會被刪刪除,存儲在在系統(tǒng)數(shù)據(jù)庫庫中的關(guān)于該該數(shù)據(jù)庫的所所有信息也會會被刪除,只只能用備份數(shù)數(shù)據(jù)重建以前前的數(shù)據(jù)庫。。如果數(shù)據(jù)庫庫正在被用戶戶使用,則無無法將其刪除除。刪除數(shù)據(jù)據(jù)庫僅限于dbo和sa用戶。第三章為了節(jié)省存儲儲空間和提高高操作效率,,應(yīng)該及時將將不需要的數(shù)數(shù)據(jù)庫刪除,,但不能刪除除系統(tǒng)默認的的數(shù)據(jù)庫。刪刪除數(shù)據(jù)之前前,建議對數(shù)數(shù)據(jù)庫進行備備份,從而防防止因誤操作作導致數(shù)據(jù)丟丟失。1.在對象資源源管理器中刪刪除數(shù)據(jù)庫在“對象資源源管理器”窗窗格中,右擊擊要刪除的數(shù)數(shù)據(jù)庫(如jsjx_db數(shù)據(jù)庫),在在彈出的快捷捷菜單中選擇擇“刪除”命命令,打開如如圖3-17所示的對話框框。如果不需需要為數(shù)據(jù)庫庫做備份,單單擊“確定””按鈕,立即即刪除。2.在查詢分析析器中刪除數(shù)數(shù)據(jù)庫可以通過執(zhí)行行T-SQL語句刪除數(shù)據(jù)據(jù)庫,命令格格式如下:DROPDATABASEdatabase_name[,database_name…]其中:DROPDATABASE是命令動詞。。database_name是數(shù)據(jù)庫名名稱。圖3-17““刪除對象””對話框【例3.5】刪除student數(shù)據(jù)庫。代碼如下::USEmasterGODROPDATABASEstudentGO執(zhí)行完畢后后,在查詢詢分析器中中會出現(xiàn)如如圖3-18所示的信息息。圖3-18用T-SQL語句刪除數(shù)數(shù)據(jù)庫3.3.6附加數(shù)據(jù)庫庫第三章附加數(shù)據(jù)庫庫的工作是是分離數(shù)據(jù)據(jù)庫的逆操操作,通過過附加數(shù)據(jù)據(jù)庫,可以以將沒有加加入SQLSever服務(wù)器的數(shù)數(shù)據(jù)庫文件件加到服務(wù)務(wù)器中,下下面介紹如如何使用對對象資源管管理器附加加數(shù)據(jù)庫::(1)在“對象象資源管理理器”窗格格中,右擊擊“數(shù)據(jù)庫庫”結(jié)點,,在彈出的的快捷菜單單中選擇““附加”命命令,打開開“附加數(shù)數(shù)據(jù)庫”對對話框,單單擊“添加加”按鈕,,找到要附附加數(shù)據(jù)庫庫的mdf文件,最后后單擊“確確定”按鈕鈕,即可完完成附加數(shù)數(shù)據(jù)庫的工工作,如圖圖3-20所示。圖3-20““附加數(shù)據(jù)庫庫”對話框框3.4應(yīng)應(yīng)用舉例例3.4.1創(chuàng)建計算算機計費管管理數(shù)據(jù)庫庫第三章通過前面的的學習,我我們已經(jīng)掌掌握了數(shù)據(jù)據(jù)庫的基本本操作。本本節(jié)以“計計算機計費費管理系統(tǒng)統(tǒng)”和“選選課管理信信息系統(tǒng)””數(shù)據(jù)庫為為例,來加加深對數(shù)據(jù)據(jù)庫的理解解,鞏固數(shù)數(shù)據(jù)庫基本本操作技能能。在開發(fā)SQLServer2005數(shù)據(jù)庫應(yīng)用用程序之前前,首先要要設(shè)計數(shù)據(jù)據(jù)庫結(jié)構(gòu)并并創(chuàng)建數(shù)據(jù)據(jù)庫。創(chuàng)建建數(shù)據(jù)庫時時需要對數(shù)數(shù)據(jù)庫的屬屬性進行設(shè)設(shè)置,包括括數(shù)據(jù)庫名名稱、所有有者、大小小以及存儲儲該數(shù)據(jù)庫庫的文件和和文件組。。下面通過在在對象資源源管理器創(chuàng)創(chuàng)建計算機機計費管理理數(shù)據(jù)庫,,操作步驟驟如下:(1)在E盤新建一個個名為JF的文件夾。。打開“SQLServerManagementStudio””窗口,在““對象資源源管理器””窗格中右右擊“數(shù)據(jù)據(jù)庫”結(jié)點點,在彈出出的快捷菜菜單中選擇擇“新建數(shù)數(shù)據(jù)庫”命命令,打開開“新建數(shù)數(shù)據(jù)庫”對對話框,如如圖3-21所示。(2)在“數(shù)據(jù)據(jù)庫名稱””文本框中中輸入數(shù)據(jù)據(jù)庫名稱,,例如“jifei”。(3)在“數(shù)據(jù)據(jù)庫文件””欄中,設(shè)設(shè)置數(shù)據(jù)文文件信息。。系統(tǒng)會根據(jù)據(jù)指定的數(shù)數(shù)據(jù)庫名自自動創(chuàng)建主主要數(shù)據(jù)文文件jifei和事務(wù)日志志文件jifei_log。用戶也可可以根據(jù)需需要修改邏邏輯名稱、、初始大小小、自動增增長和路徑徑等屬性。。這里僅將將路徑改為為E:\JF。(4)單擊“確確定”按鈕鈕,開始創(chuàng)創(chuàng)建數(shù)據(jù)庫庫。jifei數(shù)據(jù)庫出現(xiàn)現(xiàn)在數(shù)據(jù)庫庫列表中。。選擇jifei數(shù)據(jù)庫,可可以在右窗窗格中看到到數(shù)據(jù)庫的的各種對象象。圖3-21““新建數(shù)據(jù)庫庫”對話框框3.4.2創(chuàng)建選選課管理信信息系統(tǒng)數(shù)數(shù)據(jù)庫既可以在對對象資源管管理器中創(chuàng)創(chuàng)建“選課課管理信息息系統(tǒng)”數(shù)數(shù)據(jù)庫,又又可以在查查詢分析器器中通過執(zhí)執(zhí)行T-SQL語句創(chuàng)建。。在本節(jié)中中將采用T-SQL語句來創(chuàng)建建“選課管管理信息系系統(tǒng)”數(shù)據(jù)據(jù)庫(數(shù)據(jù)據(jù)庫名為xuanke)。為了提高““選課管理理信息系統(tǒng)統(tǒng)”的數(shù)據(jù)據(jù)庫xuanke的查詢性能能,可以采采用多文件件組的形式式創(chuàng)建xuanke數(shù)據(jù)庫,操操作系統(tǒng)及及SQLServer系統(tǒng)安裝在在C盤,數(shù)據(jù)文文件對稱分分配到D、E盤,這樣SQLServer數(shù)據(jù)庫在查查詢學生數(shù)數(shù)據(jù)庫時,,可以有多多個線程同同時對數(shù)據(jù)據(jù)文件進行行讀寫,從從而提高查查詢性能。。在實際的的學習環(huán)境境中,可以以根據(jù)具體體情況調(diào)整整文件組及及數(shù)據(jù)文件件數(shù)量。該該例要先在在D和E盤分別新建建SQLDATA文件夾。(1)創(chuàng)建的自自定義文件件組:XKGroup1和XKGroup2。(2)分配在主主文件組的的數(shù)據(jù)文件件有:XKPri1_dat和XKPri2_dat,它們對應(yīng)應(yīng)的操作系系統(tǒng)文件分分別為D:\SQLDATA\XKPri1dt.mdf和E:\SQLDATA\XKPri2dt.ndf。(3)分配在XKGroup1文件組的數(shù)數(shù)據(jù)文件有有:XKGrp1Pri1_dat和XKGrp1Pri2_dat,它們對應(yīng)應(yīng)的操作系系統(tǒng)文件分分別為D:\SQLDATA\XKGrp1Pri1dt.ndf和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論