web應(yīng)用程序開發(fā)教程第08章課件_第1頁(yè)
web應(yīng)用程序開發(fā)教程第08章課件_第2頁(yè)
web應(yīng)用程序開發(fā)教程第08章課件_第3頁(yè)
web應(yīng)用程序開發(fā)教程第08章課件_第4頁(yè)
web應(yīng)用程序開發(fā)教程第08章課件_第5頁(yè)
已閱讀5頁(yè),還剩135頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Web應(yīng)用程序開發(fā)教程ASP.NET+SQLServer

授課教師:職務(wù):Web應(yīng)用程序開發(fā)教程授課教師:第8章SQLServer2000數(shù)據(jù)庫(kù)管理課程描述本章將介紹管理SQLServer2000數(shù)據(jù)庫(kù)的基本方法,使讀者初步了解SQLServer2000數(shù)據(jù)庫(kù),為開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序奠定基礎(chǔ)。第8章SQLServer2000數(shù)據(jù)庫(kù)管理課程描述本章知識(shí)點(diǎn)常用數(shù)據(jù)庫(kù)管理工具創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)表管理表約束索引操作視圖管理本章知識(shí)點(diǎn)常用數(shù)據(jù)庫(kù)管理工具8.1常用數(shù)據(jù)庫(kù)管理工具SQLServer2000的版本和組件服務(wù)管理器企業(yè)管理器osql實(shí)用工具SQL查詢分析器8.1常用數(shù)據(jù)庫(kù)管理工具SQLServer2000的版SQLServer2000的版本和組件SQLServer2000包括企業(yè)版、標(biāo)準(zhǔn)版、個(gè)人版、開發(fā)版和評(píng)估版等版本。SQLServer2000的版本和組件SQLServe服務(wù)管理器SQLServer服務(wù)管理器的功能是啟動(dòng)、停止和暫停服務(wù)器上的SQLServer組件。服務(wù)管理器SQLServer服務(wù)管理器的功能是啟動(dòng)、停止和企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器osql實(shí)用工具在Windows命令提示符中輸入下面的命令可以進(jìn)入osql實(shí)用工具,這里假定帳戶sa的密碼也是sa。osql/SNtserver/Usa/Psa【例】在osql實(shí)用工具中輸入以下命令,可以返回當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器的名稱。SELECT@@SERVERNAMEGOosql實(shí)用工具在Windows命令提示符中輸入下面的命令可SQL查詢分析器SQL查詢分析器8.2創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的概念及組成創(chuàng)建數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)分離數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)8.2創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的概念及組成數(shù)據(jù)庫(kù)的概念及組成數(shù)據(jù)庫(kù)對(duì)象的基本概念表是保存基本數(shù)據(jù)的邏輯單位,由行和列組成。每行代表唯一的一條記錄,而每列代表記錄中的一個(gè)域,通常被稱為字段。視圖類似于一種虛擬的表,它在物理上并不真實(shí)存在,只是從一個(gè)或多個(gè)表中按照一定的規(guī)則讀取若干列,組成新的結(jié)果集。視圖是由查詢數(shù)據(jù)庫(kù)表產(chǎn)生的。數(shù)據(jù)庫(kù)的索引和書籍中的目錄非常相似。3種文件類型來存儲(chǔ)數(shù)據(jù)主文件次要文件事務(wù)日志4種系統(tǒng)數(shù)據(jù)庫(kù)master數(shù)據(jù)庫(kù)tempdb數(shù)據(jù)庫(kù)model數(shù)據(jù)庫(kù)

msdb數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的概念及組成數(shù)據(jù)庫(kù)對(duì)象的基本概念創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)。CREATEDATABASETestDBGO【例】創(chuàng)建數(shù)據(jù)庫(kù)TestDB1,同時(shí)自定義數(shù)據(jù)文件的參數(shù)。CREATEDATABASETestDB1ONPRIMARY(NAME=test1,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\testdat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=test2,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\testdat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=test3,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\testdat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)GO創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)【例】創(chuàng)建數(shù)據(jù)庫(kù)TestDB2,同時(shí)自定義數(shù)據(jù)文件和日志文件的參數(shù):CREATEDATABASETestDB2ONPRIMARY(NAME=1,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2dat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch2,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2dat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch3,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2dat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=Archlog1,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2log1.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Archlog2,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2log2.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)GO創(chuàng)建數(shù)據(jù)庫(kù)【例】創(chuàng)建數(shù)據(jù)庫(kù)TestDB2,同時(shí)自定義數(shù)據(jù)文件刪除數(shù)據(jù)庫(kù)DROPDATABASE命令刪除數(shù)據(jù)庫(kù),語(yǔ)法如下:

DROPDATABASE<數(shù)據(jù)庫(kù)名>【例】要?jiǎng)h除數(shù)據(jù)庫(kù)TestDB1和TestDB2,可以使用下面的命令:DROPDATABASETestDB1DROPDATABASETestDB2GO刪除數(shù)據(jù)庫(kù)DROPDATABASE命令刪除數(shù)據(jù)庫(kù),語(yǔ)法如下備份數(shù)據(jù)庫(kù)備份模式:完全備份,備份所有的數(shù)據(jù)庫(kù)數(shù)據(jù);差異備份,只備份與上次備份的差異部分;事務(wù)日志,只備份事務(wù)日志中的數(shù)據(jù);文件和文件組,只備份指定的文件或文件組,需要單擊后面的“…”按鈕選擇文件或文件組。備份數(shù)據(jù)庫(kù)備份模式:備份數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)BACKUP語(yǔ)句可以備份SQLServer數(shù)據(jù)庫(kù)。

BACKUPDATABASEdatabase_nameTO<backup_device>

【例】將數(shù)據(jù)庫(kù)TestDB備份到C:\TestDB.bak:

BACKUPDATABASETestDBTODISK='C:\TestDB.bak'

在查詢分析器中執(zhí)行上面的語(yǔ)句,返回的結(jié)果如下:

已處理

96頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Log'(位于文件

1上)。BACKUPDATABASE操作成功地處理了

97頁(yè),花費(fèi)了

0.882秒(0.893MB/秒)。備份數(shù)據(jù)庫(kù)BACKUP語(yǔ)句可以備份SQLServer數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)RESTOREDATABASE語(yǔ)句還原數(shù)據(jù)庫(kù)。

RESTOREDATABASEdatabase_nameFROM<backup_device>

【例】要從備份文件TestDB.bak中還原數(shù)據(jù)庫(kù)TestDB,可以使用下面的語(yǔ)句:RESTOREDATABASETestDBFROMDISK='C:\TestDB.bak'WITHREPLACEGO在還原數(shù)據(jù)庫(kù)時(shí),不能存在到該數(shù)據(jù)庫(kù)的連接。否則將提示下面的錯(cuò)誤信息。

服務(wù)器:消息

3101,級(jí)別

16,狀態(tài)

2,行

