數(shù)據(jù)庫的創(chuàng)建和管理課件_第1頁
數(shù)據(jù)庫的創(chuàng)建和管理課件_第2頁
數(shù)據(jù)庫的創(chuàng)建和管理課件_第3頁
數(shù)據(jù)庫的創(chuàng)建和管理課件_第4頁
數(shù)據(jù)庫的創(chuàng)建和管理課件_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第四章數(shù)據(jù)庫的創(chuàng)建和管理第四章數(shù)據(jù)庫的創(chuàng)建和管理學(xué)習(xí)要點(diǎn)數(shù)據(jù)庫的創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組數(shù)據(jù)庫對象系統(tǒng)數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫修改數(shù)據(jù)庫收縮數(shù)據(jù)庫刪除數(shù)據(jù)庫數(shù)據(jù)庫的分離和附加學(xué)習(xí)要點(diǎn)數(shù)據(jù)庫的創(chuàng)建和管理2SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組數(shù)據(jù)庫是存儲(chǔ)數(shù)據(jù)的容器,數(shù)據(jù)庫在磁盤上是以文件為單位存儲(chǔ)的,SQLServer2005將數(shù)據(jù)庫映射為一組操作系統(tǒng)文件。每個(gè)SQLServer2005數(shù)據(jù)庫至少具有兩個(gè)操作系統(tǒng)文件:一個(gè)主數(shù)據(jù)文件和一個(gè)日志文件。SQLServer2005的數(shù)據(jù)庫具有三種類型的文件:(1)主數(shù)據(jù)文件:主數(shù)據(jù)文件是數(shù)據(jù)庫的起點(diǎn),指向數(shù)據(jù)庫中的其他文件。每個(gè)數(shù)據(jù)庫都有且只有一個(gè)主數(shù)據(jù)文件。主數(shù)據(jù)文件的推薦文件擴(kuò)展名是.mdf。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組3SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組(2)次要數(shù)據(jù)文件(輔助數(shù)據(jù)文件):次要數(shù)據(jù)文件可用作存儲(chǔ)用戶數(shù)據(jù)和對象。如果主數(shù)據(jù)文件可以存儲(chǔ)數(shù)據(jù)庫中的所有數(shù)據(jù),那么數(shù)據(jù)庫就不需要次要數(shù)據(jù)文件。有些數(shù)據(jù)庫可能比較大,所以需要多個(gè)次要數(shù)據(jù)文件,或使用位于不同磁盤驅(qū)動(dòng)器上的輔助文件將數(shù)據(jù)擴(kuò)展到多個(gè)磁盤。并不是所有的數(shù)據(jù)庫都需要次要數(shù)據(jù)文件。次要數(shù)據(jù)文件的推薦擴(kuò)展名為.ndf。(3)事務(wù)日志文件:日志文件包含著用于恢復(fù)數(shù)據(jù)庫的所有日志信息。每個(gè)數(shù)據(jù)庫必須至少有一個(gè)日志文件,當(dāng)然也可以有多個(gè)。SQLServer2005事務(wù)日志采用提前寫入的方式,即對數(shù)據(jù)庫的修改先寫入事務(wù)日志中,然后再寫入數(shù)據(jù)庫。日志文件的推薦文件擴(kuò)展名是.ldf。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組4SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組數(shù)據(jù)文件和日志文件的文件結(jié)構(gòu)不同,存儲(chǔ)方式也不一樣,如圖4-1所示。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組5SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組數(shù)據(jù)庫文件組SQLServer中的數(shù)據(jù)庫文件組分為主文件組和用戶定義文件組。①主文件組:主文件組包含主要數(shù)據(jù)庫文件和任何沒有明確指派給其他文件組的其他文件。數(shù)據(jù)庫的系統(tǒng)表都包含在主文件組中。②用戶定義文件組:用戶定義文件組是在CREATEDATABASE或ALTERDATABASE語句中,使用FILEGROUP關(guān)鍵字指定的文件組。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組6SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組文件和文件組應(yīng)用的規(guī)則:(1)一個(gè)文件只能存在于一個(gè)文件組中,一個(gè)文件組也只能被一個(gè)數(shù)據(jù)庫使用。(2)主文件組中包含了所有的系統(tǒng)表。當(dāng)建立數(shù)據(jù)庫時(shí),主文件組包括主數(shù)據(jù)庫文件和未指定組的其它文件。(3)在創(chuàng)建數(shù)據(jù)庫對象時(shí)如果沒有指定將其放在哪一個(gè)文件組中,就會(huì)將它放在默認(rèn)文件組中。如果沒有指定默認(rèn)文件組,則主文件組為默認(rèn)文件組。(4)事務(wù)日志文件不屬于任何文件組。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)文件和文件組7SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)數(shù)據(jù)庫對象數(shù)據(jù)庫是一個(gè)存放數(shù)據(jù)的表和支持這些數(shù)據(jù)的存儲(chǔ)、檢索、安全性和完整性的邏輯成分所組成的集合。組成數(shù)據(jù)庫的邏輯成分稱為數(shù)據(jù)庫對象,SQLServer2005中的邏輯對象主要包括數(shù)據(jù)表、視圖、同義詞、存儲(chǔ)過程、函數(shù)、觸發(fā)器、規(guī)則,以及用戶、角色、架構(gòu)等。(1)表表即基本表。是在數(shù)據(jù)庫中存放的實(shí)際關(guān)系表。一個(gè)數(shù)據(jù)庫中的表可多達(dá)20億個(gè),每個(gè)表中可以有1024個(gè)列(字段)和無數(shù)個(gè)行(記錄)。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)數(shù)據(jù)庫對象8SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)數(shù)據(jù)庫對象(2)視圖視圖是為了用戶查詢方便或根據(jù)數(shù)據(jù)安全的需要而建立的虛表。視圖既可以是一個(gè)表中數(shù)據(jù)的子集,也可以由多個(gè)表連接而成。(3)角色角色是由一個(gè)或多個(gè)用戶組成的單元,角色也稱職能組。一個(gè)用戶可以成為多個(gè)角色中的成員。角色是針對數(shù)據(jù)庫而言的,一個(gè)數(shù)據(jù)庫可以定義多個(gè)角色,并對各個(gè)角色定義不同權(quán)限。當(dāng)數(shù)據(jù)庫的角色獲得某種數(shù)據(jù)庫操作權(quán)時(shí),角色中的每個(gè)用戶都具有這種數(shù)據(jù)操作權(quán)。(4)索引索引是用來加速數(shù)據(jù)訪問和保證表的實(shí)體完整性的數(shù)據(jù)庫對象。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)數(shù)據(jù)庫對象9SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)數(shù)據(jù)庫對象(5)存儲(chǔ)過程存儲(chǔ)過程是存儲(chǔ)在數(shù)據(jù)庫中的一組相關(guān)的SQL語句,經(jīng)過預(yù)編譯后,隨時(shí)可供用戶調(diào)用執(zhí)行。(6)觸發(fā)器觸發(fā)器是一種特殊類型的存儲(chǔ)過程。當(dāng)對表執(zhí)行了某種操作后,就會(huì)觸發(fā)相應(yīng)觸發(fā)器的執(zhí)行。觸發(fā)器主要用于保證數(shù)據(jù)的完整性、信息的自動(dòng)統(tǒng)計(jì)等。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)數(shù)據(jù)庫對象10SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫SQLServer2005中的數(shù)據(jù)庫分為兩種類型:系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。SQLServer2005安裝成功后,包括5個(gè)系統(tǒng)數(shù)據(jù)庫(master、model、msdb、resource和tempdb)以及示例數(shù)據(jù)庫。master數(shù)據(jù)庫。該數(shù)據(jù)庫是SQLServer系統(tǒng)最重要的數(shù)據(jù)庫,它記錄了SQLServer系統(tǒng)的所有系統(tǒng)級信息。包括實(shí)例范圍的元數(shù)據(jù)(例如登錄帳戶)、端點(diǎn)、鏈接服務(wù)器和系統(tǒng)配置設(shè)置。master數(shù)據(jù)庫還記錄了所有其他數(shù)據(jù)庫是否存在、數(shù)據(jù)庫文件的位置以及SQLServer的初始化信息。因此,如果master數(shù)據(jù)庫不可用,則SQLServer無法啟動(dòng)。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫11SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫model數(shù)據(jù)庫:model數(shù)據(jù)庫為用戶新創(chuàng)建的數(shù)據(jù)庫提供模板,它包含了用戶數(shù)據(jù)庫中應(yīng)該包含的所有系統(tǒng)表的結(jié)構(gòu)。當(dāng)創(chuàng)建用戶數(shù)據(jù)庫時(shí),系統(tǒng)通過復(fù)制model數(shù)據(jù)庫中的內(nèi)容來創(chuàng)建數(shù)據(jù)庫的第一部分,然后用空頁填充新數(shù)據(jù)庫的剩余部分。用戶在系統(tǒng)中新創(chuàng)建的所有數(shù)據(jù)庫的內(nèi)容,最初都與該模板數(shù)據(jù)庫具有完全相同的內(nèi)容。msdb數(shù)據(jù)庫:msdb數(shù)據(jù)庫供SQLServer代理程序調(diào)度警報(bào)作業(yè)以及記錄操作時(shí)使用。當(dāng)很多用戶在使用一個(gè)數(shù)據(jù)庫時(shí),經(jīng)常會(huì)出現(xiàn)多個(gè)用戶對同一個(gè)數(shù)據(jù)的修改而造成數(shù)據(jù)不一致的現(xiàn)象,或是用戶對某些數(shù)據(jù)和對象的非法操作等。為了防止上述現(xiàn)象的發(fā)生,SQLServer中有一套代理程序能夠按照系統(tǒng)管理員的設(shè)定監(jiān)控上述現(xiàn)象的發(fā)生,及時(shí)向系統(tǒng)管理員發(fā)出警報(bào)。那么當(dāng)代理程序調(diào)度警報(bào)作業(yè)、記錄操作時(shí),系統(tǒng)要用到或?qū)崟r(shí)產(chǎn)生許多相關(guān)信息,這些信息一般存儲(chǔ)在msdb數(shù)據(jù)庫中。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫12SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫resource數(shù)據(jù)庫:是只讀數(shù)據(jù)庫,它包含了SQLServer2005中的所有系統(tǒng)對象。SQLServer系統(tǒng)對象(例如sys.objects)在物理上持續(xù)存在于resource數(shù)據(jù)庫中,但在邏輯上,它們出現(xiàn)在每個(gè)數(shù)據(jù)庫的sys架構(gòu)中。資源系統(tǒng)數(shù)據(jù)庫不包含用戶數(shù)據(jù)或用戶元數(shù)據(jù)。tempdb數(shù)據(jù)庫:該數(shù)據(jù)庫是一個(gè)為所有的臨時(shí)表、臨時(shí)存儲(chǔ)過程及其他臨時(shí)操作提供存儲(chǔ)空間的臨時(shí)數(shù)據(jù)庫。tempdb數(shù)據(jù)庫是一個(gè)全局資源,可供連接到SQLServer實(shí)例的所有用戶使用。SQLServer每次啟動(dòng)時(shí),tempdb數(shù)據(jù)庫都被重新建立。當(dāng)用戶與SQLServer斷開連接時(shí),其臨時(shí)表和存儲(chǔ)過程自動(dòng)被刪除。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫13SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫示例數(shù)據(jù)庫SQLServer2005提供了若干個(gè)示例數(shù)據(jù)庫,其中最常用的是AdventureWorks數(shù)據(jù)庫。默認(rèn)情況下,SQLServer2005中不安裝示例數(shù)據(jù)庫。需要在安裝到選擇安裝組件時(shí)單擊“高級”按鈕選中示例數(shù)據(jù)庫。如果在初始安裝SQLServer2005時(shí)沒有安裝示例數(shù)據(jù)庫或示例,可以通過控制面板中的“添加或刪除程序”添加SQLServer2005的安裝組件。或者通過在Microsoft官方網(wǎng)站http://www.M上搜索“SQLServer2005SimplesandSimplesDatabases”項(xiàng),下載AdventureWorksDB.msi文件后進(jìn)行安裝,然后“附加”即可。SQLServer2005數(shù)據(jù)庫的結(jié)構(gòu)系統(tǒng)數(shù)據(jù)庫14創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫對于一個(gè)SQLServer實(shí)例,最多可以創(chuàng)建32767個(gè)用戶數(shù)據(jù)庫。在創(chuàng)建數(shù)據(jù)庫之前,首先用戶應(yīng)該清楚是否有相關(guān)的權(quán)限。要?jiǎng)?chuàng)建數(shù)據(jù)庫,必須至少擁有CREATEDATABASE,CREATEANYDATABASE或ALTERANYDATABASE等語句的權(quán)限。其次,創(chuàng)建數(shù)據(jù)庫的用戶將成為該數(shù)據(jù)庫的所有者。用戶要?jiǎng)?chuàng)建數(shù)據(jù)庫,必須確定數(shù)據(jù)庫的名稱、所有者、大小以及存儲(chǔ)該數(shù)據(jù)庫的文件和文件組。創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫15創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫名稱必須遵循為標(biāo)識(shí)符指定的規(guī)則:數(shù)據(jù)庫名稱長度為1~128個(gè)字符。名稱首字符必須是一個(gè)英文字母或“_”、“#”和“@”中的任意字符(中文版包括漢字)。在中文版SQLServer2005中,可以直接使用漢字為數(shù)據(jù)庫命名。名稱中不能出現(xiàn)空格,不允許使用SQLServer2005的保留字。在SQLServer2005中創(chuàng)建用戶數(shù)據(jù)庫主要有以下兩種形式:在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫。利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫16創(chuàng)建數(shù)據(jù)庫在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫的過程如下:啟動(dòng)SQLServerManagementStudio,在對象資源管理器中,右擊“數(shù)據(jù)庫”選項(xiàng),在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”命令,如圖4.2所示,打開“新建數(shù)據(jù)庫”窗口。圖4.2選擇“新建數(shù)據(jù)庫”命令創(chuàng)建數(shù)據(jù)庫在SQLServerManagementSt17創(chuàng)建數(shù)據(jù)庫在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫在“新建數(shù)據(jù)庫”窗口中的“常規(guī)”選項(xiàng)卡,如圖4.3所示,有以下幾個(gè)可選項(xiàng)。在“數(shù)據(jù)庫名稱”文本框中,輸入要?jiǎng)?chuàng)建的數(shù)據(jù)庫名稱,如“學(xué)生選課”。若要通過接受所有的默認(rèn)值來創(chuàng)建數(shù)據(jù)庫,則單擊“確定”按鈕;否則,繼續(xù)后面的可選項(xiàng)目的選擇。若要更改所有者名稱,單擊“所有者”后的按鈕選擇其他所有者。若要啟用數(shù)據(jù)庫的全文搜索,選中“使用全文索引”復(fù)選框。創(chuàng)建數(shù)據(jù)庫在SQLServerManagementSt18圖4.3新建數(shù)據(jù)庫“常規(guī)”選項(xiàng)對話框圖4.3新建數(shù)據(jù)庫“常規(guī)”選項(xiàng)對話框19創(chuàng)建數(shù)據(jù)庫在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫若要更改主數(shù)據(jù)文件和事務(wù)日志文件的默認(rèn)值,并輸入新值。各項(xiàng)的具體含義如下:邏輯名稱:用來輸入數(shù)據(jù)文件或日志文件的邏輯文件名。邏輯文件名是在所有Transact-SQL語句中引用物理文件時(shí)所使用的名稱。文件類型:數(shù)據(jù)庫文件的類型。對于新添加的數(shù)據(jù)庫文件可以選擇“數(shù)據(jù)”或“日志”。文件組:數(shù)據(jù)庫中的數(shù)據(jù)文件所屬的文件組。日志文件沒有文件組的概念。初始大?。捍_定數(shù)據(jù)庫文件的初始大小。默認(rèn)的數(shù)據(jù)文件初始大小為3M,日志文件為1M。自動(dòng)增長:顯示設(shè)置的數(shù)據(jù)文件和日志文件的增長方式增量。單擊后面的按鈕可以修改。路徑:顯示數(shù)據(jù)庫物理文件的存放路徑。單擊后面的按鈕可以選擇新的存放路徑。創(chuàng)建數(shù)據(jù)庫在SQLServerManagementSt20創(chuàng)建數(shù)據(jù)庫在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫切換到“新建數(shù)據(jù)庫”窗口中的“選項(xiàng)”選項(xiàng)卡中,如圖4.4所示。其中有以下幾個(gè)可選項(xiàng):若要更改數(shù)據(jù)庫的排序規(guī)則,從“排序規(guī)則”下拉列表框中選擇一個(gè)排序規(guī)則。若要更改恢復(fù)模式,從“恢復(fù)模式”下拉列表框中選擇一個(gè)恢復(fù)模式。若要更改數(shù)據(jù)庫其他選項(xiàng),從下面的列表中根據(jù)需要修改選項(xiàng)值。切換到“文件組”選項(xiàng)卡進(jìn)行設(shè)置,如圖4.5所示。如果要添加文件組,可以單擊“添加”按鈕,然后輸入文件組的名稱。所有參數(shù)設(shè)置完畢后,單擊“確定”按鈕,新的數(shù)據(jù)庫就創(chuàng)建成功。展開對象資源管理器中的數(shù)據(jù)庫項(xiàng),可以看到新建的數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫在SQLServerManagementSt21圖4.4新建數(shù)據(jù)庫“選項(xiàng)”選項(xiàng)窗口圖4.4新建數(shù)據(jù)庫“選項(xiàng)”選項(xiàng)窗口22圖4.5新建數(shù)據(jù)庫“文件組”選項(xiàng)對話框圖4.5新建數(shù)據(jù)庫“文件組”選項(xiàng)對話框23創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫CREATEDATABASE語句的基本格式:CREATEDATABASEdatabase_name--設(shè)置數(shù)據(jù)庫名稱[ON[PRIMARY][<filespec>[,...n]]--設(shè)置數(shù)據(jù)文件[,<filegroup>[,...n]]--設(shè)置文件組

