web應用程序開發教程第08章課件_第1頁
web應用程序開發教程第08章課件_第2頁
web應用程序開發教程第08章課件_第3頁
web應用程序開發教程第08章課件_第4頁
web應用程序開發教程第08章課件_第5頁
已閱讀5頁,還剩135頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Web應用程序開發教程ASP.NET+SQLServer

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

msdb數據庫數據庫的概念及組成數據庫對象的基本概念創建數據庫創建數據庫創建數據庫CREATEDATABASE語句創建數據庫。CREATEDATABASETestDBGO【例】創建數據庫TestDB1,同時自定義數據文件的參數。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創建數據庫CREATEDATABASE語句創建數據庫。創建數據庫【例】創建數據庫TestDB2,同時自定義數據文件和日志文件的參數: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創建數據庫【例】創建數據庫TestDB2,同時自定義數據文件刪除數據庫DROPDATABASE命令刪除數據庫,語法如下:

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

BACKUPDATABASEdatabase_nameTO<backup_device>

【例】將數據庫TestDB備份到C:\TestDB.bak:

BACKUPDATABASETestDBTODISK='C:\TestDB.bak'

在查詢分析器中執行上面的語句,返回的結果如下:

已處理

96頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Log'(位于文件

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

97頁,花費了

0.882秒(0.893MB/秒)。備份數據庫BACKUP語句可以備份SQLServer數據庫還原數據庫還原數據庫還原數據庫還原數據庫還原數據庫RESTOREDATABASE語句還原數據庫。

RESTOREDATABASEdatabase_nameFROM<backup_device>

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

服務器:消息

3101,級別

16,狀態

2,行

1因為數據庫正在使用,所以未能獲得對數據庫的排它訪問權。服務器:消息

3013,級別

16,狀態

1,行

1RESTOREDATABASE操作異常終止。

如果還原數據庫成功,則顯示如下提示信息。

已處理

96頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Log'(位于文件

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

97頁,花費了

0.047秒(16.776MB/秒)。還原數據庫RESTOREDATABASE語句還原數據庫。

分離數據庫存儲過程sp_detach_db分離數據庫:

sp_detach_db[@dbname=]'dbname'

[,[@skipchecks=]'skipchecks']

【例】要分離數據庫TestDB:

Execsp_detach_db'TestDB'分離數據庫存儲過程sp_detach_db分離數據庫:附加數據庫附加數據庫附加數據庫使用存儲過程sp_attach_db附加數據庫,語法結構如下:

sp_attach_db[@dbname=]'dbname'

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

【例】要附加數據庫TestDB,可以使用如下語句:

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

附加數據庫使用存儲過程sp_attach_db附加數據庫,語8.3表管理表的概念創建表修改表刪除表查看和編輯表數據8.3表管理表的概念表的概念表演示圖表分為永久表和臨時表兩種。臨時表存儲在tempdb數據庫中,當不再使用時系統會自動刪除臨時表。臨時表可以分為本地臨時表和全局臨時表。本地臨時表以#符號開頭,例如#tmptable1。全局曖昧表以##符號開頭,例如##tmptable2。表的概念表演示圖表的概念查看數據庫中的表表的概念查看數據庫中的表創建表

二進制數據數據類型描述Binary固定長度的二進制數據類型,binary[(n

)]表示固定長度的n個字節二進制數據。n必須從1~8000,存儲空間大小為n+4字節Varbinary變長的二進制數據類型,varbinary[(n)]表示n個字節變長二進制數據。n必須從1~8000。存儲空間大小為實際輸入數據長度+4個字節,而不是n個字節。輸入的數據長度可能為

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

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

1753年

1月

1日到

9999年

12月

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

3.33毫秒或

0.00333秒)smalldatetime從1900年

1月

1日到

2079年

6月

6日的日期和時間數據精確到分鐘。29.998秒或更低的

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

smalldatetime值向上舍入為最接近的分鐘創建表Unicode數據數據類型描述Ncharnchar是創建表數字數據數據類型描述整型數據bigint從