1因?yàn)閿?shù)據(jù)庫(kù)正在使用,所以未能獲得對(duì)數(shù)據(jù)庫(kù)的排它訪問權(quán)。服務(wù)器:消息

3013,級(jí)別

16,狀態(tài)

1,行

1RESTOREDATABASE操作異常終止。

如果還原數(shù)據(jù)庫(kù)成功,則顯示如下提示信息。

已處理

96頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Log'(位于文件

1上)。RESTOREDATABASE操作成功地處理了

97頁(yè),花費(fèi)了

0.047秒(16.776MB/秒)。還原數(shù)據(jù)庫(kù)RESTOREDATABASE語(yǔ)句還原數(shù)據(jù)庫(kù)。

分離數(shù)據(jù)庫(kù)存儲(chǔ)過程sp_detach_db分離數(shù)據(jù)庫(kù):

sp_detach_db[@dbname=]'dbname'

[,[@skipchecks=]'skipchecks']

【例】要分離數(shù)據(jù)庫(kù)TestDB:

Execsp_detach_db'TestDB'分離數(shù)據(jù)庫(kù)存儲(chǔ)過程sp_detach_db分離數(shù)據(jù)庫(kù):附加數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)使用存儲(chǔ)過程sp_attach_db附加數(shù)據(jù)庫(kù),語(yǔ)法結(jié)構(gòu)如下:

sp_attach_db[@dbname=]'dbname'

,[@filename1=]'filename_n'[,...16]

【例】要附加數(shù)據(jù)庫(kù)TestDB,可以使用如下語(yǔ)句:

Execsp_attach_db'TestDB','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_Data.MDF'GO

附加數(shù)據(jù)庫(kù)使用存儲(chǔ)過程sp_attach_db附加數(shù)據(jù)庫(kù),語(yǔ)8.3表管理表的概念創(chuàng)建表修改表刪除表查看和編輯表數(shù)據(jù)8.3表管理表的概念表的概念表演示圖表分為永久表和臨時(shí)表兩種。臨時(shí)表存儲(chǔ)在tempdb數(shù)據(jù)庫(kù)中,當(dāng)不再使用時(shí)系統(tǒng)會(huì)自動(dòng)刪除臨時(shí)表。臨時(shí)表可以分為本地臨時(shí)表和全局臨時(shí)表。本地臨時(shí)表以#符號(hào)開頭,例如#tmptable1。全局曖昧表以##符號(hào)開頭,例如##tmptable2。表的概念表演示圖表的概念查看數(shù)據(jù)庫(kù)中的表表的概念查看數(shù)據(jù)庫(kù)中的表創(chuàng)建表

二進(jìn)制數(shù)據(jù)數(shù)據(jù)類型描述Binary固定長(zhǎng)度的二進(jìn)制數(shù)據(jù)類型,binary[(n

)]表示固定長(zhǎng)度的n個(gè)字節(jié)二進(jìn)制數(shù)據(jù)。n必須從1~8000,存儲(chǔ)空間大小為n+4字節(jié)Varbinary變長(zhǎng)的二進(jìn)制數(shù)據(jù)類型,varbinary[(n)]表示n個(gè)字節(jié)變長(zhǎng)二進(jìn)制數(shù)據(jù)。n必須從1~8000。存儲(chǔ)空間大小為實(shí)際輸入數(shù)據(jù)長(zhǎng)度+4個(gè)字節(jié),而不是n個(gè)字節(jié)。輸入的數(shù)據(jù)長(zhǎng)度可能為

0字節(jié)Image可以用來存儲(chǔ)超過8KB的可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),如MicrosoftWord文檔、MicrosoftExcel電子表格、包含位圖的圖像、GIF文件和JPEG文件創(chuàng)建表二進(jìn)制數(shù)據(jù)數(shù)據(jù)類型描述Binary固定長(zhǎng)度的二進(jìn)制數(shù)創(chuàng)建表字符數(shù)據(jù)數(shù)據(jù)類型描述char固定長(zhǎng)度的字符數(shù)據(jù)類型。char[(n)]表示長(zhǎng)度為n個(gè)字節(jié)的固定長(zhǎng)度且非Unicode的字符數(shù)據(jù)。n必須是一個(gè)介于1~8000之間的數(shù)值。存儲(chǔ)大小為n個(gè)字節(jié)varchar是非固定長(zhǎng)度的字符數(shù)據(jù)類型。varchar[(n)]表示長(zhǎng)度為n個(gè)字節(jié)的可變長(zhǎng)度且非Unicode的字符數(shù)據(jù)。n必須是一個(gè)介于1~8000之間的數(shù)值。存儲(chǔ)大小為輸入數(shù)據(jù)的字節(jié)的實(shí)際長(zhǎng)度,而不是n個(gè)字節(jié)。所輸入的數(shù)據(jù)字符長(zhǎng)度可以為0text數(shù)據(jù)類型的列可用于存儲(chǔ)大于8KB的ASCII字符。例如,由于HTML文檔均由ASCII字符組成且一般長(zhǎng)于8KB,所以用瀏覽器查看之前應(yīng)在SQLServer中存儲(chǔ)在text列中創(chuàng)建表字符數(shù)據(jù)數(shù)據(jù)類型描述char固定長(zhǎng)度的字符數(shù)據(jù)類型。c創(chuàng)建表Unicode數(shù)據(jù)日期和時(shí)間數(shù)據(jù)數(shù)據(jù)類型描述Ncharnchar是固定長(zhǎng)度Unicode數(shù)據(jù)的數(shù)據(jù)類型,nchar(n)表示包含n個(gè)字符的固定長(zhǎng)度Unicode字符數(shù)據(jù)。n的值必須介于1~4000之間。存儲(chǔ)大小為n字節(jié)的兩倍nvarcharnvarchar是可變長(zhǎng)度

Unicode數(shù)據(jù)的數(shù)據(jù)類型,nvarchar(n)表示包含n個(gè)字符的可變長(zhǎng)度Unicode字符數(shù)據(jù)。n的值必須介于1~4000之間。字節(jié)的存儲(chǔ)大小是所輸入字符個(gè)數(shù)的兩倍。所輸入的數(shù)據(jù)字符長(zhǎng)度可以為零Ntext可變長(zhǎng)度Unicode數(shù)據(jù)的最大長(zhǎng)度為230-1(1073741823)個(gè)字符。存儲(chǔ)大小是所輸入字符個(gè)數(shù)的兩倍(以字節(jié)為單位)數(shù)據(jù)類型描述datetime從

1753年

1月

1日到

9999年

12月

31日的日期和時(shí)間數(shù)據(jù),精確度為百分之三秒(等于

3.33毫秒或

0.00333秒)smalldatetime從1900年

1月

1日到

2079年

6月

6日的日期和時(shí)間數(shù)據(jù)精確到分鐘。29.998秒或更低的

smalldatetime值向下舍入為最接近的分鐘,29.999秒或更高的