[LOGON{<filespec>[,...n]}]--設(shè)置日志文件][COLLATEcollation_name]--設(shè)置排序規(guī)則名稱[WITH<external_access_option>]--設(shè)置外部訪問][;]創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫24創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫說明:在T-SQL語言的命令格式中,用[]括起來的內(nèi)容表示是可選的;[,…n]表示重復(fù)前面的內(nèi)容;用<>括起來的內(nèi)容表示在實(shí)際編寫語句時(shí),用相應(yīng)的內(nèi)容替代;用{}括起來的內(nèi)容表示是必選的;類似A|B的格式,表示A和B只能選擇一個(gè),不能同時(shí)都選。語句中參數(shù)的說明如下:database_name:新建數(shù)據(jù)庫的名稱。同一個(gè)SQLServer的實(shí)例中數(shù)據(jù)庫名稱必須唯一,且最長為128個(gè)字符。創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫25創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫ON:顯式定義用來存儲(chǔ)數(shù)據(jù)庫數(shù)據(jù)部分的磁盤文件(數(shù)據(jù)文件)。當(dāng)后面是以逗號(hào)分隔的用以定義主文件組的數(shù)據(jù)文件的<filespec>列表時(shí),需使用ON。<filespec>列表用于定義主文件組的數(shù)據(jù)文件。主文件組的文件列表后可以包含用逗號(hào)分隔的<filegroup>列表,<filegroup>列表用于定義用戶文件組及其中的文件。filespec的定義格式:<filespec>::=--<filespec>語法格式{(NAME=logical_file_name,FILENAME='os_file_name'[,SIZE=size[KB|MB|GB|TB]][,MAXSIZE={maxsize[KB|MB|GB|TB]|UNLIMITED}][,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]])[,...n]}創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫26創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫filegroup的定義格式:<filegroup>::={FILEGROUPfilegroup_name[DEFAULT]

<filespec>[,...n]}PRIMARY:用于指定主文件組中的文件。主文件組不僅包含數(shù)據(jù)庫系統(tǒng)表中的全部內(nèi)容,而且還包含用戶文件組中沒有包含的全部對象。一個(gè)數(shù)據(jù)庫只能有一個(gè)主文件,默認(rèn)情況下,如果不指定PRIMARY關(guān)鍵字,則在命令中列出的第一個(gè)文件將被默認(rèn)為主文件。LOGON:顯式定義用來存儲(chǔ)數(shù)據(jù)庫日志的日志文件。創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫27創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫NAME:指定數(shù)據(jù)庫文件的邏輯名稱,這是在SQLServer系統(tǒng)中使用的名稱,是數(shù)據(jù)庫文件在SQLServer中的標(biāo)識(shí)符。FILENAME:指定數(shù)據(jù)庫文件的在操作系統(tǒng)中文件名稱和路徑,該操作系統(tǒng)文件名和NAME的邏輯名稱一一對應(yīng)。SIZE:指定數(shù)據(jù)庫的初始容量大小。如果沒有指定主文件的大小,則SQLServer默認(rèn)其與模板數(shù)據(jù)庫中的主文件大小一致,其他數(shù)據(jù)庫文件和事務(wù)日志文件則默認(rèn)為1MB。指定大小的數(shù)字size可以使用KB、MB、GB和TB后綴,默認(rèn)的后綴為MB。size中不能使用小數(shù),其最小值為512KB,默認(rèn)值為1MB。主文件的size不能小于模板數(shù)據(jù)庫中的主文件。創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫28創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫MAXSIZE:指定操作系統(tǒng)文件可以增長到的最大尺寸。如果沒有指定,則文件可以不斷增大直到充滿磁盤。FILEGROWTH:指定文件每次增加容量的大小,當(dāng)指定數(shù)據(jù)為0時(shí),表示文件不增長。增加量可以確定為以KB、MB作后綴的字節(jié)數(shù)或以%作后綴的被增加容量文件的百分比來表示。默認(rèn)后綴為MB。如果沒有指定FILEGROWTH,則默認(rèn)值為10%,每次擴(kuò)容的最小值為64KB。COLLATEcollation_name:指定數(shù)據(jù)庫的默認(rèn)排序規(guī)則。排序規(guī)則名稱既可以是Windows排序規(guī)則名稱,也可以是SQL排序規(guī)則名稱。如果沒有指定排序規(guī)則,則將SQLServer實(shí)例的默認(rèn)排序規(guī)則分配為數(shù)據(jù)庫的排序規(guī)則。不能對數(shù)據(jù)庫快照指定排序規(guī)則名稱。WITH<external_access_option>:控制外部與數(shù)據(jù)庫之間的雙向訪問。創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫29創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫【例4-1】使用CREATEDATABASE創(chuàng)建一個(gè)新的數(shù)據(jù)庫,名稱為“STUDENT1”,其他所有參數(shù)均取默認(rèn)值。CREATEDATABASESTUDENT1【例4-2】創(chuàng)建數(shù)據(jù)庫名為“STUDENT2”的數(shù)據(jù)庫,包含一個(gè)主數(shù)據(jù)文件和一個(gè)事務(wù)日志文件。主數(shù)據(jù)文件的邏輯名為“STUDENT2_DATA”,操作系統(tǒng)文件名為“STUDENT2_DATA.MDF”,初始容量大小為5M,最大容量為20M,文件的增長量為20%。事務(wù)日志文件的邏輯文件名為“STUDENT2_LOG”,物理文件名為“STUDENT2_LOG.LDF”,初始容量大小為5M,最大容量為10M,文件增長量為2M。數(shù)據(jù)文件與事務(wù)日志文件都放在E:\SQLDATA目錄。創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫30創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫CREATEDATABASESTUDENT2ONPRIMARY(NAME='STUDENT2_DATA',FILENAME='D:\SQLDATA\STUDENT2_DATA.MDF',SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=20%)LOGON(NAME='STUDENT2_LOG',FILENAME='D:\SQLDATA\STUDENT2_LOG.LDF',SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=2MB)GO說明:必須事先在D盤建立好DATA文件夾。創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫31創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫【例4-3】創(chuàng)建一個(gè)指定多個(gè)數(shù)據(jù)文件和日志文件的數(shù)據(jù)庫。該數(shù)據(jù)庫名稱為TEACHINGDB,有1個(gè)5MB和1個(gè)10MB的數(shù)據(jù)文件和2個(gè)5MB的事務(wù)日志文件。數(shù)據(jù)文件邏輯名稱為TEACHINGDB1和TEACHINGDB2,物理文件名為TEACHINGDB1.mdf和TEACHINGDB2.ndf。主文件是TEACHINGDB1,由PRIMARY指定,兩個(gè)數(shù)據(jù)文件的最大尺寸分別為無限大和100MB,增長速度分別為10%和1MB。事務(wù)日志文件的邏輯名為TEACHINGDBLOG1和TEACHINGDBLOG2,物理文件名為TEACHINGDBLOG1.ldf和TEACHINGDBLOG2.ldf,最大尺寸均為50MB,文件增長速度為1MB。要求數(shù)據(jù)庫文件和日志文件的物理文件都存放在D盤的SQLDATA文件夾下。創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫32創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫CREATEDATABASETEACHINGDBONPRIMARY(NAME=TEACHINGDB1,FILENAME='D:\SQLDATA\TEACHINGDB1.mdf',SIZE=5,MAXSIZE=unlimited,FILEGROWTH=10%),(NAME=TEACHINGDB2,FILENAME='D:\SQLDATA\TEACHINGDB2.ndf',SIZE=10,MAXSIZE=100,FILEGROWTH=1)LOGON(NAME=TEACHINGDBLOG1,FILENAME='D:\SQLDATA\TEACHINGDBLOG1.ldf',SIZE=5,MAXSIZE=50,FILEGROWTH=1),(NAME=TEACHINGDBLOG2,FILENAME='D:\SQLDATA\TEACHINGDBLOG2.ldf',SIZE=5,MAXSIZE=50,filegrowth=1)GO創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫33創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫【例4-4】在【例4-3】創(chuàng)建一個(gè)新的文件組,并將邏輯名稱為TEACHINGDB2的文件加入此文件組中。CREATEDATABASETEACHINGDBONPRIMARY(NAME=TEACHINGDB1,FILENAME='D:\SQLDATA\TEACHINGDB1.mdf',SIZE=5,MAXSIZE=unlimited,FILEGROWTH=10%),FILEGROUPTEACHINGDB_DATA(NAME=TEACHINGDB12,FILENAME='D:\SQLDATA\TEACHINGDB2.ndf',SIZE=10,MAXSIZE=100,FILEGROWTH=1)創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫34創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫LOGON(NAME=TEACHINGDBLOG1,FILENAME='D:\SQLDATA\TEACHINGDBLOG1.ldf',SIZE=5,MAXSIZE=50,FILEGROWTH=1),(NAME=TEACHINGDBLOG2,FILENAME='D:\SQLDATA\TEACHINGDBLOG2.ldf',SIZE=5,MAXSIZE=50,filegrowth=1)GO創(chuàng)建數(shù)據(jù)庫利用Transact-SQL語句創(chuàng)建數(shù)據(jù)庫35修改數(shù)據(jù)庫修改數(shù)據(jù)庫建好數(shù)據(jù)庫后,可以對其進(jìn)行修改。修改數(shù)據(jù)庫包括增減數(shù)據(jù)文件和日志文件、修改文件屬性(包括更改文件名和文件大?。?、修改數(shù)據(jù)庫選項(xiàng)等??梢允褂肧QLServerManagementStudio與Transact-SQL語句兩種方法修改數(shù)據(jù)庫。修改數(shù)據(jù)庫修改數(shù)據(jù)庫36修改數(shù)據(jù)庫使用SQLServerManagementStudio修改數(shù)據(jù)庫啟動(dòng)SQLServerManagementStudio,在對象資源管理器中,右擊所需要修改的數(shù)據(jù)庫如students,在快捷菜單中選擇“屬性”命令打開“數(shù)據(jù)庫屬性”窗口,如圖4.6所示。在“數(shù)據(jù)庫屬性”窗口的“常規(guī)”選項(xiàng)卡中,顯示的是數(shù)據(jù)庫的基本信息,這些信息不能修改。單擊“文件”選項(xiàng)卡,如圖4.7所示,可以修改數(shù)據(jù)庫的邏輯名稱、初始大小、自動(dòng)增長等屬性,也可以根據(jù)需要添加數(shù)據(jù)文件和日志文件,還可以更改數(shù)據(jù)庫的所有者。修改數(shù)據(jù)庫使用SQLServerManagementS37圖4.6數(shù)據(jù)庫屬性“常規(guī)”選項(xiàng)卡圖4.6數(shù)據(jù)庫屬性“常規(guī)”選項(xiàng)卡38圖4.7數(shù)據(jù)庫屬性“文件”選項(xiàng)卡圖4.7數(shù)據(jù)庫屬性“文件”選項(xiàng)卡39修改數(shù)據(jù)庫使用SQLServerManagementStudio修改數(shù)據(jù)庫在“文件組”選項(xiàng)卡中,可以修改現(xiàn)有的文件組,也可以指定數(shù)據(jù)庫的默認(rèn)文件組、添加新文件組。在“選項(xiàng)”選項(xiàng)卡中,修改數(shù)據(jù)庫的排序規(guī)則?!皵?shù)據(jù)庫屬性”窗口包含的各種屬性,只要需要,就可以選擇相應(yīng)的選項(xiàng)卡來修改。修改數(shù)據(jù)庫使用SQLServerManagementS40修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫Transact-SQL提供了修改數(shù)據(jù)庫的語句ALTERDATABASE,語句格式如下: ALTERDATABASEdatabase_name--需修改的數(shù)據(jù)庫名 {<add_or_modify_files>--增加或修改數(shù)據(jù)庫文件 |<add_or_modify_filegroups>--增加或修改數(shù)據(jù)庫文件組 |<set_database_options>--設(shè)置數(shù)據(jù)庫選項(xiàng) |MODIFYNAME=new_database_name--數(shù)據(jù)庫重命名

|COLLATEcollation_name--更改排序規(guī)則 }[;]修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫41修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫下面說明上述格式的主要參數(shù):(1)database_name:要修改的數(shù)據(jù)庫的名稱。(2)<add_or_modify_files>:指定要添加或修改的文件。(3)<add_or_modify_filegroups>:在數(shù)據(jù)庫中添加或刪除文件組。(4)<set_database_options>:設(shè)置數(shù)據(jù)庫選項(xiàng)。(5)MODIFYNAME=new_database_name:使用指定的名稱重命名數(shù)據(jù)庫。(6)COLLATEcollationname:指定數(shù)據(jù)庫的排序規(guī)則。<add_or_modify_files>子句的語法:修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫42修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫

<add_or_modify_files>::=--增加或修改數(shù)據(jù)庫文件語法塊 {ADDFILE<filespec>[,...n]--文件屬性修改 [TOFILEGROUP{filegroup_name|DEFAULT}] |ADDLOGFILE<filespec>[,...n] |REMOVEFILElogical_file_name |MODIFYFILE<filespec>}下面說明上述格式的主要參數(shù):(1)ADDFILE:將文件添加到數(shù)據(jù)庫。(2)TOFILEGROUP{filegroup_nameIDEFAULT}:指定要將指定文件添加到的文件組。(3)ADDLOGFILE:添加日志文件。(4)REMOVEFILElogical_file_name:從SQLServer的實(shí)例中刪除邏輯文件說明并刪除物理文件。除非文件為空,否則無法刪除文件。MODIFYFILE:指定應(yīng)修改的文件,一次只能更改一個(gè)<filespec>屬性。修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫43修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫<add_or_modify_filegroups>的語法:<add_or_modify_filegroups>::={|ADDFILEGROUPfilegroup_name--增加文件組|REMOVEFILEGROUPfilegroup_name--刪除文件組

|MODIFYFILEGROUPfilegroup_name--修改文件組

{<filegroup_updatability_option>

|DEFAULT

|NAME=new_filegroup_name}}修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫44修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫【例4-5】為STUDENT2數(shù)據(jù)庫增加容量,原來數(shù)據(jù)庫文件STUDENT2_DATA的初始分配空間為5M,現(xiàn)在將STUDENT2_DATA的分配空間增加至20M。 ALTERDATABASESTUDENT2 MODIFYFILE (NAME=STUDENT2_DATA, SIZE=20MB)修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫45修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫【例4-6】為數(shù)據(jù)庫STUDENT2添加文件組studentfgrp,再增加數(shù)據(jù)文件STUDENT2_DATA1,初始大小10M,最大50M,按照5%增長,并將此文件添加到studentfgrp中。ALTERDATABASESTUDENT2ADDFILEGROUPSTUDENTFGRPGOALTERDATABASESTUDENT2ADDFILE(NAME='STUDENT2_DATA1',FILENAME='D:\DATA\STUDENT2_DATA1.NDF',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)TOFILEGROUPSTUDENTFGRPGo修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫46修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫【例4-7】將數(shù)據(jù)庫STUDENT2中增加的數(shù)據(jù)文件STUDENT2_DATA1刪除。

