![第五章-SQL-Server-2008數(shù)據(jù)庫和表_第1頁](http://file4.renrendoc.com/view/b8f0bf26c31858991fa0ff0d482a7e63/b8f0bf26c31858991fa0ff0d482a7e631.gif)
![第五章-SQL-Server-2008數(shù)據(jù)庫和表_第2頁](http://file4.renrendoc.com/view/b8f0bf26c31858991fa0ff0d482a7e63/b8f0bf26c31858991fa0ff0d482a7e632.gif)
![第五章-SQL-Server-2008數(shù)據(jù)庫和表_第3頁](http://file4.renrendoc.com/view/b8f0bf26c31858991fa0ff0d482a7e63/b8f0bf26c31858991fa0ff0d482a7e633.gif)
![第五章-SQL-Server-2008數(shù)據(jù)庫和表_第4頁](http://file4.renrendoc.com/view/b8f0bf26c31858991fa0ff0d482a7e63/b8f0bf26c31858991fa0ff0d482a7e634.gif)
![第五章-SQL-Server-2008數(shù)據(jù)庫和表_第5頁](http://file4.renrendoc.com/view/b8f0bf26c31858991fa0ff0d482a7e63/b8f0bf26c31858991fa0ff0d482a7e635.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫實(shí)用技術(shù)
SQLServer2008第五章SQLServer2008數(shù)據(jù)庫和表第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)庫概述1數(shù)據(jù)庫基本管理2數(shù)據(jù)庫高級管理3SQLServer2008SQLServer2008數(shù)據(jù)表4數(shù)據(jù)表的創(chuàng)建5數(shù)據(jù)表的管理6表數(shù)據(jù)的管理75.1SQLServer2008數(shù)據(jù)庫概述5.1.1數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu):數(shù)據(jù)庫的邏輯結(jié)構(gòu)數(shù)據(jù)庫由若干個(gè)用戶可視的對象構(gòu)成,主要包括下列數(shù)據(jù)庫對象:
數(shù)據(jù)表、視圖、約束、規(guī)則、默認(rèn)、索引、存儲(chǔ)過程、觸發(fā)器等。數(shù)據(jù)庫的物理結(jié)構(gòu)數(shù)據(jù)庫的物理結(jié)構(gòu)表現(xiàn)為操作系統(tǒng)文件,一個(gè)數(shù)據(jù)庫由一個(gè)或多個(gè)磁盤上的文件組成。SQLServer2008數(shù)據(jù)庫的文件有兩種類型:數(shù)據(jù)文件日志文件第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008對象作用表數(shù)據(jù)庫中數(shù)據(jù)的實(shí)際存放處所。視圖定制復(fù)雜或常用的查詢,以便用戶使用;限定用戶只能查看表中的特定行或列;為用戶提供統(tǒng)計(jì)數(shù)據(jù)而不展示細(xì)節(jié)。索引加快從表或視圖中檢索數(shù)據(jù)的效率。存儲(chǔ)過程提高性能;封裝數(shù)據(jù)庫的部分或全部細(xì)節(jié);幫助在不同的數(shù)據(jù)庫應(yīng)用程序之間實(shí)現(xiàn)一致的邏輯。約束、規(guī)則、默認(rèn)值和觸發(fā)器確保數(shù)據(jù)庫的數(shù)據(jù)完整性;強(qiáng)制執(zhí)行業(yè)務(wù)規(guī)則。登錄、用戶、角色和組保障數(shù)據(jù)安全的基礎(chǔ)。5SQLServer中常用的數(shù)據(jù)庫對象數(shù)據(jù)庫對象的標(biāo)識(shí)符例如數(shù)據(jù)庫名、表名、視圖名、列名等。SQLServer標(biāo)識(shí)符的命名遵循以下規(guī)則:(1)標(biāo)識(shí)符包含的字符數(shù)必須在1-128之間。(2)標(biāo)識(shí)符的第一個(gè)字符必須是字母、下劃線(_)、at符號(@)或者數(shù)字符號(#)。(3)標(biāo)識(shí)符的后續(xù)字符可以為字母、數(shù)字或“@”符號、“$”符號、數(shù)字符號或下劃線。(4)標(biāo)識(shí)符不能是Transact-SQL的保留字,也不能包含空格。65.1SQLServer2008數(shù)據(jù)庫概述5.1.2數(shù)據(jù)庫文件:主數(shù)據(jù)文件是數(shù)據(jù)庫的起點(diǎn),包含數(shù)據(jù)庫的啟動(dòng)信息、數(shù)據(jù)信息。每個(gè)數(shù)據(jù)庫有且只有一個(gè)主數(shù)據(jù)文件。擴(kuò)展名為.mdf。次要數(shù)據(jù)文件存儲(chǔ)主數(shù)據(jù)文件未存儲(chǔ)的所有其他數(shù)據(jù)和對象。不是數(shù)據(jù)庫必需的文件,
0個(gè)、一個(gè)或多個(gè)。擴(kuò)展名是.ndf。事務(wù)日志文件每個(gè)數(shù)據(jù)庫至少擁有一個(gè)自己的日志文件。日志文件的大小最少是1MB。默認(rèn)擴(kuò)展名是.ldf。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer20085.1SQLServer2008數(shù)據(jù)庫概述5.1.3數(shù)據(jù)庫文件組:文件組是數(shù)據(jù)文件的邏輯組合,將多個(gè)數(shù)據(jù)庫文件集合起來形成的一個(gè)整體。每個(gè)文件組有一個(gè)組名。數(shù)據(jù)庫文件組有三類:主要文件組(primary):所有系統(tǒng)表都被分配到主要文件組中。一個(gè)數(shù)據(jù)庫有1個(gè)主要文件組。用戶定義文件組(user_defined):是用戶首次創(chuàng)建數(shù)據(jù)庫時(shí),或修改數(shù)據(jù)庫時(shí)自定義的,其目的在于數(shù)據(jù)分配,以提高表的讀寫效率。默認(rèn)文件組(default):每個(gè)數(shù)據(jù)庫中均有一個(gè)文件組被指定為默認(rèn)文件組。如果在數(shù)據(jù)庫中創(chuàng)建對象時(shí)沒有指定對象所屬的文件組,對象將被分配給默認(rèn)文件組。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008文件組的作用:文件組可以把一些指定的文件組合在一起,方便管理和分配數(shù)據(jù)。當(dāng)對數(shù)據(jù)庫對象寫操作時(shí),數(shù)據(jù)庫會(huì)根據(jù)組內(nèi)數(shù)據(jù)文件的大小,按比例寫入組內(nèi)所有數(shù)據(jù)文件中。當(dāng)查詢數(shù)據(jù)時(shí),系統(tǒng)會(huì)創(chuàng)建多個(gè)單獨(dú)的線程來并行讀取分配在不同物理磁盤上的每個(gè)文件,從一定程度上提高了查詢速度。9文件組的使用場合當(dāng)有多個(gè)磁盤,希望把文件分布在這些磁盤上以提高性能。10Student數(shù)據(jù)庫Student_1.mdfStudent_2.ndfStudent_3.ndfStudent_log.ldfC盤d盤e盤f盤primaryStudgrpStudgrp在使用文件組時(shí),應(yīng)當(dāng)注意以下幾個(gè)準(zhǔn)則:文件或文件組不能由一個(gè)以上的數(shù)據(jù)庫使用。文件只能是一個(gè)文件組的成員。數(shù)據(jù)和事務(wù)日志信息不能屬于同一文件或文件組。事務(wù)日志文件不能屬于任何文件組。11SQLServer中的數(shù)據(jù)庫12數(shù)據(jù)庫的邏輯組件(數(shù)據(jù)庫對象)…Sales數(shù)據(jù)庫SQLServer
表
視圖數(shù)據(jù)庫的物理實(shí)現(xiàn)(數(shù)據(jù)庫文件)…SalesDat1.mdfSalesDat2.ndfSalesLog1.ldf主數(shù)據(jù)文件次數(shù)據(jù)文件日志文件
索引存儲(chǔ)過程用戶視圖物理視圖圖5-1數(shù)據(jù)庫的用戶視圖和物理視圖SQLServer中的數(shù)據(jù)庫文件13主數(shù)據(jù)文件*.mdf僅有一個(gè)事務(wù)日志文件*.ldf一到多個(gè)
次數(shù)據(jù)文件*.ndf零到多個(gè)次數(shù)據(jù)文件*.ndf零到多個(gè)(僅有一個(gè))主文件組(零到多個(gè))次文件組事務(wù)日志一個(gè)數(shù)據(jù)庫的文件集圖5-2數(shù)據(jù)庫的文件組成5.2SQLServer2008數(shù)據(jù)庫基本管理在SQLServer2008中,對數(shù)據(jù)庫管理操作有兩種方式:SQLServerManagementStudio(SSMS)圖形化界面方式。T-SQL代碼命令方式。5.2.1創(chuàng)建用戶數(shù)據(jù)庫1.規(guī)劃數(shù)據(jù)庫需要考慮的問題:數(shù)據(jù)庫名稱、數(shù)據(jù)庫所有者。數(shù)據(jù)文件和事務(wù)日志文件的邏輯名、物理名、初始大小、增長方式和最大容量。數(shù)據(jù)庫用戶數(shù)量和用戶權(quán)限。數(shù)據(jù)庫大小與硬件配置的平衡、是否使用文件組。數(shù)據(jù)庫的備份與恢復(fù)。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理2.創(chuàng)建用戶數(shù)據(jù)庫操作:創(chuàng)建用戶數(shù)據(jù)庫:【例5-1】創(chuàng)建計(jì)費(fèi)系統(tǒng)數(shù)據(jù)庫:數(shù)據(jù)庫名稱為“BillingSys”。主要數(shù)據(jù)文件邏輯名為“BillingSys.mdf”,保存路徑為“C:\BillingSystem\Data”,日志文件邏輯名為“BillingSys_log.ldf”,保存路徑為“C:\BillingSystem\Data_Log”。主要數(shù)據(jù)文件初始大小為3MB,最大大小為不受限制,增長量為1MB;日志文件的初始大小為1MB,最大大小為20MB,增長比例為10%。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理創(chuàng)建用戶數(shù)據(jù)庫操作:(1)利用SSMS創(chuàng)建用戶數(shù)據(jù)庫:在SSMS窗口的“對象資源管理器”中選擇“數(shù)據(jù)庫”文件夾并右擊,在彈出快捷菜單中選擇“新建數(shù)據(jù)庫”命令。打開“新建數(shù)據(jù)庫”的對話框,默認(rèn)進(jìn)入選擇頁的“常規(guī)”欄,設(shè)置新建數(shù)據(jù)庫的名字,如左圖所示。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理創(chuàng)建用戶數(shù)據(jù)庫操作:(1)利用SSMS創(chuàng)建用戶數(shù)據(jù)庫:在“數(shù)據(jù)庫文件”中,可以設(shè)置文件的名稱、位置及大小。在“自動(dòng)增長”列中,可以選擇文件是否自動(dòng)增長和是否有最大限制。在“路徑”列中可以通過單擊按鈕來指定文件所在的位置,如左下圖所示。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理創(chuàng)建用戶數(shù)據(jù)庫操作:(1)利用SSMS創(chuàng)建用戶數(shù)據(jù)庫:單擊選擇頁中的“選項(xiàng)”欄,打開“選項(xiàng)”選項(xiàng)。在“選項(xiàng)”頁中,選擇“文件組”選項(xiàng),打開“文件組”選項(xiàng)卡,可以對文件組進(jìn)行設(shè)置。設(shè)置完成后,單擊“確定”按鈕,即可創(chuàng)建數(shù)據(jù)庫。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理創(chuàng)建用戶數(shù)據(jù)庫操作:(2)利用T-SQL語句創(chuàng)建用戶數(shù)據(jù)庫關(guān)于T-SQL語句格式約定:SQL語句在書寫時(shí)不區(qū)分大小寫,為了清晰,一般都用大寫表示系統(tǒng)保留字,
用小寫表示用戶自定義的名稱?!癧]”表示該項(xiàng)可省略,省略時(shí)各參數(shù)取默認(rèn)值;a|b表示a或b任選其一,不能同時(shí)都選?!皗}”表示是必選的;[,…n]”表示大括號括起來的內(nèi)容可以重復(fù)寫多次。<>括起來的內(nèi)容表示在實(shí)際編寫語句時(shí),用相應(yīng)的內(nèi)容替代;第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理創(chuàng)建用戶數(shù)據(jù)庫操作:新建數(shù)據(jù)庫語句格式:CREATEDATABASE數(shù)據(jù)庫名[ON{[PRIMARY](NAME=邏輯文件名,FILENAME=物理文件名[,SIZE=初始大小][,MAXSIZE={最大大小|UNLIMITED}][,FILEGROWTH=文件增長幅度])}[,…n]LOGON{[PRIMARY](NAME=邏輯文件名,FILENAME=物理文件名[,SIZE=初始大小][,MAXSIZE={最大大小|UNLIMITED}][,FILEGROWH=文件增長幅度])}[,…n]][;]第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理創(chuàng)建用戶數(shù)據(jù)庫操作:參數(shù)說明如下:數(shù)據(jù)庫名:新建的數(shù)據(jù)庫名稱。數(shù)據(jù)庫名稱在SQLServer的實(shí)例中必須唯一,并且必須符合標(biāo)識(shí)符規(guī)則。最長為128個(gè)字符。每個(gè)服務(wù)器管理的數(shù)據(jù)庫最多為32767個(gè)。ON:指定顯式定義用來存儲(chǔ)數(shù)據(jù)庫數(shù)據(jù)部分的磁盤文件(數(shù)據(jù)文件)。PRIMARY:在主文件組中指定文件。LOGON:指定顯式定義用來存儲(chǔ)數(shù)據(jù)庫日志的磁盤文件(日志文件)。NAME:指定文件的邏輯名稱。FILENAME:指定操作系統(tǒng)(物理)文件名稱,即包含路徑和文件名,且指定的路徑必須存在。SIZE:指定文件的初始大小,用戶可以以兆字節(jié)(MB)或千字節(jié)(KB)為單位。MAXSIZE:指定文件可增大到的最大大小。UNLIMITED:指定文件將增長到整個(gè)磁盤。FILEGROWTH:指定文件的自動(dòng)增量。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理使用CREATEDATABASE語句完成例5-1中的數(shù)據(jù)庫創(chuàng)建:打開SSMS,并用“Windows身份驗(yàn)證”登錄,單擊標(biāo)準(zhǔn)工具欄的“新建查詢”按鈕,打開查詢編輯窗口,在查詢編輯窗口中輸入如下的T-SQL語句,單擊工具欄上的“執(zhí)行”按鈕執(zhí)行輸入的SQL語句。CREATEDATABASEBillingSys --數(shù)據(jù)庫名稱ONPRIMARY --在主文件組中建立主要數(shù)據(jù)文件(NAME=BillingSys, --主要數(shù)據(jù)邏輯文件名FILENAME='c:\BillingSystem\Data\BillingSys.mdf',--邏輯文件名的物理文件路徑SIZE=3, --初始大小3MBFILEGROWTH=1 --增長量為MB)LOGON --建立日志文件(NAME=BillingSys_log, --日志文件名FILENAME='c:\BillingSystem\Data_Log\BillingSys_log.ldf',--日志文件名的路徑SIZE=1, --初始大小1MBMAXSIZE=20, --最大容量為MBFILEGROWTH=10% --增長速度為%第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008補(bǔ)例5-1最簡形式的創(chuàng)建數(shù)據(jù)庫(不指定文件)語句。CREATEDATABASESales補(bǔ)例5-2不指定SIZE創(chuàng)建數(shù)據(jù)庫。CREATEDATABASESales2ON(NAME=Sales2_dat,FILENAME='C:\DataBase\Sales2.mdf')24補(bǔ)例5-3創(chuàng)建簡單的數(shù)據(jù)庫。CREATEDATABASESales3ON(NAME=Sales3_dat,FILENAME='C:\DataBase\Sales3.mdf',SIZE=4,MAXSIZE=10,FILEGROWTH=1)2526補(bǔ)例5-4:用T-SQL語句創(chuàng)建學(xué)生信息管理數(shù)據(jù)庫,數(shù)據(jù)庫名為student,將數(shù)據(jù)文件和日志文件存放在d:\stud中,數(shù)據(jù)文件和日志文件的初始大小為3MB,增長幅度為1MB,文件大小限制為20MB。CREATEDATABASEstudentON(NAME=’student_data’,FILENAME=’d:\stud\student_data.mdf’,SIZE=3MB,FILEGROWTH=1MB,MAXSIZE=20MB)LOGON(NAME=’student_log’,FILENAME=’d:\stud\student_log.ldf’,SIZE=3MB,FILEGROWTH=1MB,MAXSIZE=20MB)GO27補(bǔ)例5-5:某公司生產(chǎn)許多產(chǎn)品,數(shù)據(jù)量大,需要建立產(chǎn)品信息數(shù)據(jù)庫。數(shù)據(jù)庫命名為product.其數(shù)據(jù)文件和事務(wù)文件分別需要3個(gè),文件信息為:邏輯名物理名文件組初始大小增長率最大值p1_datad:\product\product_data1.mdfprimary315%p2_datad:\product\product_data2.ndfusergroup315%10p3_datad:\product\product_data3.ndfusergroup315%20p1_logd:\product\product_log1.ldf210%p2_logd:\product\product_log2.ldf210%28CREATEDATABASEproductONPRIMARY(NAME='p1_DATA',FILENAME='d:\product\product_DATA1.mdf',SIZE=3MB,FILEGROWTH=15%),FILEGROUPUSERGROUP(NAME='p2_DATA',FILENAME='d:\product\product_DATA2.ndf',SIZE=3MB,MAXSIZE=10MB,FILEGROWTH=15%),
(NAME='p3_DATA',FILENAME='d:\product\product_DATA3.ndf',SIZE=3MB,MAXSIZE=20MB,FILEGROWTH=15%)29LOGON(NAME='p1_log',FILENAME='d:\product\product_log1.ldf',SIZE=2MB,FILEGROWTH=10%),(NAME='p2_log',FILENAME='d:\product\product_log2.ldf',SIZE=2MB,FILEGROWTH=10%)補(bǔ)例5-6創(chuàng)建指定數(shù)據(jù)文件和事務(wù)日志文件的數(shù)據(jù)庫。CREATEDATABASESales4ON(NAME=Sales4_dat,FILENAME='C:\DataBase\sales4dat.mdf',SIZE=10000KB,MAXSIZE=500000KB,FILEGROWTH=5)LOGON(NAME='Sales4_log',FILENAME='C:\DataBase\sales4log.ldf',SIZE=5,MAXSIZE=25,FILEGROWTH=5)30SQLServer2008數(shù)據(jù)庫基本管理5.2.2查看、修改或刪除用戶數(shù)據(jù)庫屬性:1.利用SSMS對用戶數(shù)據(jù)庫進(jìn)行基本管理:查看或配置用戶數(shù)據(jù)庫:打開SSMS,在“對象資源管理器”窗口展開“數(shù)據(jù)庫”節(jié)點(diǎn),選擇數(shù)據(jù)庫,右鍵選擇“屬性”命令,打開“數(shù)據(jù)庫屬性”對話框:第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理查看、修改或刪除用戶數(shù)據(jù)庫屬性:利用SSMS對用戶數(shù)據(jù)庫進(jìn)行基本管理:刪除用戶數(shù)據(jù)庫:在SSMS的“對象資源管理器”中展開“數(shù)據(jù)庫”節(jié)點(diǎn),選擇數(shù)據(jù)庫,右鍵選擇“刪除”命令,打開“刪除對象”窗口,如下圖。在“刪除對象”窗口,確認(rèn)是否要?jiǎng)h除的數(shù)據(jù)庫,可選擇“關(guān)閉現(xiàn)有連接”復(fù)選框決定是否要?jiǎng)h除備份及關(guān)閉已存在的數(shù)據(jù)庫連接。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理查看、修改或刪除用戶數(shù)據(jù)庫屬性:利用T-SQL語句對用戶數(shù)據(jù)庫進(jìn)行基本管理:選擇數(shù)據(jù)庫:語句格式:USE數(shù)據(jù)庫名其中,數(shù)據(jù)庫名為需要選擇的數(shù)據(jù)庫名稱。例:useBillingSys第五章SQLServer2008數(shù)據(jù)庫和表SQLServer20082023/9/2734在SSMS中打開數(shù)據(jù)庫。在“對象資源管理器”窗格中展開“數(shù)據(jù)庫”結(jié)點(diǎn),單擊要打開的數(shù)據(jù)庫,如圖所示。此時(shí)右窗格中列出的是當(dāng)前打開的數(shù)據(jù)庫的對象。圖
在“對象資源管理器”窗格中打開數(shù)據(jù)庫2023/9/2735在查詢分析器中,可以通過使用USE語句打開并切換數(shù)據(jù)庫,也可以直接通過數(shù)據(jù)庫下拉列表打開并切換,如圖所示。圖3-10在“查詢分析器”窗格中切換數(shù)據(jù)庫查看數(shù)據(jù)庫屬性:執(zhí)行存儲(chǔ)過程用Exec語句。與數(shù)據(jù)庫屬性相關(guān)的系統(tǒng)提供存儲(chǔ)過程如:sp_helpdb:顯示有關(guān)數(shù)據(jù)庫和數(shù)據(jù)庫參數(shù)信息。sp_spaceused:查看數(shù)據(jù)庫空間信息。sp_dboptions:查看數(shù)據(jù)庫選項(xiàng)信息。SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理查看、修改或刪除用戶數(shù)據(jù)庫屬性:利用T-SQL語句對用戶數(shù)據(jù)庫進(jìn)行基本管理:查看數(shù)據(jù)庫屬性:執(zhí)行存儲(chǔ)過程用Exec語句。【例5-2】查詢數(shù)據(jù)庫billingSys的相關(guān)參數(shù)信息。UsebillingSysExecsp_helpdb第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008Execsp_helpdbbillingSys【例5-3】查詢數(shù)據(jù)庫billingSys的空間信息。UsebillingSysExecsp_spaceused【例5-4】查詢數(shù)據(jù)庫billingSys的選項(xiàng)信息。Execsp_dboptionbillingSysautocreatestatistics,如果為true,將在優(yōu)化過程中自動(dòng)生成優(yōu)化查詢所需的任何缺少的統(tǒng)計(jì)信息。autoupdatestatistics,如果為true,將在優(yōu)化過程中自動(dòng)生成優(yōu)化查詢所需的任何過期統(tǒng)計(jì)信息。SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理查看、修改或刪除用戶數(shù)據(jù)庫屬性:利用T-SQL語句對用戶數(shù)據(jù)庫進(jìn)行基本管理:修改數(shù)據(jù)庫:ALTERDATABASE語句格式:ALTERDATABASE數(shù)據(jù)庫名{ADDFILE數(shù)據(jù)文件名[,…,n][TOFILEGROUP文件組名]|ADDLOGFILE日志文件名[,…,n]|REMOVEFILE邏輯文件名|MODIFYFILE數(shù)據(jù)文件|ADDFILEGROUP文件組名|REMOVEFILEGROUP文件組名|MODIFYFILEGROUP文件組名{文件組屬性|NAME=新文件組名}}第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理查看、修改或刪除用戶數(shù)據(jù)庫屬性:利用T-SQL語句對用戶數(shù)據(jù)庫進(jìn)行基本管理:修改數(shù)據(jù)庫:ALTERDATABASE語句參數(shù)說明如下:ADDFILE:向指定的數(shù)據(jù)庫文件組添加新的數(shù)據(jù)文件。ADDLOGFILE:向數(shù)據(jù)庫添加事務(wù)日志文件。REMOVEFILE:從SQLServer的實(shí)例中刪除邏輯文件說明并刪除物理文件。注意,只有文件為空時(shí)才能被刪除。MODIFYFILE:修改某一文件的屬性。ADDFILEGROUP:向數(shù)據(jù)庫添加文件組。REMOVEFILEGROUP:從SQLServer的實(shí)例中刪除文件組。MODIFYFILEGROUP:修改某一文件組的屬性。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理【例5-5】按下列要求修改數(shù)據(jù)庫BillingSys:添加兩個(gè)次要數(shù)據(jù)文件BS_data1,BS_data2和一個(gè)事務(wù)日志文件BS_log1;次要數(shù)據(jù)文件BS_data1.ndf和BS_data2.ndf的保存路徑為“C:\BillingSystem\Data”;文件初始大小分別為5MB和3MB,最大大小分別為100MB和10MB,增長量分別為5MB和1MB;日志文件BS_log1.ldf的保存路徑為“C:\BillingSystem\Data_Log”,文件的初始大小為5MB,最大大小為100MB,增長比例為15%。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理為數(shù)據(jù)庫添加次要文件和事務(wù)日志文件,需要修改數(shù)據(jù)庫的參數(shù),于是ALTERDATABASE命令代碼如下:/*******添加兩個(gè)次要數(shù)據(jù)文件******/ALTERDATABASEBillingSysADDFILE(NAME=BS_data1,FILENAME='F:\BillingSystem\Data\BS_data1.ndf', SIZE=5,MAXSIZE=100,FILEGROWTH=5),(NAME=BS_data2,FILENAME='F:\BillingSystem\Data\BS_data2.ndf', SIZE=3,MAXSIZE=10,FILEGROWTH=1)GO第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理/*******添加一個(gè)事務(wù)日志文件******/(ALTERDATABASEBillingSysADDLOGFILE(NAME=BS_log1,FILENAME='C:\BillingSystem\Data_Log\BS_log1.ldf',SIZE=5,MAXSIZE=100,FILEGROWTH=15% )
第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理【例5-6】修改數(shù)據(jù)庫BillingSys的數(shù)據(jù)文件BS_data2的屬性,將其初始大小改為10MB,最大容量100MB,增長幅度5MB:代碼如下:ALTERDATABASEBillingSysMODIFYFILE(NAME=BS_data2,SIZE=10,MAXSIZE=100,FILEGROWTH=5)第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008補(bǔ)例5-8更改數(shù)據(jù)庫名稱。ALTERDATABASESales
MODIFYNAME=NewSales補(bǔ)例5-9從數(shù)據(jù)庫中刪除文件。ALTERDATABASESalesREMOVEFILESalesG1F2_dat45SQLServer2008數(shù)據(jù)庫基本管理查看、修改或刪除用戶數(shù)據(jù)庫屬性:利用T-SQL語句對用戶數(shù)據(jù)庫進(jìn)行基本管理:刪除用戶數(shù)據(jù)庫:語句格式:DROPDATABASE數(shù)據(jù)庫名[,數(shù)據(jù)庫名…]其中,數(shù)據(jù)庫名是要?jiǎng)h除的數(shù)據(jù)庫名稱。補(bǔ)例5-10刪除單個(gè)數(shù)據(jù)庫。DROPDATABASEBillingSys補(bǔ)例5-11刪除多個(gè)數(shù)據(jù)庫。DROPDATABASESales2,Sales3第五章SQLServer2008數(shù)據(jù)庫和表SQLServer20085.3SQLServer2008數(shù)據(jù)庫高級管理5.3.1收縮用戶數(shù)據(jù)庫:利用SSMS收縮用戶數(shù)據(jù)庫:自動(dòng)收縮用戶數(shù)據(jù)庫:在SSMS的“對象資源管理器”窗口展開“數(shù)據(jù)庫”節(jié)點(diǎn),選擇數(shù)據(jù)庫,右擊選擇“屬性”命令,打開“數(shù)據(jù)庫屬性”窗口。在“數(shù)據(jù)庫屬性”窗口中,選擇“選項(xiàng)”選項(xiàng)卡,單擊自動(dòng)收縮旁的下拉列表框,選擇True就可設(shè)定數(shù)據(jù)庫為自動(dòng)收縮,如左圖所示。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理收縮用戶數(shù)據(jù)庫:利用SSMS收縮用戶數(shù)據(jù)庫:手動(dòng)收縮用戶數(shù)據(jù)庫:在“對象資源管理器”中選擇數(shù)據(jù)庫,右鍵,依次選擇“任務(wù)”→“收縮”→“數(shù)據(jù)庫”命令,打開“收縮數(shù)據(jù)庫”對話框,如左圖所示。完成設(shè)置后,單擊“確定”按鈕。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理收縮用戶數(shù)據(jù)庫:1.利用SSMS收縮用戶數(shù)據(jù)庫:手動(dòng)收縮數(shù)據(jù)文件:在SSMS的“對象資源管理器”窗口選擇數(shù)據(jù)庫,右擊,依次選擇“任務(wù)”→“收縮”→“文件”命令,打開“收縮文件”對話框,如左圖所示。在“收縮文件”對話框中,確定“文件類型”、“文件組”、“文件名”、“位置”。完成設(shè)置后,單擊“確定”按鈕。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理收縮用戶數(shù)據(jù)庫:2.利用T-SQL語句收縮用戶數(shù)據(jù)庫:自動(dòng)收縮數(shù)據(jù)庫:使用ALTERDATABASE語句自動(dòng)收縮用戶數(shù)據(jù)庫。語句格式:ALTERDATABASE數(shù)據(jù)庫名SETAUTO_SHRINKON/OFF參數(shù)說明如下:ON:將數(shù)據(jù)庫設(shè)為自動(dòng)收縮。OFF:將數(shù)據(jù)庫設(shè)為不自動(dòng)收縮。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理收縮用戶數(shù)據(jù)庫:利用T-SQL語句收縮用戶數(shù)據(jù)庫:手動(dòng)收縮數(shù)據(jù)庫:使用DBCCSHRINKDATABASE語句實(shí)現(xiàn)用戶數(shù)據(jù)庫手動(dòng)收縮。語句格式:DBCCSHRINKDATABASE(數(shù)據(jù)庫名|數(shù)據(jù)庫id|0[,目標(biāo)比例][,{NOTRUNCATE|TRUNCATEONLY}])參數(shù)說明如下:數(shù)據(jù)庫名:要收縮的數(shù)據(jù)庫名稱或ID。0為使用當(dāng)前數(shù)據(jù)庫。目標(biāo)比例:收縮后的數(shù)據(jù)庫文件中所需的剩余可用空間百分比。NOTRUNCATE:通過從文件末移動(dòng)到文件前的未分配頁來壓縮數(shù)據(jù)。TRUNCATEONLY:將文件末尾的所有可用空間釋放給操作系統(tǒng),但不執(zhí)行任何頁移動(dòng)。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理收縮用戶數(shù)據(jù)庫:利用T-SQL語句收縮用戶數(shù)據(jù)庫:手動(dòng)收縮數(shù)據(jù)庫:【例5-7】收縮數(shù)據(jù)庫BillingSys大小,使得數(shù)據(jù)庫中的文件有20%可用空間。DBCCSHRINKDATABASE(BillingSys,20)第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理收縮用戶數(shù)據(jù)庫:利用T-SQL語句收縮用戶數(shù)據(jù)庫:收縮指定數(shù)據(jù)文件:使用DBCCSHRINKFILE語句可以實(shí)現(xiàn)收縮指定數(shù)據(jù)文件。語句格式:DBCCSHRINKFILE({邏輯文件名|文件id}{[,EMMPTYFILE]|0[[,文件大小][,{NOTRUNCATE|TRUNCATEONLY}]]})[WITHNO_INFOMSGS]參數(shù)說明如下:邏輯文件名:要收縮的文件的邏輯名稱或文件的標(biāo)識(shí)(ID)號。文件大小:用兆字節(jié)表示的文件大小(用整數(shù)表示)。如果未指定,則將文件大小減少到默認(rèn)文件大小。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理收縮用戶數(shù)據(jù)庫:利用T-SQL語句收縮用戶數(shù)據(jù)庫:收縮指定數(shù)據(jù)文件:【例5-8】將數(shù)據(jù)庫BillingSys中名為BS_data2的數(shù)據(jù)文件收縮到7MB。DBCCSHRINKFILE(BS_data2,7)第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理5.3.2分離與附加用戶數(shù)據(jù)庫:利用SSMS分離與附加用戶數(shù)據(jù)庫:分離用戶數(shù)據(jù)庫:在SSMS的“對象資源管理器”窗口中選擇數(shù)據(jù)庫,右擊選擇“任務(wù)”→“分離”命令,打開“分離數(shù)據(jù)庫”對話框。在“分離數(shù)據(jù)庫”對話框中,“要分離的數(shù)據(jù)庫”列表框中的“數(shù)據(jù)庫名稱”欄中顯示了所選數(shù)據(jù)庫的名稱。設(shè)置完畢后,單擊“確定”按鈕。DBMS將執(zhí)行分離數(shù)據(jù)庫任務(wù)。如果分離成功,在“對象資源管理器”中將不會(huì)出現(xiàn)被分離的數(shù)據(jù)庫。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理分離與附加用戶數(shù)據(jù)庫:利用SSMS分離與附加用戶數(shù)據(jù)庫:附加用戶數(shù)據(jù)庫:在SSMS的“對象資源管理器”窗口中選擇數(shù)據(jù)庫實(shí)例下的“數(shù)據(jù)庫”項(xiàng),右擊選擇“附加數(shù)據(jù)庫”命令,打開“附加數(shù)據(jù)庫”對話框。在“附加數(shù)據(jù)庫”對話框中,單擊“添加”按鈕,打開“定位數(shù)據(jù)庫文件”對話框。在“定位數(shù)據(jù)庫文件”對話框中,選擇數(shù)據(jù)庫所在的磁盤驅(qū)動(dòng)器并展開目錄樹定位到數(shù)據(jù)庫的.mdf文件。設(shè)置完畢后,單擊“確定”按鈕。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理2.利用系統(tǒng)存儲(chǔ)過程分離與附加用戶數(shù)據(jù)庫:(1)分離用戶數(shù)據(jù)庫:使用系統(tǒng)存儲(chǔ)過程sp_detach_db來執(zhí)行分離用戶數(shù)據(jù)庫的操作。語句格式:sp_detach_db[@dbname=]‘database_name’[,[@skipchecks=]‘skipchecks’][,[@keepfulltextindexfile=]‘KeepFulltextindexFile’參數(shù)說明如下:[@dbname=]‘database_name’:要分離的數(shù)據(jù)庫的名稱。[@skipchecks=]‘skipchecks’:指定跳過還是運(yùn)行UPDATESTATISTIC。[@keepfulltextindexfile=]‘KeepFulltextIndexFile’:指定在數(shù)據(jù)庫分離操作過程中不會(huì)刪除與所分離的數(shù)據(jù)庫關(guān)聯(lián)的全文索引文件。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫基本管理利用系統(tǒng)存儲(chǔ)過程分離與附加用戶數(shù)據(jù)庫:分離用戶數(shù)據(jù)庫:【例5-9】分離用戶數(shù)據(jù)庫BillingSys。EXECsp_detach_db@dbname='BillingSys‘第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理(2)附加用戶數(shù)據(jù)庫:使用系統(tǒng)存儲(chǔ)過程sp_attach_db來執(zhí)行附加用戶數(shù)據(jù)庫的操作。語句格式:sp_attach_db[@dbname=]’dbname’,[@filename1=]’filename_n’[,…,16]參數(shù)說明如下:[@dbname=]’dbname’:要附加到該服務(wù)器的數(shù)據(jù)庫的名稱。該名稱必須是唯一的。[@filename1=]’filename_n’:數(shù)據(jù)庫文件的物理名稱,包括路徑。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008【例3-10】將d:\sqllx\test.mdf和d:\sqllx\test.ldf附加為數(shù)據(jù)庫test。代碼如下:EXECsp_attach_db@dbname=N'test',@filename1=N'd:\sqllx\test_Data.mdf',@filename2=N'd:\sqllx\test_log.ldf';使用CREATEDATABASE語句【例】CREATEDATABASEstudentsysON(FILENAME='D:\sql\JX.mdf')LOGON(FILENAME='D:\sql\JX.ldf')FORATTACHSQLServer2008補(bǔ)充:數(shù)據(jù)庫重命名1.使用“對象資源管理器”
在“對象資源管理器”中,右擊要重命名的數(shù)據(jù)庫,在彈出菜單中選擇“重命名”,輸入新的數(shù)據(jù)庫名稱,按“Enter”鍵即可,如圖所示。圖3-12數(shù)據(jù)庫重命名窗口2.使用T-SQL語句語法格式如下:sp_renamedboldname,newname語法中的各參數(shù)說明如下:sp_renamedb:系統(tǒng)存儲(chǔ)過程。oldname:更改前的數(shù)據(jù)庫名。newname:更改后的數(shù)據(jù)庫名?!纠?-11】更改jxgl數(shù)據(jù)庫的名稱為“jsjxjxgl”。代碼如下:EXECsp_renamedb'jsjx_db','jsjxjxgl'GOSQLServer2008數(shù)據(jù)庫高級管理5.3.3數(shù)據(jù)庫快照:1.數(shù)據(jù)庫快照的作用:數(shù)據(jù)庫快照就是數(shù)據(jù)庫的一個(gè)只讀副本。數(shù)據(jù)庫快照就是保存某個(gè)數(shù)據(jù)庫在快照那一瞬間的狀態(tài).數(shù)據(jù)庫快照是數(shù)據(jù)庫(源數(shù)據(jù)庫)的只讀、靜態(tài)視圖。創(chuàng)建數(shù)據(jù)庫快照是保證數(shù)據(jù)安全手段之一。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理2.創(chuàng)建用戶數(shù)據(jù)庫快照:使用CREATEDATABASE語句的ASSNAPSHOTOF子句來創(chuàng)建用戶數(shù)據(jù)庫快照。語句格式:CREATEDATABASE新數(shù)據(jù)庫快照名稱ON(NAME=邏輯文件名,FILENANE=物理文件名)[,…,n]ASSNAPSHOTOF源數(shù)據(jù)庫名參數(shù)說明如下:NAME:源數(shù)據(jù)庫中數(shù)據(jù)文件邏輯名稱。FILENAME:新數(shù)據(jù)庫快照的物理文件名稱。ASSNAPSHOTOF:指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫快照所對應(yīng)的源數(shù)據(jù)庫名稱,快照和源數(shù)據(jù)庫必須位于同一實(shí)例中。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理創(chuàng)建用戶數(shù)據(jù)庫快照:【例5-10】對BillingSys數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫快照??煺彰QBillingSys_dbss及其稀疏文件的名稱BillingSys_data.ss。CREATEDATABASEBillingSys_dbssON(NANE=BillingSys_data,FILENANE='F:\BillingSys_snapshot\Data\BillingSys_data.ss’)ASSNAPSHOTOFBillingSys;GO第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008補(bǔ):使用數(shù)據(jù)庫快照恢復(fù)數(shù)據(jù)庫例如:從“BillingSys_dbss”數(shù)據(jù)庫快照中恢復(fù)BillingSys數(shù)據(jù)庫,語句如下:RESTOREDATABASEdatabase_nameFROMDATABASE_SNAPSHOT=database_snapshot_nameRESTOREDATABASEBillingSysFROMDATABASE_SNAPSHOT='BillingSys_dbss'作業(yè):實(shí)驗(yàn)練習(xí)1、設(shè)有一學(xué)籍管理系統(tǒng),其數(shù)據(jù)庫名為“EDUC”,初始大小為
10MB,最大為50MB,數(shù)據(jù)庫自動(dòng)增長,增長方式是按5%比例增長;日志文件初始為2MB,最大可增長到5MB,按1MB增長。數(shù)據(jù)庫的邏輯文件名為“student_data”,物理文件名為“student_data.mdf,存放路徑為“E:\sql_data”。日志文件的邏輯文件名為“student_log”,物理文件名為“student_log.ldf”,存放路徑為“E:\sql_data”。(1)使用向?qū)?chuàng)建上述描述的數(shù)據(jù)庫(上機(jī)練習(xí))。(2)使用向?qū)h除上面建立的數(shù)據(jù)庫(上機(jī)練習(xí))。(3)用T—SQL命令建立上述描述的數(shù)據(jù)庫(上機(jī)練習(xí))。(4)用T—SQL命令刪除上面建立的數(shù)據(jù)庫(上機(jī)練習(xí))。SQLServer20082、以下是創(chuàng)建數(shù)據(jù)庫userdb1的SQL語句,createdatabaseuserdb1on(name=userdb4_data,--數(shù)據(jù)文件的邏輯名稱,注意不能與日志邏輯同名filename='e:\xygl\userdb1.mdf',--物理名稱,注意路徑必須存在size=5,--數(shù)據(jù)初始長度為Mmaxsize=10,--最大長度為Mfilegrowth=1)--數(shù)據(jù)文件每次增長Mlogon(name=userdb4_log,filename='e:\xygl\userdb1.ldf',size=2,maxsize=5,filegrowth=1)(1)運(yùn)行上述語句建立數(shù)據(jù)庫userdb1(2)查看userdb1數(shù)據(jù)庫基本信息。SQLServer2008(3)將userdb1數(shù)據(jù)庫的分配空間增加至30M。(4)為數(shù)據(jù)庫userdb1增加數(shù)據(jù)文件userdb1_data1,初始大小10M,最大50M,按照5%增長。(5)將userdb1數(shù)據(jù)庫改名為userdb2。(6)分離userdb2數(shù)據(jù)庫。(7)附加userdb2數(shù)據(jù)庫。(8)用SQL語句刪除數(shù)據(jù)庫userdb2。SQLServer2008SQLServer2008數(shù)據(jù)庫高級管理數(shù)據(jù)庫快照:刪除用戶數(shù)據(jù)庫快照:例如:刪除名為dbss的數(shù)據(jù)庫快照命令:DROPDATABASEBillingSys_dbss第五章SQLServer2008數(shù)據(jù)庫和表SQLServer20085.4SQLServer2008數(shù)據(jù)表5.4.1數(shù)據(jù)表的基本概念:1.數(shù)據(jù)表:表是數(shù)據(jù)的集合,是用來存儲(chǔ)數(shù)據(jù)和操作數(shù)據(jù)的邏輯結(jié)構(gòu)。2.永久數(shù)據(jù)表:永久數(shù)據(jù)表是指創(chuàng)建后一直存儲(chǔ)在數(shù)據(jù)庫文件中,直至用戶刪除為止的數(shù)據(jù)表。3.臨時(shí)數(shù)據(jù)表:臨時(shí)數(shù)據(jù)表指用戶臨時(shí)建立的數(shù)據(jù)表,這些數(shù)據(jù)表隨著用戶的退出或系統(tǒng)修復(fù)而被自動(dòng)刪除。
本地臨時(shí)表:名稱以#
打頭;它們僅對當(dāng)前的用戶連接是可見的;當(dāng)用戶從SQLServer實(shí)例斷開連接時(shí)被刪除。
全局臨時(shí)表:以##打頭,創(chuàng)建后對任何用戶都是可見的,當(dāng)所有引用該表的用戶從SQLServer斷開連接時(shí)被刪除。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer20084.表的構(gòu)成:表由表頭和若干行數(shù)據(jù)構(gòu)成。5.表的特性:表中每一行代表一條唯一的記錄,每列代表一個(gè)域。例1:學(xué)生成績表表名表頭數(shù)據(jù)行列5.對表的操作:填表:將數(shù)據(jù)寫入表中。修改:改正表中的數(shù)據(jù)信息。刪除:刪除表中記錄信息。查詢:在表中按某些條件查找記錄信息。SQLServer2008數(shù)據(jù)表5.4.2數(shù)據(jù)類型:概念:定義每個(gè)列所能存放的數(shù)據(jù)值和存儲(chǔ)格式。精度:指數(shù)值數(shù)據(jù)中所存儲(chǔ)的十進(jìn)制數(shù)據(jù)的總位數(shù)。
例如:tinyint類型可以表示范圍是0-255,其精度為3。小數(shù)位數(shù):指數(shù)值數(shù)據(jù)中小數(shù)點(diǎn)右邊可以有的數(shù)字位數(shù)的最大值。
例:89.658,其精度為5,小數(shù)位數(shù)為3。長度:存儲(chǔ)數(shù)據(jù)所用的字節(jié)數(shù)。例:tinyint所用長度為1字節(jié)。
第五章SQLServer2008數(shù)據(jù)庫和表erv4r20085.4SQLServer2008數(shù)據(jù)表5.4.2數(shù)據(jù)類型:1.表中的數(shù)據(jù)類型:7種精確數(shù)字?jǐn)?shù)據(jù)類型:int:整數(shù)數(shù)值,占4字節(jié)存儲(chǔ)空間。bigint:整數(shù)數(shù)值,占8字節(jié)存儲(chǔ)空間。smallint:短整數(shù)數(shù)值,占2字節(jié)存儲(chǔ)空間。tinyint:小整數(shù)數(shù)值,占1字節(jié)存儲(chǔ)空間。decimal/numeric:有一定精度和范圍的數(shù)據(jù),占5~17字節(jié)存儲(chǔ)空間。近似數(shù)字?jǐn)?shù)據(jù)類型:float:小數(shù)點(diǎn)不固定的數(shù)值,占4~8字節(jié)存儲(chǔ)空間。real:小數(shù)點(diǎn)不固定的數(shù)值,占4字節(jié)存儲(chǔ)空間。貨幣數(shù)據(jù)類型:money:將數(shù)值存儲(chǔ)到小數(shù)點(diǎn)后4位,占8字節(jié)存儲(chǔ)空間。smallmoney:將數(shù)值存儲(chǔ)到小數(shù)點(diǎn)后4位,占8字節(jié)存儲(chǔ)空間。第五章SQLServer2008數(shù)據(jù)庫和表erv4r2008SQLServer2008數(shù)據(jù)表數(shù)據(jù)類型:表中的數(shù)據(jù)類型:字符數(shù)據(jù)類型:char:使用ANSI編碼,固定長度的,最多可定義8000個(gè)字符。nchar:使用Unicode編碼,固定長度,最多可定義4000個(gè)字符。varchar:使用ANSI編碼,不固定長度,最多可定義8000個(gè)字符。nvarchar:與varchar相似,但使用Unicode編碼,占用兩倍的存儲(chǔ)空間。text:長度大于8000字符的數(shù)據(jù)。ntext:與text數(shù)據(jù)類型一樣,ntext是Unicode版本。日期和時(shí)間數(shù)據(jù)類型:date:僅用來存儲(chǔ)日期,從0001年1月1日到9999年12月31日。time:只存儲(chǔ)基于24小時(shí)制的時(shí)間,其格式為hh:mm:ss[.nnnnnnn]。datetime:從1753年1月1日到9999年12月31日的日期時(shí)間。datetime2:與datetime類似,但其秒的小數(shù)部分的精度更高。smalldatetime:從1900年1月1日到2079年6月6日的日期時(shí)間。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)表數(shù)據(jù)類型:表中的數(shù)據(jù)類型:二進(jìn)制數(shù)據(jù)類型:binary:固定大小的二進(jìn)制格式數(shù)據(jù),最多可存儲(chǔ)8000字節(jié)。varbinary:不固定大小的二進(jìn)制格式數(shù)據(jù),最多可存儲(chǔ)2GB。image:與text十分相似,但用于存儲(chǔ)任何類型的二進(jìn)制數(shù)據(jù)。專用數(shù)據(jù)類型:bit:存儲(chǔ)的值為0或1。uniqueidentifier:存儲(chǔ)16位全局唯一標(biāo)識(shí)符(GUID)。XML:存儲(chǔ)一個(gè)XML,最大大小為2GB。2.程序中的數(shù)據(jù)類型:3種cursor:即游標(biāo),與表類似,能以駐留內(nèi)存的狀態(tài)進(jìn)行存儲(chǔ)。table:用于存儲(chǔ)行和列的數(shù)據(jù),但不能在數(shù)據(jù)上建索引。sql_variant:用于存儲(chǔ)一些不同類型數(shù)據(jù)的數(shù)據(jù)類型。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008SQLServer2008數(shù)據(jù)表5.4.3列的其它屬性:默認(rèn)值:當(dāng)向表中插入一行時(shí),可以由SQLServer向列中加入數(shù)據(jù)值,而不是必須由用戶提供,此時(shí)可以在該列中放置默認(rèn)值來實(shí)現(xiàn)。生成IDENTITY值:當(dāng)向SQLServer的表中加入新行時(shí),可能希望給行一個(gè)唯一而又容易確定的ID號,并且該ID號不由用戶輸入,而是由SQLServer自動(dòng)創(chuàng)建。如:學(xué)號。NULL值:NULL值意味著絕對沒有任何信息輸入到列中。NULL值不占用任何存儲(chǔ)空間。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008四、約束
定義了關(guān)于列中允許值的規(guī)則,SQLServer通過限制列中數(shù)據(jù)、行中數(shù)據(jù)和表之間數(shù)據(jù)來保證數(shù)據(jù)的完整性。(1)非空值約束(NotNull)(2)默認(rèn)約束(Default)(3)惟一性約束(Unique)(4)主鍵約束(PrimaryKey,也稱主關(guān)鍵字約束):使用數(shù)據(jù)表中的一列數(shù)據(jù)或者多列數(shù)據(jù)來惟一標(biāo)識(shí)一行數(shù)據(jù)。選擇主鍵的原則:最少性:盡量選擇單個(gè)鍵作為主鍵穩(wěn)定性:盡量選擇數(shù)值更新少的列作為主鍵。(5)外鍵約束(ForeignKey,也稱為外部關(guān)鍵字約束):定義了表之間的關(guān)系,主要用來維護(hù)兩個(gè)表之間的一致性。
1、創(chuàng)建表的步驟創(chuàng)建表一般要經(jīng)過定義表結(jié)構(gòu)、設(shè)置約束和添加數(shù)據(jù)三步,其中設(shè)置約束可以在定義表結(jié)構(gòu)時(shí)或定義完成之后建立。定義表結(jié)構(gòu):給表的每一列取字段名,并確定每一列的數(shù)據(jù)類型、數(shù)據(jù)長度、列數(shù)據(jù)是否可以為空等。設(shè)置約束:設(shè)置約束來限制該列輸入值的取值范圍,以保證輸入數(shù)據(jù)的正確性和一致性。
主鍵約束、外鍵約束、默認(rèn)值和規(guī)則等。添加數(shù)據(jù):表結(jié)構(gòu)建立完成之后,應(yīng)該向表中輸入數(shù)據(jù)。5.5數(shù)據(jù)表的創(chuàng)建SQLServer中創(chuàng)建表的限制每個(gè)數(shù)據(jù)庫里最多有20億個(gè)表。每個(gè)表上最多可以創(chuàng)建一個(gè)聚集索引,249個(gè)非聚集索引。每個(gè)表最多可以設(shè)置1,024個(gè)字段。每條記錄最多占8,060B,但不包括text字段和image字段。創(chuàng)建表前的考慮數(shù)據(jù)庫中要存放哪些數(shù)據(jù),這些數(shù)據(jù)如何劃分到表中。確定每個(gè)表需要哪些列,即決定表所包含的屬性有哪些。5.5數(shù)據(jù)表的創(chuàng)建5.5.1利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表1.定義表的列啟動(dòng)SSMS,連接到SQLServer2008數(shù)據(jù)庫實(shí)例。在對象資源管理器中展開“數(shù)據(jù)庫”節(jié)點(diǎn),依次選擇“數(shù)據(jù)庫”→“BillingSys”→“表”,右擊選擇“新建表”命令,打開“表設(shè)計(jì)器”。在“表設(shè)計(jì)器”中,定義各列的名稱、數(shù)據(jù)類型、長度、是否允許為空等屬性。當(dāng)完成設(shè)置后,單擊工具欄上的“保存”按鈕,彈出“選擇名稱”對話框,輸入新建表名Customer,然后單擊“確定”。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表定義表的列第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表2.創(chuàng)建完整性約束:實(shí)體完整性創(chuàng)建主鍵(PRIMARYKEY)約束在表設(shè)計(jì)器中,選擇需要設(shè)置主鍵的列,右擊,選擇“設(shè)置主鍵”命令。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表創(chuàng)建完整性約束:實(shí)體完整性創(chuàng)建唯一性(UNIQUE)約束在Customer的表設(shè)計(jì)器中,右擊選擇“索引/鍵”命令,打開“索引/鍵”對話框。在彈出的“索引/鍵”對話框中,單擊“添加”按鈕添加新的主/唯一鍵或索引;在(常規(guī))的“類型”右邊選擇“唯一鍵”,在“列”的右邊單擊按鈕,選擇列名“CName”和排序規(guī)律ASC(升序)或DESC(降序),如左圖所示。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表創(chuàng)建完整性約束:實(shí)體完整性定義標(biāo)識(shí)列第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表創(chuàng)建完整性約束:域完整性創(chuàng)建CHECK(檢查)約束在表設(shè)計(jì)器中右擊某列,選擇“CHECK約束”命令,在打開的“CHECK約束”對話框中單擊“添加”按鈕,在“表達(dá)式”文本框中輸入檢查表達(dá)式,如左圖所示。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表創(chuàng)建完整性約束:域完整性默認(rèn)值若將表中某列定義了DEFAULT約束后,用戶在插入新的數(shù)據(jù)行時(shí),如果沒有為該列指定數(shù)據(jù),系統(tǒng)將默認(rèn)值賦給該列,默認(rèn)值可以是空值(NULL)。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表參照完整性:創(chuàng)建外鍵(FOREIGNKEY)約束外鍵用于建立和加強(qiáng)兩個(gè)表(主表與從表)的一列或多列數(shù)據(jù)之間的鏈接,以保證它們之間數(shù)據(jù)的一致性。例如:在客戶表(Customer)中的“RID”(外鍵)的取值必須參照聯(lián)系人基本信息表(Relationer)中的“RID”(主鍵)的有效值,與其保持一致性,其操作步驟如下:在Customer的表設(shè)計(jì)器中,選擇需要設(shè)置外鍵的列RID,右擊選擇“關(guān)系”命令,打開“外鍵關(guān)系”對話框。在“外鍵關(guān)系”對話框中,單擊“添加”按鈕,增加新的外鍵關(guān)系。在“表和列”對話框中,如果想重新命名外鍵約束名,可以在“關(guān)系名”文本輸入框中輸入新的名稱;在“主鍵表”下拉列表框中選擇Relationer表,并單擊“主鍵表”下的下拉按鈕選擇其中的RID作為被參照列;在“外鍵表”文本框中已經(jīng)輸入當(dāng)前表名Customer,并單擊“外鍵表”下的下拉按鈕選擇其中的RID作為參照列,如下頁圖所示。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表參照完整性:創(chuàng)建外鍵(FOREIGNKEY)約束建立客戶表(Customer)中的“RID”(外鍵)的約束列關(guān)系:在Customer的表設(shè)計(jì)器中,選擇需要設(shè)置外鍵的列RID,右擊選擇“關(guān)系”命令,打開“外鍵關(guān)系”對話框。設(shè)置完成后,單擊“確定”按鈕返回“外鍵關(guān)系”對話框,主鍵設(shè)置,檢查表和列規(guī)范、關(guān)系名等屬性設(shè)置無誤后,然后單擊“確定”按鈕。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建5.5.2使用T-SQL語句創(chuàng)建數(shù)據(jù)表利用CREATETABLE語句創(chuàng)建數(shù)據(jù)表:基本語法如下:CREATETABLE表名(列名1數(shù)據(jù)類型列級完整性約束[,…n]表級完整性約束[,…n])[ON{filegroup|“default”}]第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建使用T-SQL語句創(chuàng)建數(shù)據(jù)表利用CREATETABLE語句創(chuàng)建數(shù)據(jù)表:參數(shù)說明如下:表名:在當(dāng)前數(shù)據(jù)庫中新建的表名稱。ON{filegroup|“default”}:指定存儲(chǔ)表的文件組。列級完整性約束如下:默認(rèn)值約束、空值/非空值約束、主鍵約束、外鍵約束、唯一性約束、檢查約束。表級完整性約束如下:UNIQUE(列名1,列名2,…,列名n):多個(gè)列名單值約束。PRIMARYKEY(列名1,列名2,…,列名n):多個(gè)列名組合主鍵約束。FOREIGNKEY(外鍵)REFERENCES主鍵表(主鍵):多個(gè)列名組合外鍵約束。CHECK(邏輯表達(dá)式):含有多個(gè)列名邏輯表達(dá)式的檢查約束。第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008數(shù)據(jù)表的創(chuàng)建【例5-11】創(chuàng)建計(jì)費(fèi)系統(tǒng)數(shù)據(jù)庫BillingSys的客戶信息表及其約束??蛻粜畔⒈淼年P(guān)系模式為:Customer(CID,CName,RID,CPassword,CRegistrationDate,CTyp,CStatus,CAccountBalance)PK:CID,F(xiàn)K:RID打開相應(yīng)的數(shù)據(jù)庫BillingSys,在“查詢編輯器”中輸入代碼:USEBillingSysGOCREATETABLECustomer(CIDintNOTNULLPRIMARYKEY,CNamevarchar(16)NULL,RIDintCONSTRAINTfk_RIDFOREIGNKEYREFERENCESRelationer(RID),CPasswordchar(6)NULL,CRegistrationDatedatetimeNULL,CTypechar(6)NULL,CStatusbitNULLCONSTRAINTck_CStatusCHECK(CStatus=0orCStatus=1),CAccountBalancenumeric(6,2)NULL);第五章SQLServer2008數(shù)據(jù)庫和表SQLServer2008【補(bǔ)例1】寫出在jxgl數(shù)據(jù)庫中創(chuàng)建teachers表的SQL命令。代碼如下:USEjxglGOCREATETABLEdbo.teachers(teach_idchar(6)NOTNULL,teach_namevarchar(30)NULL,teach_sexchar(10)NULL,dept_idchar(10)NULL,teach_birthdatetimeNULL,teach_birthplacevarchar(30)NULL,teach_emailvarchar(20)NULL,teach_telephonevarchar(20)NULL,teach_p
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貧困中學(xué)生申請書
- 中國油浴恒溫振蕩器項(xiàng)目投資可行性研究報(bào)告
- 2025年絲束項(xiàng)目投資可行性研究分析報(bào)告
- 2021-2026年中國汽車裝飾用品市場調(diào)查研究及行業(yè)投資潛力預(yù)測報(bào)告
- 寬帶注銷申請書
- 2022-2027年中國電動(dòng)助力轉(zhuǎn)向系統(tǒng)行業(yè)發(fā)展前景及投資戰(zhàn)略咨詢報(bào)告
- 2025年度建筑工程施工許可證核發(fā)與施工現(xiàn)場交通安全管理合同
- 2025年水泥自流平行業(yè)深度研究分析報(bào)告
- 行政訴訟申請書
- 貧困戶貸款申請書
- 病歷書寫規(guī)范細(xì)則(2024年版)
- 2024-2025學(xué)年人教版八年級上冊地理期末測試卷(二)(含答案)
- 做賬實(shí)操-牙科診所的賬務(wù)處理
- 雙方共同買車合同范例
- 汽車智能制造技術(shù)課件
- 中醫(yī)外治法課件
- 2025屆山東省濱州市三校聯(lián)考語文高三第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 道路運(yùn)輸企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核題(公共部分題+專業(yè)部分題)及答案
- 4.2 歌曲《牧羊女》課件(14張)
- 2023電化學(xué)儲(chǔ)能電站消防安全標(biāo)準(zhǔn)鉛炭電池(鉛酸電池)
- 2024都市人群科學(xué)護(hù)肝白皮書-byhealthx庶正康訊x天貓-202409
評論
0/150
提交評論