smalldatetime值向上舍入為最接近的分鐘創(chuàng)建表Unicode數(shù)據(jù)數(shù)據(jù)類型描述Ncharnchar是創(chuàng)建表數(shù)字?jǐn)?shù)據(jù)數(shù)據(jù)類型描述整型數(shù)據(jù)bigint從

-263(-9223372036854775808)

~263-1(9223372036854775807)的整型數(shù)據(jù)(所有數(shù)字)。存儲(chǔ)大小為

8個(gè)字節(jié)int從

-231(-2147483648)

~231-1(2,147,483,647)的整型數(shù)據(jù)(所有數(shù)字)。存儲(chǔ)大小為

4個(gè)字節(jié)smallint從

-215(-32768)

~215-1(32767)的整型數(shù)據(jù)。存儲(chǔ)大小為

2個(gè)字節(jié)。tinyint從

0~255的整型數(shù)據(jù)。存儲(chǔ)大小為

1字節(jié)小數(shù)數(shù)據(jù)Decimal和numeric帶定點(diǎn)精度和小數(shù)位數(shù)的numeric數(shù)據(jù)類型。decimal[(p[,s])]和numeric[(p[,s])]表示定點(diǎn)精度和小數(shù)位數(shù)。使用最大精度時(shí),有效值從

-1038+1~1038-1。p表示精度,指定小數(shù)點(diǎn)左邊和右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù)。精度必須是從

1到最大精度之間的值。最大精度為38。s表示小數(shù)位數(shù),指定小數(shù)點(diǎn)右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù)。小數(shù)位數(shù)必須是從0~p之間的值。默認(rèn)小數(shù)位數(shù)是0,因而

0≤s≤p。最大存儲(chǔ)大小基于精度而變化。近似數(shù)字?jǐn)?shù)據(jù)float[(n)]從

-1.79E+308~1.79E+308之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。n為用于存儲(chǔ)科學(xué)記數(shù)法float數(shù)尾數(shù)的位數(shù),同時(shí)指示其精度和存儲(chǔ)大小。n必須為從

1~53之間的值。real從

-3.40E+38~3.40E+38之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。存儲(chǔ)大小為

4字節(jié)創(chuàng)建表數(shù)字?jǐn)?shù)據(jù)數(shù)據(jù)類型描述bigint從-263(-9創(chuàng)建表貨幣數(shù)據(jù)特殊數(shù)據(jù)數(shù)據(jù)類型描述Money貨幣數(shù)據(jù)值介于

-263(-922337203685477.5808)

~263–1(+922337203685477.5807)之間,精確到貨幣單位的千分之十。存儲(chǔ)大小為

8個(gè)字節(jié)smallmoney貨幣數(shù)據(jù)值介于

-214748.3648~+214748.3647之間,精確到貨幣單位的千分之十。存儲(chǔ)大小為

4個(gè)字節(jié)數(shù)據(jù)類型描述table一種特殊的數(shù)據(jù)類型,存儲(chǔ)供以后處理的結(jié)果集。table數(shù)據(jù)類型只能用于定義table類型的局部變量或用戶定義函數(shù)的返回值bitbit數(shù)據(jù)類型只能包括

0或

1。可以用bit數(shù)據(jù)類型代表TRUE或FALSE、YES或NO。例如,詢問客戶是否為初次訪問的問題可存儲(chǔ)在bit列中,類似于其他數(shù)據(jù)類型中的布爾型timestamp用于表示SQLServer在一行上的活動(dòng)順序,按二進(jìn)制格式以遞增的數(shù)字來表示。當(dāng)表中的行發(fā)生變動(dòng)時(shí),用從@@DBTS函數(shù)獲得的當(dāng)前數(shù)據(jù)庫(kù)的時(shí)間戮值來更新時(shí)間戮。timestamp數(shù)據(jù)與插入或修改數(shù)據(jù)的日期和時(shí)間無(wú)關(guān)。若要自動(dòng)記錄表中數(shù)據(jù)更改的時(shí)間,使用datetime或smalldatetime數(shù)據(jù)類型記錄事件或觸發(fā)器uniqueidentifier以一個(gè)16位的十六進(jìn)制數(shù)表示全局唯一標(biāo)識(shí)符(GUID)。當(dāng)需要在多行中唯一標(biāo)識(shí)某一行時(shí)可使用GUID。例如,可使用uniqueidentifier數(shù)據(jù)類型定義一個(gè)客戶標(biāo)識(shí)代碼列,以編輯公司來自多個(gè)國(guó)家/地區(qū)的總的客戶名錄sql_variant一種存儲(chǔ)SQLServer所支持的各種數(shù)據(jù)類型(text、ntext、timestamp和sql_variant除外)值的數(shù)據(jù)類型創(chuàng)建表貨幣數(shù)據(jù)數(shù)據(jù)類型描述Money貨幣數(shù)據(jù)值介于-263創(chuàng)建表用戶定義的數(shù)據(jù)類型創(chuàng)建用戶定義的數(shù)據(jù)類型時(shí)必須提供以下三個(gè)參數(shù):

(1)名稱。(2)新數(shù)據(jù)類型所依據(jù)的系統(tǒng)數(shù)據(jù)類型。(3)為空性(數(shù)據(jù)類型是否允許空值)。【例】創(chuàng)建用戶自定義數(shù)據(jù)類型postcode,用于表示郵政編碼。創(chuàng)建表用戶定義的數(shù)據(jù)類型創(chuàng)建表在數(shù)據(jù)庫(kù)HrDB中要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)DepInfo,用于保存部門信息創(chuàng)建表在數(shù)據(jù)庫(kù)HrDB中要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)DepInfo,用于保存創(chuàng)建表數(shù)據(jù)庫(kù)關(guān)系創(chuàng)建表數(shù)據(jù)庫(kù)關(guān)系創(chuàng)建表創(chuàng)建表創(chuàng)建表數(shù)據(jù)庫(kù)設(shè)計(jì)器創(chuàng)建表數(shù)據(jù)庫(kù)設(shè)計(jì)器創(chuàng)建表CREATETABLE語(yǔ)句創(chuàng)建表:

CREATETABLE表名(

列名1數(shù)據(jù)類型和長(zhǎng)度1列屬性1,

列名2數(shù)據(jù)類型和長(zhǎng)度2列屬性2,......

列名n數(shù)據(jù)類型和長(zhǎng)度n列屬性n,)【例】使用CREATETABLE語(yǔ)句創(chuàng)建表EmpInfo。CREATETABLEEmpInfo(Emp_id intIDENTITYPRIMARYKEY,Emp_name varchar(50),Sex char(2),Title varchar(50),Wage float,IdCard varchar(20),Dep_id tinyint)創(chuàng)建表CREATETABLE語(yǔ)句創(chuàng)建表:

修改表重命名表(1)向表中添加列

ALTERTABLE表名

ADD列名數(shù)據(jù)類型和長(zhǎng)度列屬性

【例】使用ALTERTABLE語(yǔ)句在表DepInfo中增加一列,列名為“NewColumn”,數(shù)據(jù)類型為varchar,長(zhǎng)度為50,列屬性為允許空。ALTERTABLEDepInfoADDNewColumnvarchar(50)NULL