-263(-9223372036854775808)

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

8個字節int從

-231(-2147483648)

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

4個字節smallint從

-215(-32768)

~215-1(32767)的整型數據。存儲大小為

2個字節。tinyint從

0~255的整型數據。存儲大小為

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

-1038+1~1038-1。p表示精度,指定小數點左邊和右邊可以存儲的十進制數字的最大個數。精度必須是從

1到最大精度之間的值。最大精度為38。s表示小數位數,指定小數點右邊可以存儲的十進制數字的最大個數。小數位數必須是從0~p之間的值。默認小數位數是0,因而

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

-1.79E+308~1.79E+308之間的浮點數字數據。n為用于存儲科學記數法float數尾數的位數,同時指示其精度和存儲大小。n必須為從

1~53之間的值。real從

-3.40E+38~3.40E+38之間的浮點數字數據。存儲大小為

4字節創建表數字數據數據類型描述bigint從-263(-9創建表貨幣數據特殊數據數據類型描述Money貨幣數據值介于

-263(-922337203685477.5808)

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

8個字節smallmoney貨幣數據值介于

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

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

0或

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

(1)名稱。(2)新數據類型所依據的系統數據類型。(3)為空性(數據類型是否允許空值)?!纠縿摻ㄓ脩糇远x數據類型postcode,用于表示郵政編碼。創建表用戶定義的數據類型創建表在數據庫HrDB中要創建數據庫DepInfo,用于保存部門信息創建表在數據庫HrDB中要創建數據庫DepInfo,用于保存創建表數據庫關系創建表數據庫關系創建表創建表創建表數據庫設計器創建表數據庫設計器創建表CREATETABLE語句創建表:

CREATETABLE表名(

列名1數據類型和長度1列屬性1,

列名2數據類型和長度2列屬性2,......

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

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

ALTERTABLE表名

ADD列名數據類型和長度列屬性

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

(2)修改列屬性ALTERTABLE表名

ALTERCOLUMN列名新數據類型和長度新列屬性

【例】使用ALTERTABLE語句在表DepInfo中修改NewColumn列的屬性,將數據類型為char,長度為30,列屬性為允許空,默認值為“新建列”。

ALTERTABLEDepInfoALTERCOLUMNNewColumnchar(30)NOTNULL

(3)刪除列

ALTERTABLE表名

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

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

sp_rename原對象名,新對象名,對象類型【例】使用存儲過程sp_rename將表DepInfo重命名為Departments。sp_renameDepInfo,Departments運行結果如下:

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

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

DROPTABLE表名【例】使用DROPTABLE語句刪除表DepInfo:

DROPTABLEDepInfo刪除表DROPTABLE語句刪除表:

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

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

ON{表名

|

視圖名

}(列名

[ASC|DESC][,...n])創建索引“索引/鍵”選項卡創建索引創建索引參數說明如下:唯一索引。使用UNIQUE參數創建唯一索引?!纠繛楸鞤epInfo創建基于列Dep_name的唯一索引IX_DepInfo:

CREATEUNIQUEINDEXIX_DepInfoONDepInfo(Dep_name)

聚集

/非聚集索引。使用CLUSTERED和NONCLUSTERED參數創建聚集和非聚集索引。CLUSTERED/NOCLUSTERED可以和UNIQUE同時出現?!纠繛楸鞤epInfo創建基于Dep_name列的唯一、聚集索引IX_Name:

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

ASC。【例】對表EmpInfo的列Wage按照降序創建索引:

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

DROPINDEX表名.索引名

|視圖名.索引名

[,...n]

【例】刪除表EmpInfo的索引IX_Wage

DROPINDEXEmpInfo.IX_Wage查看、修改和刪除索引DROPINDEX語句刪除索引,基本語8.6視圖管理創建視圖修改視圖刪除視圖8.6視圖管理創建視圖創建視圖視圖設計器關系圖窗格SQL窗格網格窗格結果窗格創建視圖視圖設計器關系圖窗格SQL窗格網格窗格結果窗格創建視圖添加表創建視圖添加表創建視圖創建新視圖創建視圖創建新視圖創建視圖創建視圖向導創建視圖創建視圖向導創建視圖創建視圖向導創建視圖創建視圖向導創建視圖CREATEVIEW語句創建視圖。

CREATEVIEW<視圖名>[WITH視圖參數

]AS<SELECT語句>

【例】使用CREATEVIEW命令創建視圖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創建視圖CREATEVIEW語句創建視圖。

創建視圖WITH子句支持的視圖屬性【例】使用CREATEVIEW命令創建加密視圖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語句文本的系統表列。使用

WITHENCRYPTION可防止將視圖作為

SQLServer復制的一部分發布SCHEMABINDING將視圖綁定到架構上。指定

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

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

DBLIB、ODBC和

OLEDBAPI返回有關視圖的元數據信息,而不是返回基表或表創建視圖WITH子句支持的視圖屬性屬性描述ENCRYPTIO修改視圖對視圖加密修改視圖對視圖加密修改視圖ALTERVIEW語句修改視圖。

ALTERVIEW<視圖名>[WITH視圖參數

]AS<SELECT語句>【例】使用ALTERVIEW命令修改視圖EmpView,查詢部門編號為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語句修改視圖。

刪除視圖刪除視圖DROPVIEW語句刪除視圖,其基本語法如下:

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

DROPVIEWEmpView刪除視圖刪除視圖Web應用程序開發教程ASP.NET+SQLServer

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

msdb數據庫數據庫的概念及組成數據庫對象的基本概念創建數據庫創建數據庫創建數據庫CREATEDATABASE語句創建數據庫。CREATEDATABASETestDBGO【例】創建數據庫TestDB1,同時自定義數據文件的參數。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創建數據庫CREATEDATABASE語句創建數據庫。創建數據庫【例】創建數據庫TestDB2,同時自定義數據文件和日志文件的參數: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創建數據庫【例】創建數據庫TestDB2,同時自定義數據文件刪除數據庫DROPDATABASE命令刪除數據庫,語法如下:

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

BACKUPDATABASEdatabase_nameTO<backup_device>

【例】將數據庫TestDB備份到C:\TestDB.bak:

BACKUPDATABASETestDBTODISK='C:\TestDB.bak'

在查詢分析器中執行上面的語句,返回的結果如下:

已處理

96頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Log'(位于文件

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

97頁,花費了

0.882秒(0.893MB/秒)。備份數據庫BACKUP語句可以備份SQLServer數據庫還原數據庫還原數據庫還原數據庫還原數據庫還原數據庫RESTOREDATABASE語句還原數據庫。

RESTOREDATABASEdatabase_nameFROM<backup_device>

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

服務器:消息

3101,級別

16,狀態

2,行

1因為數據庫正在使用,所以未能獲得對數據庫的排它訪問權。服務器:消息

3013,級別

16,狀態

1,行

1RESTOREDATABASE操作異常終止。

如果還原數據庫成功,則顯示如下提示信息。

已處理

96頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Data'(位于文件

1上)。已處理

1頁,這些頁屬于數據庫

'TestDB'的文件

'TestDB_Log'(位于文件

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

97頁,花費了

0.047秒(16.776MB/秒)。還原數據庫RESTOREDATABASE語句還原數據庫。

分離數據庫存儲過程sp_detach_db分離數據庫:

sp_detach_db[@dbname=]'dbname'

[,[@skipchecks=]'skipchecks']

【例】要分離數據庫TestDB:

Execsp_detach_db'TestDB'分離數據庫存儲過程sp_detach_db分離數據庫:附加數據庫附加數據庫附加數據庫使用存儲過程sp_attach_db附加數據庫,語法結構如下:

sp_attach_db[@dbname=]'dbname'

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

【例】要附加數據庫TestDB,可以使用如下語句:

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

附加數據庫使用存儲過程sp_attach_db附加數據庫,語8.3表管理表的概念創建表修改表刪除表查看和編輯表數據8.3表管理表的概念表的概念表演示圖表分為永久表和臨時表兩種。臨時表存儲在tempdb數據庫中,當不再使用時系統會自動刪除臨時表。臨時表可以分為本地臨時表和全局臨時表。本地臨時表以#符號開頭,例如#tmptable1。全局曖昧表以##符號開頭,例如##tmptable2。表的概念表演示圖表的概念查看數據庫中的表表的概念查看數據庫中的表創建表

二進制數據數據類型描述Binary固定長度的二進制數據類型,binary[(n

)]表示固定長度的n個字節二進制數據。n必須從1~8000,存儲空間大小為n+4字節Varbinary變長的二進制數據類型,varbinary[(n)]表示n個字節變長二進制數據。n必須從1~8000。存儲空間大小為實際輸入數據長度+4個字節,而不是n個字節。輸入的數據長度可能為

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

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

1753年

1月

1日到

9999年

12月

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

3.33毫秒或

0.00333秒)smalldatetime從1900年

1月

1日到

2079年

6月

6日的日期和時間數據精確到分鐘。29.998秒或更低的

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

smalldatetime值向上舍入為最接近的分鐘創建表Unicode數據數據類型描述Ncharnchar是創建表數字數據數據類型描述整型數據bigint從

-263(-9223372036854775808)

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

8個字節int從

-231(-2147483648)

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

4個字節smallint從

-215(-32768)

~215-1(32767)的整型數據。存儲大小為

2個字節。tinyint從

0~255的整型數據。存儲大小為

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

-1038+1~1038-1。p表示精度,指定小數點左邊和右邊可以存儲的十進制數字的最大個數。精度必須是從

1到最大精度之間的值。最大精度為38。s表示小數位數,指定小數點右邊可以存儲的十進制數字的最大個數。小數位數必須是從0~p之間的值。默認小數位數是0,因而

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

-1.79E+308~1.79E+308之間的浮點數字數據。n為用于存儲科學記數法float數尾數的位數,同時指示其精度和存儲大小。n必須為從

1~53之間的值。real從

-3.40E+38~3.40E+38之間的浮點數字數據。存儲大小為

4字節創建表數字數據數據類型描述bigint從-263(-9創建表貨幣數據特殊數據數據類型描述Money貨幣數據值介于

-263(-922337203685477.5808)

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

8個字節smallmoney貨幣數據值介于

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

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

0或

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

(1)名稱。(2)新數據類型所依據的系統數據類型。(3)為空性(數據類型是否允許空值)?!纠縿摻ㄓ脩糇远x數據類型postcode,用于表示郵政編碼。創建表用戶定義的數據類型創建表在數據庫HrDB中要創建數據庫DepInfo,用于保存部門信息創建表在數據庫HrDB中要創建數據庫DepInfo,用于保存創建表數據庫關系創建表數據庫關系創建表創建表創建表數據庫設計器創建表數據庫設計器創建表CREATETABLE語句創建表:

CREATETABLE表名(

列名1數據類型和長度1列屬性1,

列名2數據類型和長度2列屬性2,......

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

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

ALTERTABLE表名

ADD列名數據類型和長度列屬性

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

(2)修改列屬性ALTERTABLE表名

ALTERCOLUMN列名新數據類型和長度新列屬性

【例】使用ALTERTABLE語句在表DepInfo中修改NewColumn列的屬性,將數據類型為char,長度為30,列屬性為允許空,默認值為“新建列”。

ALTERTABLEDepInfoALTERCOLUMNNewColumnchar(30)NOTNULL

(3)刪除列

ALTERTABLE表名

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

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

sp_rename原對象名,新對象名,對象類型【例】使用存儲過程sp_rename將表DepInfo重命名為Departments。sp_renameDepInfo,Departments運行結果如下:

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

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

DROPTABLE表名【例】使用DROPTABLE語句刪除表DepInfo:

DROPTABLEDepInfo刪除表DROPTABLE語句刪除表:

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

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

溫馨提示

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

評論

0/150

提交評論