ALTERDATABASESTUDENT2 REMOVEFILESTUDENT2_DATA1修改數(shù)據(jù)庫利用Transact-SQL語句修改數(shù)據(jù)庫47收縮數(shù)據(jù)庫收縮數(shù)據(jù)庫設(shè)置自動(dòng)收縮數(shù)據(jù)庫設(shè)置數(shù)據(jù)庫的自動(dòng)收縮,可以在數(shù)據(jù)庫的屬性中“選項(xiàng)”選項(xiàng)卡頁面中設(shè)置,只要將選項(xiàng)中的“自動(dòng)收縮”設(shè)為True即可。手動(dòng)收縮數(shù)據(jù)庫在SQLServerManagementStudio的“對象資源管理器”窗口中,右擊相應(yīng)的數(shù)據(jù)庫,如students,從彈出的快捷菜單中選擇“任務(wù)→收縮→數(shù)據(jù)庫”。在彈出的對話框中進(jìn)行設(shè)置,如圖4.8所示。收縮數(shù)據(jù)庫收縮數(shù)據(jù)庫48圖4.8收縮數(shù)據(jù)庫窗口圖4.8收縮數(shù)據(jù)庫窗口49收縮數(shù)據(jù)庫收縮數(shù)據(jù)庫手動(dòng)收縮數(shù)據(jù)庫文件在SQLServerManagementStudio的“對象資源管理器”窗口中,右擊相應(yīng)的數(shù)據(jù)庫,如students,從彈出的快捷菜單中選擇“任務(wù)→收縮→文件”。在彈出的對話框中進(jìn)行設(shè)置,如圖4.9所示。說明:為了避免存儲(chǔ)空間的浪費(fèi),可以進(jìn)行數(shù)據(jù)庫的手動(dòng)收縮或設(shè)置自動(dòng)收縮。但是,無論怎么收縮,數(shù)據(jù)庫的大小也不會(huì)小于其初始大小,所以創(chuàng)建數(shù)據(jù)庫時(shí)初始大小的選擇應(yīng)盡可能合理收縮數(shù)據(jù)庫收縮數(shù)據(jù)庫50圖4.9收縮文件窗口圖4.9收縮文件窗口51刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫可以使用SQLServerManagementStudio與Transact-SQL語句兩種方法刪除數(shù)據(jù)

溫馨提示

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

評論

0/150

提交評論