(2)修改列屬性ALTERTABLE表名

ALTERCOLUMN列名新數(shù)據(jù)類型和長(zhǎng)度新列屬性

【例】使用ALTERTABLE語(yǔ)句在表DepInfo中修改NewColumn列的屬性,將數(shù)據(jù)類型為char,長(zhǎng)度為30,列屬性為允許空,默認(rèn)值為“新建列”。

ALTERTABLEDepInfoALTERCOLUMNNewColumnchar(30)NOTNULL

(3)刪除列

ALTERTABLE表名

DROPCOLUMN列名修改表重命名表修改表【例】使用ALTERTABLE語(yǔ)句在表DepInfo中刪除NewColumn列。ALTERTABLEDepInfoDROPCOLUMNNewColumn

使用sp_rename存儲(chǔ)過程修改表或列的名稱。

sp_rename原對(duì)象名,新對(duì)象名,對(duì)象類型【例】使用存儲(chǔ)過程sp_rename將表DepInfo重命名為Departments。sp_renameDepInfo,Departments運(yùn)行結(jié)果如下:

注意:更改對(duì)象名的任一部分都可能破壞腳本和存儲(chǔ)過程。object已重命名為

'Departments'。修改表【例】使用ALTERTABLE語(yǔ)句在表DepInfo刪除表DROPTABLE語(yǔ)句刪除表:

DROPTABLE表名【例】使用DROPTABLE語(yǔ)句刪除表DepInfo:

DROPTABLEDepInfo刪除表DROPTABLE語(yǔ)句刪除表:

查看和編輯表數(shù)據(jù)查看表的屬性編輯表的內(nèi)容查看和編輯表數(shù)據(jù)查看表的屬性編輯表的內(nèi)容查看和編輯表數(shù)據(jù)驗(yàn)證一下表DepInfo中Dep_id列的自動(dòng)增1屬性。查看和編輯表數(shù)據(jù)驗(yàn)證一下表DepInfo中Dep_id列的自查看和編輯表數(shù)據(jù)“查詢?cè)O(shè)計(jì)器”窗口關(guān)系圖窗格SQL窗格網(wǎng)格窗格結(jié)果窗格查看和編輯表數(shù)據(jù)“查詢?cè)O(shè)計(jì)器”窗口關(guān)系圖窗格SQL窗格網(wǎng)格窗8.4表約束主鍵約束唯一性約束檢查約束默認(rèn)約束外鍵約束8.4表約束主鍵約束主鍵約束創(chuàng)建、修改和刪除鍵主鍵約束創(chuàng)建、修改和刪除鍵唯一性約束定義和管理唯一性約束唯一性約束定義和管理唯一性約束檢查約束定義和管理檢查約束檢查約束定義和管理檢查約束默認(rèn)約束定義默認(rèn)約束默認(rèn)約束定義默認(rèn)約束外鍵約束創(chuàng)建和管理外鍵外鍵約束創(chuàng)建和管理外鍵外鍵約束創(chuàng)建外鍵約束刪除外鍵約束外鍵約束創(chuàng)建外鍵約束8.5索引操作設(shè)計(jì)索引創(chuàng)建索引查看、修改和刪除索引8.5索引操作設(shè)計(jì)索引設(shè)計(jì)索引Emp_name索引的存儲(chǔ)和工作情況SQLServer2000中,唯一索引和聚集索引是兩種特殊索引。唯一索引。在SQLServer中,當(dāng)唯一性是數(shù)據(jù)本身的特點(diǎn)時(shí),可創(chuàng)建唯一索引,但索引列的組合不同于表的主鍵。聚集索引。在聚集索引中,表中各行的物理順序與索引鍵值的邏輯(索引)順序相同。表只能包含一個(gè)聚集索引。設(shè)計(jì)索引Emp_name索引的存儲(chǔ)和工作情況創(chuàng)建索引“索引/鍵”選項(xiàng)卡創(chuàng)建索引CREATEINDEX語(yǔ)句創(chuàng)建索引:

CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX索引名

ON{表名

|

視圖名

}(列名

[ASC|DESC][,...n])創(chuàng)建索引“索引/鍵”選項(xiàng)卡創(chuàng)建索引創(chuàng)建索引參數(shù)說明如下:唯一索引。使用UNIQUE參數(shù)創(chuàng)建唯一索引。【例】為表DepInfo創(chuàng)建基于列Dep_name的唯一索引IX_DepInfo:

CREATEUNIQUEINDEXIX_DepInfoONDepInfo(Dep_name)

聚集

/非聚集索引。使用CLUSTERED和NONCLUSTERED參數(shù)創(chuàng)建聚集和非聚集索引。CLUSTERED/NOCLUSTERED可以和UNIQUE同時(shí)出現(xiàn)。【例】為表DepInfo創(chuàng)建基于Dep_name列的唯一、聚集索引IX_Name:

CREATEUNIQUECLUSTEREDINDEXIX_NameONDepInfo(Dep_name)升序和降序。使用ASC和DESC參數(shù)來確定具體某個(gè)索引列的升序或降序排序方向。默認(rèn)設(shè)置為

ASC。【例】對(duì)表EmpInfo的列Wage按照降序創(chuàng)建索引:

CREATEINDEXIX_WageONEmpInfo(WageDESC)創(chuàng)建索引參數(shù)說明如下:查看、修改和刪除索引DROPINDEX語(yǔ)句刪除索引,基本語(yǔ)法如下:

DROPINDEX表名.索引名

|視圖名.索引名

[,...n]

【例】刪除表EmpInfo的索引IX_Wage

DROPINDEXEmpInfo.IX_Wage查看、修改和刪除索引DROPINDEX語(yǔ)句刪除索引,基本語(yǔ)8.6視圖管理創(chuàng)建視圖修改視圖刪除視圖8.6視圖管理創(chuàng)建視圖創(chuàng)建視圖視圖設(shè)計(jì)器關(guān)系圖窗格SQL窗格網(wǎng)格窗格結(jié)果窗格創(chuàng)建視圖視圖設(shè)計(jì)器關(guān)系圖窗格SQL窗格網(wǎng)格窗格結(jié)果窗格創(chuàng)建視圖添加表創(chuàng)建視圖添加表創(chuàng)建視圖創(chuàng)建新視圖創(chuàng)建視圖創(chuàng)建新視圖創(chuàng)建視圖創(chuàng)建視圖向?qū)?chuàng)建視圖創(chuàng)建視圖向?qū)?chuàng)建視圖創(chuàng)建視圖向?qū)?chuàng)建視圖創(chuàng)建視圖向?qū)?chuàng)建視圖CREATEVIEW語(yǔ)句創(chuàng)建視圖。

CREATEVIEW<視圖名>[WITH視圖參數(shù)

]AS<SELECT語(yǔ)句>

【例】使用CREATEVIEW命令創(chuàng)建視圖EmpView。

