數據庫的創(chuàng)建與使用
單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,*,*,*,,,第,5,章 數據庫的創(chuàng)建與使用,,,,5.1 SQL Server,數據庫的結構,,1.,邏輯數據庫,(,數據庫對象,),,SQL Server,數據庫是存儲數據的容器,是一個存放數據的表和支持這些數據的存儲、檢索、安全性和完整性的邏輯成分所組成的集合。,,數據庫對象,說明,表,由行和列構成的集合,用來存儲數據,數據類型,定義列或變量的數據類型,,SQL Server,提供了系統數據類型,并允許用戶自定義數據類型,視圖,由表或其他視圖導出的虛擬表,索引,為快速檢索提供支持且可以保證數據唯一性的輔助數據結構,約束,用于為表中的列定義完整性的規(guī)則,用戶,該數據庫中所有能使用的用戶信息,存儲過程,存放于服務器的預先編譯好的一組,T-SQL,語句,觸發(fā)器,特殊的存儲過程,當數據改變時,該存儲過程被自動執(zhí)行,2.,物理數據庫(數據庫文件),主數據文件,(,Primary Database File,):,擴展名為,.,mdf,,,是數據庫的,起點,,并指向其他文件,每個數據庫只有一個主文件。,,次文件,(,Secondary Database File):,.,ndf,,,是主文件的輔助文件,可以在不同的磁盤上創(chuàng)建數據庫文件,以提高處理效率,,,當主文件的大小超過操作系統的限制時,,,必須使用次文件。,,事務日志文件,(Log),:,.,ldf,,,用于存儲數據庫的更新情況等事務日志信息。如,insert, delete, update,操作都會記錄在案。,,通常,,,這三個文件都在,SQL,的,Data,文件夾中,SQL Server,事務日志,SQL Server,事務日志存儲數據庫的更新情況等事務日志信息,,,當數據庫損壞時,管理員使用事務日志恢復數據庫。,,每一個數據庫至少必須擁有一個事務日志文件,而且允許擁有多個日志文件。,,SQL Server,事務日志采用提前寫入的方式,。,事務日志的工作方式,,應用程序發(fā)送更改請求,1,磁盤,將更改記錄在磁盤上的事務,,日志中,3,定位數據頁,將其讀入緩存中,,并進行更改,2,緩存,磁盤,檢查點進程將已提交,,的事務寫入數據庫,4,3.,數據庫文件組,為了便于分配和管理,,SQL Server,允許將多個,數據文件,歸為一組,,,并賦予一個名稱,,,即文件組,.,,文件組有兩種,:,,主文件組,:,,包含主數據文件和任何其他不屬于另一個文件組的文件,,,系統表都包含在主文件組中,.,,用戶定義文件組,:,,在語句中使用關鍵字,filegroup,指定文件組,存儲結構示意圖,,數據庫對象,:,表,索引,視圖,觸發(fā)器,存儲過程,約束,用戶,圖表,多個次文件,.ndf,日志文件,.ldf,主文件,,.mdf,主文件組 次文件組,D,D,E,C,一個文件只能屬于一個文件組,;,一個文件組也只能被一個數據庫使用,;,日志文件不屬于任何文件組,.,1,2,,,文件組的好處,:,可以改善數據庫的查詢性能,.,,,,如:可以,將數據文件,data1.mdf,、,data2.ndf,和,data3.ndf,分別創(chuàng)建在三個盤上,這三個文件組成文件組,fgroup1,,在創(chuàng)建表的時候,就可以指定一個表創(chuàng)建在文件組,fgroup1,上。這樣該表的數據就可以分布在三個盤上,在對該表執(zhí)行查詢時,可以并行操作,大大提高了查詢效率,。,5.1.2,數據庫存儲結構,--,邏輯對象與物理存儲的關系,數據庫中的物理存儲單位是頁面和盤區(qū),可用于估算數據所占用的空間。,,,頁面,:是數據庫中,使用的最小數據單元,,占,8K,字節(jié),用于存儲數據,如數據表的一行或若干行,一行不允許跨頁面。,,盤區(qū),:是,SQL Server,創(chuàng)建,數據邏輯對象時使用的,分配單位,,有,8,個頁面,64K,,若新建一個數據庫中創(chuàng)建了一個表、兩個索引,在表中有一條記錄,則總共占用,3X64K=192K,的空間。,數據的存儲方式,擴展盤區(qū),(,8,個連續(xù)頁,每頁,8 KB,),數據頁,(,8 KB,),表,索引,,數據庫,數據(文件),,.,mdf,,或,.,ndf,日志(文件),,.,ldf,行的最大容量,,= 8060,字節(jié),即,數據庫是這樣的數據結構:一個數據庫是由若干文件組成,一個文件由若干盤區(qū)組成,一個盤區(qū)有,8,個頁面。,SQL Server,的數據庫結構小結,邏輯,存儲結構(,數據庫對象,)指的是數據庫是由,哪些性質的信息,所組成,,SQL Server,的數據庫不僅僅只是數據的存儲,所有與數據處理操作相關的信息都存儲在數據庫中。數據庫對象如表,索引,視圖,觸發(fā)器,存儲過程,約束,用戶,圖表等,.,,物理,存儲結構(,數據庫文件,)則是討論數據庫文件是,如何在磁盤上存儲的,,數據庫在磁盤上是以文件為單位存儲的,由數據庫文件和事務日志文件組成,一個數據庫至少應該包含一個數據庫文件和一個事務日志文件。,5.1.3,Sql,server,系統數據庫與系統表,系統數據庫,用戶數據庫,,master,model,tempdb,msdb,pubs,Northwind,User1,distribution,,Sql,server,數據庫的類型,1.SQL Server,系統數據庫簡介,,SQL Server,主要有,4,個,系統數據庫,,1.,Master,數據庫是,SQL Server,系統最重要的數據庫,它記錄了,SQL Server,系統的所有系統信息。這些系統信息包括所有的登錄信息、系統設置信息、,SQL Server,的初始化信息和其它系統數據庫及用戶數據庫的相關信息。,,2.,Model,數據庫是所有用戶數據庫和,Tempdb,數據庫的模板數據庫,它,含有,Master,數據庫,所有,系統表的子集,,這些系統表是每個用戶定義數據庫需要的。,3.,Msdb,數據庫是代理服務數據庫,為其警報、任務調度和記錄操作員的操作提供存儲空間。,,4.,Tempdb,是一個臨時數據庫,它為所有的臨時表、臨時存儲過程及其它臨時操作提供存儲空間。每次啟動,SQL Server,時都會清空。,,,,Pubs,和,Northwind,數據庫是示例數據庫,它們可以作為,SQL Server,的學習工具。,,Sql,server,數據表的分類,系統表,用戶表,sys…,,,sys…,,,sysusers,,,sysobjects,,,…,,,Orders,,,Customers,,,Products,,,在,SQL Server,中,每個數據庫中最多可以創(chuàng)建,200,萬個表,用戶創(chuàng)建的數據庫表中,最多可以定義,1024,列(字段)。,系統表,DBMS,的整個環(huán)境也是一個需要管理的環(huán)境,它自己也有很多數據和信息,也儲存在一些表中,這些表就是系統表。,,,存儲與,整個系統有關,的系統表,----,構成,系統目錄,,只存儲在,master,數據庫中,如:,,Syslogins,(登錄信息)、,sysmessages,(各種消息內容),,存儲,當前數據庫,的系統表,----,構成,數據庫目錄,,每個數據庫(包括,master,數據庫)都有,如:,,Sysusers,(用戶信息)、,sysobjects,(對象信息),,SQL Server,經常訪問這些目錄,檢索運行所需的必要信息。,幾個重要的系統表,,系統目錄,中的系統表(在,master,數據庫中):,,syslogins,:包含所有的用戶帳戶信息,包括名字、口令和配置信息。,,sysmessages,:包含所有,SQL S,erver,,可用的系統錯誤消息。,,sysservers,:包含本地服務器和遠程服務器的信息。,,sysdatabases,:包含服務器上所擁有的所有數據庫有關信息。,對,SQL Server,系統上的每個系統數據庫和用戶自定義的數據庫含有一行記錄。,,sysusers,:,,它對整個數據庫中的每個,Windows NT,用戶、,Windows NT,用戶組、,SQL Server,用戶或者,SQL Server,角色含有一行記錄。,,,數據庫目錄,中的系統表(在各個數據庫中都有),,,sysusers,:,它對,數據庫中每一個有權限訪問數據庫的用戶都對應一行記錄。,,sysfilegroups,:,數據庫中每個文件組的信息。,,sysconstraints,:,數據庫中所有約束的信息。,,sysprotects,:,數據庫中用戶對于對象所有的權限的信息。,,sysobjects,:,它對,數據庫中,每個數據庫對象含有一行記錄。,,syscolumns,:,它對基表或者視圖的每個列和存儲過程中的每個參數含有一行記錄。,,sysindexes,:,它對每個索引和沒有聚簇索引的每個表含有一行記錄,它還對包括文本,/,圖像數據的每個表含有一行記錄。,Compact Edition,,SQL Server Compact Edition,也不是一個新東西,它的前身是,SQL Server Mobile Edition 2.0,主要是為嵌入式系統和智能設備提供本地數據存儲的引擎。與,SQL Server,其它版本相比,它最大的不同是它不是作為一個服務存在的,而是一種輕量級的,依附在應用程序進程內的數據庫引擎。,,SQL Server Express Edition,一定需要通過,MS,提供的安裝包安裝;,Compact Edition,可以通過安裝包安裝,也可以將支持文件集成到應用程序的安裝包中,因為非常小,才,10,來個文件,,2M,都不到。,,5.2,界面方法創(chuàng)建和管理數據庫,5.2.1,創(chuàng)建數據庫,,創(chuàng)建數據庫需要一定許可,在默認情況下,只有系統管理員和擁有數據庫創(chuàng)建權限的人才可以創(chuàng)建數據庫。數據庫被創(chuàng)建后,創(chuàng)建數據庫的用戶自動成為該數據庫的所有者,dbo,。,,創(chuàng)建數據庫的過程實際上就是為數據庫設計名稱、設計所占用的存儲空間和存放文件位置的過程等。,,幾種方法:,,通過管理平臺創(chuàng)建數據庫,,使用,Transact-SQL,語言創(chuàng)建數據庫。,,一、通過管理平臺創(chuàng)建數據庫步驟:,,,(1),啟動,SQL Server,管理平臺,,(2),展開服務器,右擊,【,數據庫,】,快捷菜單選擇,【,新建數據庫,】,,彈出,【,數據庫屬性,】,窗口。,,(3),在,【,數據庫屬性,】,窗口中選,【,常規(guī),】,選項卡,在,【,名稱,】,欄中輸入數據庫的名稱。,,(4),選擇,【,數據文件,】,選項卡,指定數據庫文件名稱及存儲位置,設置其他屬性。,,(5),選擇,【,事務日志,】,選項卡,指定事務日志文件名稱及保存位置,并可以設置日志文件的初始大小、增長方式。,,(6),設置完成之后,單擊,【,確定,】,按鈕完成,。,通過管理平臺創(chuàng)建數據庫,關于數據庫的默認存儲位置,:,,主數據文件默認存儲位置和文件如下:,,,SQL Server,根目錄,\data\,數據庫名,.MDF,,日志文件的默認存儲位置和文件如下:,,,SQL Server,根目錄,\data\,數據庫名,_,Log.LDF,,,選擇“數據文件”和“事務日志”兩個標簽欄,顯示系統的默認設置,用戶可以更改這兩個文件的存放位置和文件名,。,,,有關參數的默認值:,,對于新創(chuàng)建的數據庫,系統對默認值為:數據文件初始大小,3MB,,日志文件的初始大小,1MB,,最大大小不限制,而實際上僅受硬盤空間的限制,允許數據庫自動增長,增長方式為按,10%,比例增長;,注意:,SQL Server,中的數據和事務日志文件不能存放在壓縮文件系統或象共享網絡目錄等遠程的網絡驅動器上。,,,SQL Server,的文件擁有兩個名稱:,,邏輯名稱、物理文件名,,當使用,Transact-SQL,命令語句訪問某一個文件時,必須使用該文件的邏輯名,。,,物理文件名是文件實際存儲在磁盤上的文件名,路徑是文件的完整磁盤目錄。,,通過管理平臺創(chuàng)建數據庫舉例,【,例,】,創(chuàng)建數據庫,CJGL,,初始大小為,5MB,,最大大小,50MB,,數據庫自動增長,增長方式是按,10%,比例增長;日志文件初始為,2MB,,最大可增長到,5MB,(默認為不限制),按,1MB,增長(默認是按,10%,比例增長);所有者是,Administrator,。,,,以,Administrator,身份登錄計算機,并啟動,SQL Server,服務。,5.2.2,修改,數據庫,方法: “管理平臺”中在,該數據庫名上,點擊鼠標右鍵,選擇“,屬性,”。,,對已存在的數據庫可以進行的修改包括:,,增加或刪除數據文件,,增加或刪除日志文件,,增加或刪除文件組,,改變數據文件的大小和增長方式,(,只能小,?,大),,改變日志文件的大小和增長方式,,注意: 修改時是不能改變邏輯名和物理名。,利用管理平臺修改數據庫,,(1),改變數據文件的大小和增長方式,(,只能小,?,大),【,例,1】,,將,CJGL,數據庫的主數據文件,CJGL.mdf,文件的最大尺寸由,50MB,修改為不限制。,(2),增加數據文件,(,增加的只能是輔助數據文件,.,ndf,),【,例,2】,在,CJGL,數據庫中增加數據文件,CJGLBAK,,其屬性均取系統默認值。,,操作方法:在“數據文件”選項卡點擊空白行,在“文件名”一欄中輸入數據文件名,并可設置文件的初始大小和增長屬性,利用管理平臺修改數據庫,,(3),刪除數據文件,【,例,3】,將,CJGL,數據庫中剛增加的輔助文件,CJGLBAK,刪除。,(4),增加或刪除文件組,,【,例,4】,設要在數據庫,CJGL,中增加一個名為,FGroup,的文件組。,,操作方法為:選擇“文件組”標簽欄,在,PRIMARY,行的下面一行輸入“,FGroup,”,文件組,單擊“確定”按鈕。,關于默認的文件組,,數據庫建立時的默認文件組為主文件組,PRIMARY,,,未指定文件組的對象都將放到默認文件組中。,,系統對象和系統表永遠保留在,PRIMARY,文件組內??捎?ALTER DATABASE,語句更改默認文件組,更改默認文件組可防止,用戶對象,與,系統對象,爭奪數據空間,,,調整主文件組中文件的大小,,若主文件組沒有空間,就不能往系統表中寫入任何信息,,在下列情況下,主文件組會填滿:,,關閉了自動增長選項,,在主文件組中的文件的所有磁盤空間耗盡。,,解決辦法:,,重新打開自動增長,,將其它文件從磁盤上移走以釋放更多的空間。,,5.2.3,,刪除,數據庫,【,例,】,利用管理平臺刪除,CJGL,數據庫。,,,在彈出的快捷菜單上選擇“刪除”,5.2.4,分離和附加數據庫,SQL Server,允許分離數據庫的數據和事務日志文件,然后將其重新附加到另一臺服務器,或者同一臺服務器上,,分離數據庫,,分離數據庫是將數據庫從,SQL Server,環(huán)境中移除,但是保持組成該數據庫的數據和事務日志文件中的數據庫完好無損,,分離數據庫要求沒有用戶正在使用數據庫,數據庫中沒有未完成的事務,并且在內存中沒有這個數據庫的未提交的數據(臟頁),,一旦數據庫被分離,其條目就從,master,數據庫的,sysdatabases,,表中被移除。從,SQL Server,的角度看,數據庫似乎被刪除了但是其物理文件仍然保存在磁盤上,分離和附加數據庫(續(xù)),附加數據庫,,當附加數據庫時,必須指定主數據文件,(,.,mdf,),的名稱和物理位置,,無論原來分離時數據庫的名稱是什么,在“附加為”處可以重新指定不同于原來的數據庫名 。,,若附加的文件超過了,16,個,可使用,CREATE DATABASE,語句并指定,for attach,選項,,操作方法,,附加數據庫:,右鍵單擊“數據庫”,?,“,附加”,,分離數據庫:,指定數據庫右鍵單擊“任務”,?,,”分離 “,5.3,使用,T-SQL,(命令方式)創(chuàng)建和管理數據庫,5.3.1 T-SQL,語言簡介,,歷史,,SQL:,Struceured,Query,Languang,,1974,年,由,Boyce,和,Chamber,提出,,稱為,SEQUEL,語言,,1975-1979,年,由,IBM,的,San Jose,研究室研制,在,System R,上實現(吉姆,·,格雷,Jim Gray,主持),,,稱為,SEQUEL2,,即目前的,SQL,語言。,,1982,年美國國家標準化組織,ANSI,確認,SQL,為數據庫系統的工業(yè)標準,現在許多關系型數據庫供應商都在自己的數據庫中支持,SQL,語言,有關標準化,有關組織,,ANSI (American Natural Standard Institute),,ISO (International Organization for Standardization),,有關標準,,ANSI SQL-86,,ANSI SQL-89,:增加了對完整性約束的支持,,ISO SQL-92,(,SQL2,):增加了許多新特性,如新的數據類型,更豐富的數據操作,更強的完整性、安全性支持等。,,ISO SQL-99,(,SQL3,):增加對面向對象模型的支持,,ISO SQL-2003,新的標準,1,.,T-SQL,簡介,Transact SQL,是微軟對,ANSI SQL-99,標準的擴展,是,SQL Server,的核心,它擴展的主要功能是:加入了程序的控制結構,如,IF…ELSE,、,WHILE,語句等;加入了局部變量和全局變量等。,,利用,Transact SQL,可以編寫出復雜的查詢語句,可以建立駐留在,SQL Server,上的數據庫對象,如觸發(fā)器、存儲過程等,,注意:如希望開發(fā)的程序具有更好的可移植性,那么應盡量使用標準的,SQL,,否則就可考慮使用,Transact SQL,。,,SQL,語言集數據查詢、數據操縱、數據定義和數據控制功能于一體,是一個綜合的、通用的、功能極強,同時又簡潔易學的語言。,T-SQL,語言由以下幾部分組成。,SQL,功能,動詞,數據定義,DDL,,(,Data Definition Language,),CREATE,,,DROP,,,ALTER,數據操縱,DML,,(Data Manipulation Language,),INSERT,,,UPDATE,,,DELETE,;,SELECT,數據控制,DCL,,(,Data Control Language,),GRANT,,,REVOKE,,DENY,其他的語言元素(如常量,變量,運算符,控制語句等),Transact-SQL,,語句,的功能分類,,數據查詢,DQL,,(,Data Query Language,),SELECT,2.,標識符,標識符,,,用來定義服務器、數據庫、數據庫對象和變量等的名稱,,標識符的命名規(guī)則,:,,首字符必須是其中之一,:,字母,,,漢字,, _ , @ , #,,以后可以是,:,字母,,,數字,, @, $, #, _,,不能是保留字,,,不區(qū)分大小寫,,,不允許有空格,,所有標識符長度為,128,。,,,SQL Server,標識符有兩種,,常規(guī)標識符,:,嚴格遵守命名規(guī)則,.,,定界標識符,:,可以不遵守命名規(guī)則,使用雙引號“”或中括弧,[ ],括起來,如“,my table”, [ select],,SQL Server,規(guī)定,:,沒有使用定界符的標識符,,,一律按常規(guī)對待,.,3.,邏輯數據庫對象的完全限定名與部分限定名,(,1,) 完全限定名:是對象的全名,,包括四個部分:,,服務器名、數據庫名、所有者名和對象名,,,其格式為:,,server. database. owner. Object,,,(,2,) 部分限定名,,使用全名往往很繁瑣且沒有必要,所以常省略其中的某些部分,對象全名的四個部分中的前三個部分均可以被省略,當省略中間的部分時,圓點符“,.”,不可省略。,對象名的有效格式可以是:,,server.database.owner.object,,server.database,. . object,,server . .,owner.object,,server. . .object,,database.owner.object,,database . . object,,owner . Object,,,如,:,以,sa,身份登錄服務器后,作以下查詢:,,SELECT * FROM,[WINXP-SP2].,學分制選課,.DBO.,學生信息,,SELECT * FROM GJL.dbo.TABLE1,,SELECT * FROM ABC. .TABLE1,,,說明:創(chuàng)建一個對象必須具有唯一合法的完全,限定,名(四部分合起來唯一),同一服務器數據庫不能重名,同一所有者的對象名(表,視圖,存儲過程等)不能重名。,,在部分限定名中,未指出的部分使用以下默認值:,,服務器名稱默認為本地服務器上的當前實例,,數據庫名稱默認為當前數據庫,,所有者名稱默認為指定數據庫中與當前連接的登錄賬戶相關聯的用戶名,,或者數據庫所有者(,dbo,)。,4.,語法格式約定,約定,用于,|,(豎線),分隔的語法項,多選一。表示只能使用括號或大括號中的其中一項。,[ ],(方括號),可選語法項。不要鍵入方括號。,{ },(大括號),必選語法項。不要鍵入大括號。,[,,...,n,],指示前面的項可以重復,n,,次。各項之間以逗號分隔。,[...,n,],指示前面的項可以重復,n,,次。每一項由空格分隔。,<,標簽,,> ::=,語法塊的名稱。用于對在語句中多個位置上使用的過長語法段或語法單元進行分組和標記。,5.3.2,使用,T-SQL,(命令方式)創(chuàng)建數據庫,語法格式:,,CREATE DATABASE,database_name,,,[ ON /*,指定數據文件和文件組屬性*,/ [ <,filespec,> [,,,...n ] ],,[,,,<,filegroup,> [,,,...n ] ],,/*,必須先有主文件組,PRIMARY*/,,],,[ LOG ON { <,filespec,> [,,,...n ] } ],,/*,指定日志文件屬性*,/,,[ COLLATE,collation_name,],,[ FOR LOAD | FOR ATTACH ],,,<,filespec,> ::=,,[ PRIMARY ],,( [ NAME =,logical_file_name,, ],,FILENAME = ',os_file_name,' [ , SIZE = size ] [ , MAXSIZE = {,max_size,| UNLIMITED } ] [ , FILEGROWTH =,growth_increment,],,),,<,filegroup,> ::=,,FILEGROUP,filegroup_name,<,filespec,>,,5.3.2,使用,CREATE DATABASE,創(chuàng)建數據庫,【,例,5.2】,創(chuàng)建一個名為,CJGL,的數據庫,其初始大小為,5MB,,最大大小,50MB,,允許數據庫自動增長,增長方式是按,10%,比例增長;日志文件初始為,2MB,,最大可增長到,5MB,,按,1MB,增長。假設,SQL Server,服務已啟動,并以,Administrator,身份登錄計算機。,5.3.2,使用,CREATE DATABASE,創(chuàng)建數據庫,在,T-SQL,語句輸入窗口中輸入如下語句:,,CREATE DATABASE CJGL,,ON,,( NAME=',CJGL_Data,',,,FILENAME=',e:\sql\CJGL.mdf,',,,SIZE=5MB,,,MAXSIZE=50MB,,,FILEGROWTH=10%,,),,LOG ON,,( NAME=',CJGL_Log,',,,FILENAME=',e:\sql\CJGL_Log.ldf,',,,SIZE=2MB,,,MAXSIZE=5MB,,,FILEGROWTH=1MB,,),,GO,主文件組名,PRIMARY,可以省略,在數據文件結束時無逗號,在右括號前無逗號,不宜為根部,即,e:\CJGL.mdf,5.3.1,使用,CREATE DATABASE,創(chuàng)建數據庫,【,例,】,創(chuàng)建,TEST1,的數據庫。,,,,CREATE DATABASE TEST1,,ON,,( NAME = ‘TEST1_data’,,,FILENAME = ‘e:\sql\t1.mdf’,,),,GO,此處,日志文件沒有特別指定,而是使用默認方式創(chuàng)建,【,例,5.3】,,創(chuàng)建一個名為,TEST2,的數據庫,它有三個數據文件,其中主數據文件為,100MB,,最大大小為,200MB,,按,20MB,增長;,2,個輔數據文件為,20MB,,最大大小不限,按,10%,增長;有,2,個日志文件,大小均為,50MB,,最大大小均為,100MB,,按,10MB,增長。,,CREATE DATABASE TEST2,,ON PRIMARY,,( NAME = 'TEST2_data1',,,FILENAME = 'e:\sql\test2_data1.mdf',,,SIZE = 100MB,,,MAXSIZE = 200MB,,,FILEGROWTH = 20MB,,),,,( NAME = 'TEST2_data2',,,FILENAME = 'e:\sql\test2_data2.ndf',,,SIZE = 20MB,,,MAXSIZE = UNLIMITED,,,FILEGROWTH = 10%,,),,此處加上,filegroup,,secfg,,就可以自定義一個文件組,secfg,,(,,NAME = 'TEST2_data3',,,FILENAME = 'e:\sql\test2_data3.ndf',,,SIZE = 20MB,,,MAXSIZE = UNLIMITED,,,FILEGROWTH = 10%,,),,LOG ON,,( NAME = 'TEST2_log1',,,FILENAME = 'e:\sql\test2_log1.ldf',,,SIZE = 50MB,,,MAXSIZE = 100MB,,,FILEGROWTH = 10MB,,),,,( NAME = 'TEST2_log2',,,FILENAME = 'e:\sql\test2_log2.ldf',,,SIZE = 50MB,,,MAXSIZE = 100MB,,,FILEGROWTH = 10MB,,),,GO,創(chuàng)建,多文件組,數據庫舉例,Create database sales,,On primary,,(name=spri1_dat,,,Filename=,'e:\,spri1dat.mdf,',,,,Size=10,maxsize=50,filegrowth=15%),,,(name=spri2_dat,,,Filename=,'e:\,spri2dat.ndf,',,,,Size=10,maxsize=50,filegrowth=15%),,,,Filegroup,salesgroup1,,(name=sgrp1fi1_dat,,,Filename=,'e:\,sgrp1fi1_dat.ndf,',,,,Size=10,maxsize=50,filegrowth=5),,,(name=sgrp1fi2_dat,,,Filename=,'e:\,sgrp1fi2_dat.ndf,',,,,Size=10,maxsize=50,filegrowth=5),,Log on,,(name=,sale_log,,,,Filename=,',e:\,salelog.ldf,',,,,Size=5,maxsize=25,filegrowth=5),