CREATEVIEWdbo.EmpViewASSELECTdbo.EmpInfo.Emp_name,dbo.EmpInfo.Sex,dbo.EmpInfo.Wage,dbo.EmpInfo.Title,dbo.DepInfo.Dep_nameFROMdbo.EmpInfoINNERJOINdbo.DepInfoONdbo.DepInfo.Dep_id=dbo.EmpInfo.Dep_id創(chuàng)建視圖CREATEVIEW語(yǔ)句創(chuàng)建視圖。

創(chuàng)建視圖WITH子句支持的視圖屬性【例】使用CREATEVIEW命令創(chuàng)建加密視圖EmpView1:CREATEVIEWdbo.EmpViewWITHENCRYPTIONASSELECTdbo.EmpInfo.Emp_name,dbo.EmpInfo.Sex,dbo.EmpInfo.Wage,dbo.EmpInfo.Title,dbo.DepInfo.Dep_nameFROMdbo.EmpInfoINNERJOINdbo.DepInfoONdbo.DepInfo.Dep_id=dbo.EmpInfo.Dep_id屬性描述ENCRYPTION表示

SQLServer加密包含

CREATEVIEW語(yǔ)句文本的系統(tǒng)表列。使用

WITHENCRYPTION可防止將視圖作為

SQLServer復(fù)制的一部分發(fā)布SCHEMABINDING將視圖綁定到架構(gòu)上。指定

SCHEMABINDING時(shí),select_statement必須包含所引用的表、視圖或用戶定義函數(shù)的兩部分名稱

(owner.object)VIEW_METADATA指定為引用視圖的查詢請(qǐng)求瀏覽模式的元數(shù)據(jù)時(shí),SQLServer將向

DBLIB、ODBC和

OLEDBAPI返回有關(guān)視圖的元數(shù)據(jù)信息,而不是返回基表或表創(chuàng)建視圖WITH子句支持的視圖屬性屬性描述ENCRYPTIO修改視圖對(duì)視圖加密修改視圖對(duì)視圖加密修改視圖ALTERVIEW語(yǔ)句修改視圖。

ALTERVIEW<視圖名>[WITH視圖參數(shù)

]AS<SELECT語(yǔ)句>【例】使用ALTERVIEW命令修改視圖EmpView,查詢部門編號(hào)為1的員工記錄:ALTERVIEWdbo.EmpViewASSELECTdbo.EmpInfo.Emp_name,dbo.EmpInfo.Sex,dbo.EmpInfo.Wage,dbo.EmpInfo.Title,dbo.DepInfo.Dep_nameFROMdbo.EmpInfoINNERJOINdbo.DepInfoONdbo.DepInfo.Dep_id=dbo.EmpInfo.Dep_idWHEREdbo.DepInfo.Dep_name='人事部'修改視圖ALTERVIEW語(yǔ)句修改視圖。

刪除視圖刪除視圖DROPVIEW語(yǔ)句刪除視圖,其基本語(yǔ)法如下:

DROPVIEW視圖名【例】使用DROPVIEW命令刪除視圖EmpView:

DROPVIEWEmpView刪除視圖刪除視圖Web應(yīng)用程序開發(fā)教程ASP.NET+SQLServer

授課教師:職務(wù):Web應(yīng)用程序開發(fā)教程授課教師:第8章SQLServer2000數(shù)據(jù)庫(kù)管理課程描述本章將介紹管理SQLServer2000數(shù)據(jù)庫(kù)的基本方法,使讀者初步了解SQLServer2000數(shù)據(jù)庫(kù),為開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序奠定基礎(chǔ)。第8章SQLServer2000數(shù)據(jù)庫(kù)管理課程描述本章知識(shí)點(diǎn)常用數(shù)據(jù)庫(kù)管理工具創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)表管理表約束索引操作視圖管理本章知識(shí)點(diǎn)常用數(shù)據(jù)庫(kù)管理工具8.1常用數(shù)據(jù)庫(kù)管理工具SQLServer2000的版本和組件服務(wù)管理器企業(yè)管理器osql實(shí)用工具SQL查詢分析器8.1常用數(shù)據(jù)庫(kù)管理工具SQLServer2000的版SQLServer2000的版本和組件SQLServer2000包括企業(yè)版、標(biāo)準(zhǔn)版、個(gè)人版、開發(fā)版和評(píng)估版等版本。SQLServer2000的版本和組件SQLServe服務(wù)管理器SQLServer服務(wù)管理器的功能是啟動(dòng)、停止和暫停服務(wù)器上的SQLServer組件。服務(wù)管理器SQLServer服務(wù)管理器的功能是啟動(dòng)、停止和企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器企業(yè)管理器osql實(shí)用工具在Windows命令提示符中輸入下面的命令可以進(jìn)入osql實(shí)用工具,這里假定帳戶sa的密碼也是sa。osql/SNtserver/Usa/Psa【例】在osql實(shí)用工具中輸入以下命令,可以返回當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器的名稱。SELECT@@SERVERNAMEGOosql實(shí)用工具在Windows命令提示符中輸入下面的命令可SQL查詢分析器SQL查詢分析器8.2創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的概念及組成創(chuàng)建數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)分離數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)8.2創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的概念及組成數(shù)據(jù)庫(kù)的概念及組成數(shù)據(jù)庫(kù)對(duì)象的基本概念表是保存基本數(shù)據(jù)的邏輯單位,由行和列組成。每行代表唯一的一條記錄,而每列代表記錄中的一個(gè)域,通常被稱為字段。視圖類似于一種虛擬的表,它在物理上并不真實(shí)存在,只是從一個(gè)或多個(gè)表中按照一定的規(guī)則讀取若干列,組成新的結(jié)果集。視圖是由查詢數(shù)據(jù)庫(kù)表產(chǎn)生的。數(shù)據(jù)庫(kù)的索引和書籍中的目錄非常相似。3種文件類型來存儲(chǔ)數(shù)據(jù)主文件次要文件事務(wù)日志4種系統(tǒng)數(shù)據(jù)庫(kù)master數(shù)據(jù)庫(kù)tempdb數(shù)據(jù)庫(kù)model數(shù)據(jù)庫(kù)

msdb數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的概念及組成數(shù)據(jù)庫(kù)對(duì)象的基本概念創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)。CREATEDATABASETestDBGO【例】創(chuàng)建數(shù)據(jù)庫(kù)TestDB1,同時(shí)自定義數(shù)據(jù)文件的參數(shù)。CREATEDATABASETestDB1ONPRIMARY(NAME=test1,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\testdat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=test2,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\testdat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=test3,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\testdat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)GO創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)【例】創(chuàng)建數(shù)據(jù)庫(kù)TestDB2,同時(shí)自定義數(shù)據(jù)文件和日志文件的參數(shù):CREATEDATABASETestDB2ONPRIMARY(NAME=1,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2dat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch2,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2dat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch3,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2dat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=Archlog1,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2log1.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Archlog2,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\test2log2.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)GO創(chuàng)建數(shù)據(jù)庫(kù)【例】創(chuàng)建數(shù)據(jù)庫(kù)TestDB2,同時(shí)自定義數(shù)據(jù)文件刪除數(shù)據(jù)庫(kù)DROPDATABASE命令刪除數(shù)據(jù)庫(kù),語(yǔ)法如下:

DROPDATABASE<數(shù)據(jù)庫(kù)名>【例】要?jiǎng)h除數(shù)據(jù)庫(kù)TestDB1和TestDB2,可以使用下面的命令:DROPDATABASETestDB1DROPDATABASETestDB2GO刪除數(shù)據(jù)庫(kù)DROPDATABASE命令刪除數(shù)據(jù)庫(kù),語(yǔ)法如下備份數(shù)據(jù)庫(kù)備份模式:完全備份,備份所有的數(shù)據(jù)庫(kù)數(shù)據(jù);差異備份,只備份與上次備份的差異部分;事務(wù)日志,只備份事務(wù)日志中的數(shù)據(jù);文件和文件組,只備份指定的文件或文件組,需要單擊后面的“…”按鈕選擇文件或文件組。備份數(shù)據(jù)庫(kù)備份模式:備份數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)BACKUP語(yǔ)句可以備份SQLServer數(shù)據(jù)庫(kù)。

BACKUPDATABASEdatabase_nameTO<backup_device>

【例】將數(shù)據(jù)庫(kù)TestDB備份到C:\TestDB.bak:

BACKUPDATABASETestDBTODISK='C:\TestDB.bak'

在查詢分析器中執(zhí)行上面的語(yǔ)句,返回的結(jié)果如下:

已處理

96頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Log'(位于文件

1上)。BACKUPDATABASE操作成功地處理了

97頁(yè),花費(fèi)了

0.882秒(0.893MB/秒)。備份數(shù)據(jù)庫(kù)BACKUP語(yǔ)句可以備份SQLServer數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)RESTOREDATABASE語(yǔ)句還原數(shù)據(jù)庫(kù)。

RESTOREDATABASEdatabase_nameFROM<backup_device>

【例】要從備份文件TestDB.bak中還原數(shù)據(jù)庫(kù)TestDB,可以使用下面的語(yǔ)句:RESTOREDATABASETestDBFROMDISK='C:\TestDB.bak'WITHREPLACEGO在還原數(shù)據(jù)庫(kù)時(shí),不能存在到該數(shù)據(jù)庫(kù)的連接。否則將提示下面的錯(cuò)誤信息。

服務(wù)器:消息

3101,級(jí)別

16,狀態(tài)

2,行

1因?yàn)閿?shù)據(jù)庫(kù)正在使用,所以未能獲得對(duì)數(shù)據(jù)庫(kù)的排它訪問權(quán)。服務(wù)器:消息

3013,級(jí)別

16,狀態(tài)

1,行

1RESTOREDATABASE操作異常終止。

如果還原數(shù)據(jù)庫(kù)成功,則顯示如下提示信息。

已處理

96頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁(yè),這些頁(yè)屬于數(shù)據(jù)庫(kù)

'TestDB'的文件

'TestDB_Log'(位于文件

1上)。RESTOREDATABASE操作成功地處理了

97頁(yè),花費(fèi)了

0.047秒(16.776MB/秒)。還原數(shù)據(jù)庫(kù)RESTOREDATABASE語(yǔ)句還原數(shù)據(jù)庫(kù)。

分離數(shù)據(jù)庫(kù)存儲(chǔ)過程sp_detach_db分離數(shù)據(jù)庫(kù):

sp_detach_db[@dbname=]'dbname'

[,[@skipchecks=]'skipchecks']

【例】要分離數(shù)據(jù)庫(kù)TestDB:

Execsp_detach_db'TestDB'分離數(shù)據(jù)庫(kù)存儲(chǔ)過程sp_detach_db分離數(shù)據(jù)庫(kù):附加數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)使用存儲(chǔ)過程sp_attach_db附加數(shù)據(jù)庫(kù),語(yǔ)法結(jié)構(gòu)如下:

sp_attach_db[@dbname=]'dbname'

,[@filename1=]'filename_n'[,...16]

【例】要附加數(shù)據(jù)庫(kù)TestDB,可以使用如下語(yǔ)句:

Execsp_attach_db'TestDB','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\TestDB_Data.MDF'GO

附加數(shù)據(jù)庫(kù)使用存儲(chǔ)過程sp_attach_db附加數(shù)據(jù)庫(kù),語(yǔ)8.3表管理表的概念創(chuàng)建表修改表刪除表查看和編輯表數(shù)據(jù)8.3表管理表的概念表的概念表演示圖表分為永久表和臨時(shí)表兩種。臨時(shí)表存儲(chǔ)在tempdb數(shù)據(jù)庫(kù)中,當(dāng)不再使用時(shí)系統(tǒng)會(huì)自動(dòng)刪除臨時(shí)表。臨時(shí)表可以分為本地臨時(shí)表和全局臨時(shí)表。本地臨時(shí)表以#符號(hào)開頭,例如#tmptable1。全局曖昧表以##符號(hào)開頭,例如##tmptable2。表的概念表演示圖表的概念查看數(shù)據(jù)庫(kù)中的表表的概念查看數(shù)據(jù)庫(kù)中的表創(chuàng)建表

二進(jìn)制數(shù)據(jù)數(shù)據(jù)類型描述Binary固定長(zhǎng)度的二進(jìn)制數(shù)據(jù)類型,binary[(n

)]表示固定長(zhǎng)度的n個(gè)字節(jié)二進(jìn)制數(shù)據(jù)。n必須從1~8000,存儲(chǔ)空間大小為n+4字節(jié)Varbinary變長(zhǎng)的二進(jìn)制數(shù)據(jù)類型,varbinary[(n)]表示n個(gè)字節(jié)變長(zhǎng)二進(jìn)制數(shù)據(jù)。n必須從1~8000。存儲(chǔ)空間大小為實(shí)際輸入數(shù)據(jù)長(zhǎng)度+4個(gè)字節(jié),而不是n個(gè)字節(jié)。輸入的數(shù)據(jù)長(zhǎng)度可能為

0字節(jié)Image可以用來存儲(chǔ)超過8KB的可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),如MicrosoftWord文檔、MicrosoftExcel電子表格、包含位圖的圖像、GIF文件和JPEG文件創(chuàng)建表二進(jìn)制數(shù)據(jù)數(shù)據(jù)類型描述Binary固定長(zhǎng)度的二進(jìn)制數(shù)創(chuàng)建表字符數(shù)據(jù)數(shù)據(jù)類型描述char固定長(zhǎng)度的字符數(shù)據(jù)類型。char[(n)]表示長(zhǎng)度為n個(gè)字節(jié)的固定長(zhǎng)度且非Unicode的字符數(shù)據(jù)。n必須是一個(gè)介于1~8000之間的數(shù)值。存儲(chǔ)大小為n個(gè)字節(jié)varchar是非固定長(zhǎng)度的字符數(shù)據(jù)類型。varchar[(n)]表示長(zhǎng)度為n個(gè)字節(jié)的可變長(zhǎng)度且非Unicode的字符數(shù)據(jù)。n必須是一個(gè)介于1~8000之間的數(shù)值。存儲(chǔ)大小為輸入數(shù)據(jù)的字節(jié)的實(shí)際長(zhǎng)度,而不是n個(gè)字節(jié)。所輸入的數(shù)據(jù)字符長(zhǎng)度可以為0text數(shù)據(jù)類型的列可用于存儲(chǔ)大于8KB的ASCII字符。例如,由于HTML文檔均由ASCII字符組成且一般長(zhǎng)于8KB,所以用瀏覽器查看之前應(yīng)在SQLServer中存儲(chǔ)在text列中創(chuàng)建表字符數(shù)據(jù)數(shù)據(jù)類型描述char固定長(zhǎng)度的字符數(shù)據(jù)類型。c創(chuàng)建表Unicode數(shù)據(jù)日期和時(shí)間數(shù)據(jù)數(shù)據(jù)類型描述Ncharnchar是固定長(zhǎng)度Unicode數(shù)據(jù)的數(shù)據(jù)類型,nchar(n)表示包含n個(gè)字符的固定長(zhǎng)度Unicode字符數(shù)據(jù)。n的值必須介于1~4000之間。存儲(chǔ)大小為n字節(jié)的兩倍nvarcharnvarchar是可變長(zhǎng)度

Unicode數(shù)據(jù)的數(shù)據(jù)類型,nvarchar(n)表示包含n個(gè)字符的可變長(zhǎng)度Unicode字符數(shù)據(jù)。n的值必須介于1~4000之間。字節(jié)的存儲(chǔ)大小是所輸入字符個(gè)數(shù)的兩倍。所輸入的數(shù)據(jù)字符長(zhǎng)度可以為零Ntext可變長(zhǎng)度Unicode數(shù)據(jù)的最大長(zhǎng)度為230-1(1073741823)個(gè)字符。存儲(chǔ)大小是所輸入字符個(gè)數(shù)的兩倍(以字節(jié)為單位)數(shù)據(jù)類型描述datetime從

1753年

1月

1日到

9999年

12月

31日的日期和時(shí)間數(shù)據(jù),精確度為百分之三秒(等于

3.33毫秒或

0.00333秒)smalldatetime從1900年

1月

1日到

2079年

6月

6日的日期和時(shí)間數(shù)據(jù)精確到分鐘。29.998秒或更低的

smalldatetime值向下舍入為最接近的分鐘,29.999秒或更高的

smalldatetime值向上舍入為最接近的分鐘創(chuàng)建表Unicode數(shù)據(jù)數(shù)據(jù)類型描述Ncharnchar是創(chuàng)建表數(shù)字?jǐn)?shù)據(jù)數(shù)據(jù)類型描述整型數(shù)據(jù)bigint從

-263(-9223372036854775808)

~263-1(9223372036854775807)的整型數(shù)據(jù)(所有數(shù)字)。存儲(chǔ)大小為

8個(gè)字節(jié)int從

-231(-2147483648)

~231-1(2,147,483,647)的整型數(shù)據(jù)(所有數(shù)字)。存儲(chǔ)大小為

4個(gè)字節(jié)smallint從

-215(-32768)

~215-1(32767)的整型數(shù)據(jù)。存儲(chǔ)大小為

2個(gè)字節(jié)。tinyint從

0~255的整型數(shù)據(jù)。存儲(chǔ)大小為

1字節(jié)小數(shù)數(shù)據(jù)Decimal和numeric帶定點(diǎn)精度和小數(shù)位數(shù)的numeric數(shù)據(jù)類型。decimal[(p[,s])]和numeric[(p[,s])]表示定點(diǎn)精度和小數(shù)位數(shù)。使用最大精度時(shí),有效值從

-1038+1~1038-1。p表示精度,指定小數(shù)點(diǎn)左邊和右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù)。精度必須是從

1到最大精度之間的值。最大精度為38。s表示小數(shù)位數(shù),指定小數(shù)點(diǎn)右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù)。小數(shù)位數(shù)必須是從0~p之間的值。默認(rèn)小數(shù)位數(shù)是0,因而

0≤s≤p。最大存儲(chǔ)大小基于精度而變化。近似數(shù)字?jǐn)?shù)據(jù)float[(n)]從

-1.79E+308~1.79E+308之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。n為用于存儲(chǔ)科學(xué)記數(shù)法float數(shù)尾數(shù)的位數(shù),同時(shí)指示其精度和存儲(chǔ)大小。n必須為從

1~53之間的值。real從

-3.40E+38~3.40E+38之間的浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)。存儲(chǔ)大小為

4字節(jié)創(chuàng)建表數(shù)字?jǐn)?shù)據(jù)數(shù)據(jù)類型描述bigint從-263(-9創(chuàng)建表貨幣數(shù)據(jù)特殊數(shù)據(jù)數(shù)據(jù)類型描述Money貨幣數(shù)據(jù)值介于

-263(-922337203685477.5808)

~263–1(+922337203685477.5807)之間,精確到貨幣單位的千分之十。存儲(chǔ)大小為

8個(gè)字節(jié)smallmoney貨幣數(shù)據(jù)值介于

-214748.3648~+214748.3647之間,精確到貨幣單位的千分之十。存儲(chǔ)大小為

4個(gè)字節(jié)數(shù)據(jù)類型描述table一種特殊的數(shù)據(jù)類型,存儲(chǔ)供以后處理的結(jié)果集。table數(shù)據(jù)類型只能用于定義table類型的局部變量或用戶定義函數(shù)的返回值bitbit數(shù)據(jù)類型只能包括

0或

1。可以用bit數(shù)據(jù)類型代表TRUE或FALSE、YES或NO。例如,詢問客戶是否為初次訪問的問題可存儲(chǔ)在bit列中,類似于其他數(shù)據(jù)類型中的布爾型timestamp用于表示SQLServer在一行上的活動(dòng)順序,按二進(jìn)制格式以遞增的數(shù)字來表示。當(dāng)表中的行發(fā)生變動(dòng)時(shí),用從@@DBTS函數(shù)獲得的當(dāng)前數(shù)據(jù)庫(kù)的時(shí)間戮值來更新時(shí)間戮。timestamp數(shù)據(jù)與插入或修改數(shù)據(jù)的日期和時(shí)間無(wú)關(guān)。若要自動(dòng)記錄表中數(shù)據(jù)更改的時(shí)間,使用datetime或smalldatetime數(shù)據(jù)類型記錄事件或觸發(fā)器uniqueidentifier以一個(gè)16位的十六進(jìn)制數(shù)表示全局唯一標(biāo)識(shí)符(GUID)。當(dāng)需要在多行中唯一標(biāo)識(shí)某一行時(shí)可使用GUID。例如,可使用uniqueidentifier數(shù)據(jù)類型定義一個(gè)客戶標(biāo)識(shí)代碼列,以編輯公司來自多個(gè)國(guó)家/地區(qū)的總的客戶名錄sql_variant一種存儲(chǔ)SQLServer所支持的各種數(shù)據(jù)類型(text、ntext、timestamp和sql_variant除外)值的數(shù)據(jù)類型創(chuàng)建表貨幣數(shù)據(jù)數(shù)據(jù)類型描述Money貨幣數(shù)據(jù)值介于-263創(chuàng)建表用戶定義的數(shù)據(jù)類型創(chuàng)建用戶定義的數(shù)據(jù)類型時(shí)必須提供以下三個(gè)參數(shù):

(1)名稱。(2)新數(shù)據(jù)類型所依據(jù)的系統(tǒng)數(shù)據(jù)類型。(3)為空性(數(shù)據(jù)類型是否允許空值)。【例】創(chuàng)建用戶自定義數(shù)據(jù)類型postcode,用于表示郵政編碼。創(chuàng)建表用戶定義的數(shù)據(jù)類型創(chuàng)建表在數(shù)據(jù)庫(kù)HrDB中要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)DepInfo,用于保存部門信息創(chuàng)建表在數(shù)據(jù)庫(kù)HrDB中要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)DepInfo,用于保存創(chuàng)建表數(shù)據(jù)庫(kù)關(guān)系創(chuàng)建表數(shù)據(jù)庫(kù)關(guān)系創(chuàng)建表創(chuàng)建表創(chuàng)建表數(shù)據(jù)庫(kù)設(shè)計(jì)器創(chuàng)建表數(shù)據(jù)庫(kù)設(shè)計(jì)器創(chuàng)建表CREATETABLE語(yǔ)句創(chuàng)建表:

CREATETABLE表名(

列名1數(shù)據(jù)類型和長(zhǎng)度1列屬性1,

列名2數(shù)據(jù)類型和長(zhǎng)度2列屬性2,......

列名n數(shù)據(jù)類型和長(zhǎng)度n列屬性n,)【例】使用CREATETABLE語(yǔ)句創(chuàng)建表EmpInfo。CREATETABLEEmpInfo(Emp_id intIDENTITYPRIMARYKEY,Emp_name varchar(50),Sex char(2),Title varchar(50),Wage float,IdCard varchar(20),Dep_id tinyint)創(chuàng)建表CREATETABLE語(yǔ)句創(chuàng)建表:

修改表重命名表(1)向表中添加列

ALTERTABLE表名

ADD列名數(shù)據(jù)類型和長(zhǎng)度列屬性

【例】使用ALTERTABLE語(yǔ)句在表DepInfo中增加一列,列名為“NewColumn”,數(shù)據(jù)類型為varchar,長(zhǎng)度為50,列屬性為允許空。ALTERTABLEDepInfoADDNewColumnvarchar(50)NULL

(2)修改列屬性ALTERTABLE表名

ALTERCOLUMN列名新數(shù)據(jù)類型和長(zhǎng)度新列屬性

【例】使用ALTERTABLE語(yǔ)句在表DepInfo中修改NewColumn列的屬性,將數(shù)據(jù)類型為char,長(zhǎng)度為30,列屬性為允許空,默認(rèn)值為“新建列”。

ALTERTABLEDepInfoALTERCOLUMNNewColumnchar(30)NOTNULL

(3)刪除列

ALTERTABLE表名

DROPCOLUMN列名修改表重命名表修改表【例】使用ALTERTABLE語(yǔ)句在表DepInfo中刪除NewColumn列。ALTERTABLEDepInfoDROPCOLUMNNewColumn

使用sp_rename存儲(chǔ)過程修改表或列的名稱。

sp_rename原對(duì)象名,新對(duì)象名,對(duì)象類型【例】使用存儲(chǔ)過程sp_rename將表DepInfo重命名為Departments。sp_renameDepInfo,Departments運(yùn)行結(jié)果如下:

注意:更改對(duì)象名的任一部分都可能破壞腳本和存儲(chǔ)過程。object已重命名為

'Departments'。修改表【例】使用ALTERTABLE語(yǔ)句在表DepInfo刪除表DROPTABLE語(yǔ)句刪除表:

DROPTABLE表名【例】使用DROPTABLE語(yǔ)句刪除表DepInfo:

DROPTABLEDepInfo刪除表DROPTABLE語(yǔ)句刪除表:

查看和編輯表數(shù)據(jù)查看表的屬性編輯表的內(nèi)容查看和編輯表數(shù)據(jù)查看表的屬性編輯表的內(nèi)容查看和編輯表數(shù)據(jù)驗(yàn)證一下表DepInfo中Dep_id列的自動(dòng)增1屬性。查看和編輯表數(shù)據(jù)驗(yàn)證一下表DepInfo中Dep_id列的自查看和編輯表數(shù)據(jù)“查詢?cè)O(shè)計(jì)器”窗口關(guān)系圖窗格SQL窗格網(wǎng)格窗格結(jié)果窗格查看和編輯表數(shù)據(jù)“查詢?cè)O(shè)計(jì)器”窗口關(guān)系圖窗格SQL窗格網(wǎng)格窗8.4表約束主鍵約束唯一性約束檢查約束默認(rèn)約束外鍵約束8.4表約束主鍵約束主鍵約束創(chuàng)建、修改和刪除鍵主鍵約束創(chuàng)建、修改和刪除鍵唯一性約束定義和管理唯一性約束唯一性約束定義和管理唯一性約束檢查約束定義和管理檢查約束檢查約束定義和管理檢查約束默認(rèn)約束定義默認(rèn)約束默認(rèn)約束定義默認(rèn)約束外鍵約束創(chuàng)建和管理外鍵外鍵約束創(chuàng)建和管理外鍵外鍵約束創(chuàng)建外鍵約束刪除外鍵約束外鍵約束創(chuàng)建外鍵約束8.5索引操作設(shè)計(jì)索引創(chuàng)建索引查看、修改和刪除索引8.5索引操作設(shè)計(jì)索引設(shè)計(jì)索引Emp_name索引的存儲(chǔ)和工作情況SQLServer2000中,唯一索引和聚集索引是兩種特殊索引。唯一索引。在SQLServer中,當(dāng)唯一性是數(shù)據(jù)本身的特點(diǎn)時(shí),可創(chuàng)建唯一索引,但索引列的組合不同于表的主鍵。聚集索引。在聚集索引中,表中各行的物理順序與索引鍵值的邏輯(索引)順序相同。表只能包含一個(gè)聚集索引。設(shè)計(jì)索引Emp_name索引的存儲(chǔ)和工作情況創(chuàng)建索引“索引/鍵”選項(xiàng)卡創(chuàng)建索引CREATEINDEX語(yǔ)句創(chuàng)建索引:

CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX索引名

溫馨提示

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

評(píng)論

0/150

提交評(píng)論