數據庫系統技術項目五使用T-SQL命令定義數據庫和表_第1頁
數據庫系統技術項目五使用T-SQL命令定義數據庫和表_第2頁
數據庫系統技術項目五使用T-SQL命令定義數據庫和表_第3頁
數據庫系統技術項目五使用T-SQL命令定義數據庫和表_第4頁
數據庫系統技術項目五使用T-SQL命令定義數據庫和表_第5頁
已閱讀5頁,還剩62頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、項目五 使用T-SQL命令定義數據庫和表了解了解T-SQL語言語言1 T-SQLT-SQL語言基礎語言基礎2使用使用T-SQL命令定義數據庫命令定義數據庫 3 使用使用T-SQL命令定義表命令定義表4 了解了解T-SQLT-SQL語言語言v初識初識T-SQLT-SQL語言語言vT-SQLT-SQL語言的開發環境語言的開發環境vT-SQLT-SQL語言標識符及語法約定語言標識符及語法約定SQLSQL語言語言v SQLSQL是是S Structured tructured Q Query uery L Languageanguage的縮寫,譯為的縮寫,譯為結構化查詢結構化查詢語言語言,最早的,最早

2、的SQLSQL語言于語言于19791979年在年在IBMIBM公司的關系數據庫系統公司的關系數據庫系統System RSystem R得到實現。得到實現。 v 19861986年年1010月美國國家標準化學會(月美國國家標準化學會(ANSIANSI)采用)采用SQLSQL作為關系作為關系數據庫管理系統的標準語言,并公布了第一個數據庫管理系統的標準語言,并公布了第一個SQLSQL標準,稱標準,稱為為SQL-86SQL-86。v 隨后國際標準化組織(隨后國際標準化組織(ISOISO)也接納了這一標準,并對其作)也接納了這一標準,并對其作進一步的完善,這項工作于進一步的完善,這項工作于1989198

3、9年年4 4月完成,公布后就是我月完成,公布后就是我們所說的們所說的SQL-89SQL-89。SQLSQL語言語言v 在上面的基礎上,在上面的基礎上,ISOISO和和ANSIANSI聯手對聯手對SQLSQL進行研究和完善,于進行研究和完善,于19921992年年8 8月又推出了新的月又推出了新的SQLSQL標準標準SQL-92SQL-92(或簡稱為(或簡稱為SQL2SQL2)。)。v 后來又對后來又對SQL-92SQL-92進行了完善和擴充,于進行了完善和擴充,于19991999年推出了年推出了SQL-99SQL-99(或簡稱為(或簡稱為SQL3SQL3),這是最新的),這是最新的SQLSQL

4、版本。版本。v 現今的現今的SQLSQL語言已經發展成為關系數據庫的標準語言,幾乎語言已經發展成為關系數據庫的標準語言,幾乎所有的數據庫產品都支持所有的數據庫產品都支持SQLSQL語言。當然除了語言。當然除了SQLSQL以外,還有以外,還有其它類似的一些數據庫語言,如其它類似的一些數據庫語言,如QBEQBE、QuelQuel、DatalogDatalog等,但等,但這些語言僅僅少數人在使用并不是主流的數據庫語言。這些語言僅僅少數人在使用并不是主流的數據庫語言。 根據功能來劃分根據功能來劃分SQLSQL語言分為四類語言分為四類 SQLSQL功能名稱功能名稱SQLSQL功能英文簡稱和全稱功能英文簡

5、稱和全稱SQLSQL語句語句數據查詢數據查詢DQL(Data Query Language)SELECT數據操縱數據操縱DML(Data Manipulation Language)INSERTUPDATEDELETE數據定義數據定義DQL(Data Definition Language)CREATEALTERDROP數據控制數據控制DQL(Data Control Language)GRANTREVOKET-SQLT-SQL語言語言 v 不同的數據庫軟件廠商一方面采納不同的數據庫軟件廠商一方面采納SQLSQL語言作為自己的數據語言作為自己的數據庫的語言,另一方面又對庫的語言,另一方面又對S

6、QLSQL語言進行了不同程度的擴展。語言進行了不同程度的擴展。而而T-SQLT-SQL語言正是微軟公司在其語言正是微軟公司在其SQL ServerSQL Server關系數據庫系統關系數據庫系統中的實現。中的實現。v T-SQLT-SQL語言即事務語言即事務SQLSQL(Transact-SQLTransact-SQL),簡稱為),簡稱為T-SQLT-SQL。T-T-SQLSQL在在SQLSQL語言的基礎上增加了變量、流程控制、功能函數、語言的基礎上增加了變量、流程控制、功能函數、系統存儲過程等功能,提供了豐富的編程結構。系統存儲過程等功能,提供了豐富的編程結構。v T-SQLT-SQL是對是

7、對SQLSQL語言擴充的基礎上發展起來的,因此它的語言擴充的基礎上發展起來的,因此它的核心核心內容還是內容還是SQLSQL語言中的四類語句語言中的四類語句。T-SQLT-SQL語言的開發環境語言的開發環境 vSQLSQL語句的執行方式主要有四種,分別是:直接調語句的執行方式主要有四種,分別是:直接調用執行、嵌入式執行、模塊綁定執行和通過調用層用執行、嵌入式執行、模塊綁定執行和通過調用層接口(接口(CLICLI)執行。常用的是直接調用執行和通過)執行。常用的是直接調用執行和通過調用層接口(調用層接口(CLICLI)執行這兩種。)執行這兩種。 v演示使用演示使用SSMSSSMS直接執行直接執行T-

8、SQLT-SQL語句。語句。T-SQLT-SQL語言中的標識符語言中的標識符v標識符:標識符:在在T-SQLT-SQL語言中,對數據庫、表、變量、語言中,對數據庫、表、變量、存儲過程、函數等的定義和引用都需要通過其名稱存儲過程、函數等的定義和引用都需要通過其名稱(標識符)來完成。(標識符)來完成。 v我們所說的我們所說的標識符標識符,實際上就是我們給對象起的名,實際上就是我們給對象起的名稱,本質上是一個稱,本質上是一個字符串字符串。標識符分為常規標識符和分隔標識符兩種標識符分為常規標識符和分隔標識符兩種v 常規標識符:常規標識符:是不包含空格的標識符,可以不需要使用單是不包含空格的標識符,可以

9、不需要使用單引號或方括號將其分隔的標識符。定義常規標識符時要符引號或方括號將其分隔的標識符。定義常規標識符時要符合以下規則:標識符中首字符必須是英文字母、漢字、數合以下規則:標識符中首字符必須是英文字母、漢字、數下劃線(下劃線(_ _)、)、 和和# #,首字符后面可以是其它字符,最長,首字符后面可以是其它字符,最長不超過不超過128128個字符,不能和個字符,不能和T-SQLT-SQL語言中的關鍵字重復,也語言中的關鍵字重復,也不能用不能用開頭。開頭。v 分隔標識符:分隔標識符:是指包含在兩個單引號(是指包含在兩個單引號()或者方括號)或者方括號( )內的字符串,這些字符串中可以包含空格。)

10、內的字符串,這些字符串中可以包含空格。T-SQLT-SQL的語法約定的語法約定 v 大寫字母:大寫字母:代表代表T-SQLT-SQL中保留的關鍵字,如中保留的關鍵字,如CREATECREATE、SELECTSELECT、UPDATEUPDATE、DELETEDELETE等。等。v 小寫字母:小寫字母:表示表達式、標識符等。表示表達式、標識符等。v 豎線豎線“|”|”:表示參數之間是:表示參數之間是“或或”的關系,用戶可以從其中的關系,用戶可以從其中選擇使用。選擇使用。v 大括號大括號“”:大括號中的內容為必選參數,其中可以包含大括號中的內容為必選參數,其中可以包含多個選項,各個選項之間用豎線分

11、隔,用戶必須從選項中選多個選項,各個選項之間用豎線分隔,用戶必須從選項中選擇其中一項。擇其中一項。v 方括號方括號“”:方括號內所列出的項為可選項,用戶可以根方括號內所列出的項為可選項,用戶可以根據需要選擇使用。據需要選擇使用。v 省略號省略號“”:表示重復前面的語法項目。表示重復前面的語法項目。項目五 使用T-SQL命令定義數據庫和表了解了解T-SQL語言語言1 T-SQLT-SQL語言基礎語言基礎2使用使用T-SQL命令定義數據庫命令定義數據庫 3 使用使用T-SQL命令定義表命令定義表4 T-SQLT-SQL語言基礎語言基礎v T-SQLT-SQL中的常量和變量中的常量和變量 v T-S

12、QLT-SQL中的運算符中的運算符v T-SQLT-SQL中的函數中的函數v T-SQLT-SQL中的批處理中的批處理v T-SQLT-SQL中的流程控制語句中的流程控制語句v T-SQLT-SQL中的功能性語句中的功能性語句 T-SQLT-SQL中的常量和變量中的常量和變量v 常量常量,是表示一個特定數據值的符號,常量的類型取決于它,是表示一個特定數據值的符號,常量的類型取決于它所表示的值的數據類型。在所表示的值的數據類型。在SQL Server SQL Server 中,有字符串常量、中,有字符串常量、二進制常量、二進制常量、BITBIT常量、日期和時間常量等。常量、日期和時間常量等。v

13、變量變量是指在程序運行過程中,值可以發生變化的量。在是指在程序運行過程中,值可以發生變化的量。在T-T-SQL SQL 中可以使用兩種類型變量:一種是中可以使用兩種類型變量:一種是局部變量局部變量,另外一種,另外一種是是全局變量全局變量。v 局部變量是用戶自定義的變量局部變量是用戶自定義的變量,在,在T-SQLT-SQL使用局部變量命名使用局部變量命名必須以必須以“”開頭,如開頭,如xhxh,xmxm。局部變量必須先用。局部變量必須先用DECLARE DECLARE 定義后才可使用,其語法如下:定義后才可使用,其語法如下:DECLARE DECLARE 變量名變量名 變量類型變量類型 , 變量

14、名變量名 變量類型變量類型 T-SQLT-SQL中的常量賦值中的常量賦值v 在在T-SQL T-SQL 中不能像在高級程序語言中使用中不能像在高級程序語言中使用 變量名變量名= =變量值變量值 這樣的方法來給變量賦值,必須使用這樣的方法來給變量賦值,必須使用SETSET命令或命令或SELECTSELECT命令命令來給變量賦值,來給變量賦值,SETSET命令一次只能給一個變量賦值,而命令一次只能給一個變量賦值,而SELECTSELECT命令一次可以給多個變量賦值。命令一次可以給多個變量賦值。v 其語法如下:其語法如下:SET SET 局部變量名局部變量名 = = 變量值變量值SELECT SEL

15、ECT 局部變量名局部變量名 = = 變量值變量值 , 變量名變量名 變量類型變量類型 v 演示教材中的例演示教材中的例5-15-1全局變量全局變量含義含義SERVERNAMESERVERNAME返回運行返回運行SQL ServerSQL Server數據庫的地服務器名稱數據庫的地服務器名稱VERSIONVERSION返回返回SQL ServerSQL Server當前安裝版本信息當前安裝版本信息OPTIONSOPTIONS返回當前返回當前SETSET選項的信息選項的信息TRANCOUNTTRANCOUNT返回當前連接的活動事務數返回當前連接的活動事務數CPU_BUSYCPU_BUSY返回返回

16、SQL ServerSQL Server最近一次啟動以來最近一次啟動以來CPUCPU工作時間工作時間ROWCOUNTROWCOUNT返回受前一條返回受前一條SQLSQL語句影響的行數語句影響的行數ERRORERROR返回最后執行的返回最后執行的SQLSQL語句的錯誤代碼語句的錯誤代碼T-SQLT-SQL中的全局變量中的全局變量 v 全局變量是由全局變量是由SQL Server SQL Server 系統定義并使用的變量,用戶不能系統定義并使用的變量,用戶不能定義全局變量,但可以使用全局變量。全局變量通常存儲定義全局變量,但可以使用全局變量。全局變量通常存儲SQL SQL Server Serv

17、er 的配置參數和性能統計數據,用戶可在程序中用全局的配置參數和性能統計數據,用戶可在程序中用全局變量來測試系統性能或獲取變量來測試系統性能或獲取T-SQLT-SQL命令執行后的狀態值。命令執行后的狀態值。 使用全局變量必須注意的事項使用全局變量必須注意的事項v全局變量全部以全局變量全部以“”為標記為標記v全局變量不是由用戶定義的,而是由數據庫服務器全局變量不是由用戶定義的,而是由數據庫服務器定義的。定義的。v用戶只能使用用戶只能使用SQL Server SQL Server 數據庫系統預先定義的全數據庫系統預先定義的全局變量。局變量。v引用全局變量時,必須以標記符引用全局變量時,必須以標記符

18、“”開頭。開頭。v局部變量的名稱不能與全局變量的名稱相同,否則局部變量的名稱不能與全局變量的名稱相同,否則會在應用中出錯。會在應用中出錯。T-SQLT-SQL中的運算符中的運算符 v 運算符是一種符號,用來指定在一個或多個表達式中執行運算符是一種符號,用來指定在一個或多個表達式中執行的操作。的操作。v SQL Server SQL Server 提供的運算符有:提供的運算符有: 算術運算符算術運算符 賦值運算符賦值運算符 位運算符位運算符 比較運算符比較運算符 邏輯運算符邏輯運算符 字符串連接運算符字符串連接運算符 一元運算符等。一元運算符等。 T-SQLT-SQL中的運算符中的運算符v重點掌

19、握算術運算符、賦值運算符、比較運算符、重點掌握算術運算符、賦值運算符、比較運算符、邏輯運算符和字符串連接運算符。邏輯運算符和字符串連接運算符。v演示教材中例演示教材中例5-2 5-2 至例至例5-55-5。T-SQLT-SQL中的運算符中的運算符vSQL Server SQL Server 提供了許多內部函數,可以分為數學函提供了許多內部函數,可以分為數學函數、字符串函數、日期函數、聚合函數、系統函數數、字符串函數、日期函數、聚合函數、系統函數及用戶自定義函數等。及用戶自定義函數等。v函數給用戶提供了強大的功能,使用戶不需要編寫函數給用戶提供了強大的功能,使用戶不需要編寫很多代碼就能夠完成某些

20、任務和操作。很多代碼就能夠完成某些任務和操作。v演示教材中例演示教材中例5-6 5-6 至例至例5-85-8。T-SQLT-SQL中的批處理中的批處理v 批處理是指包含一條或多條批處理是指包含一條或多條T-SQLT-SQL語句的語句組,批處理中語句的語句組,批處理中的所有的所有T-SQLT-SQL語句編譯成一個執行計劃,從應用程序一次性語句編譯成一個執行計劃,從應用程序一次性地發送到地發送到SQL Server SQL Server 數據庫服務器執行。數據庫服務器執行。v 編寫批處理時,編寫批處理時,GOGO語句是批處理命令的結束標志,當編譯器語句是批處理命令的結束標志,當編譯器讀取到讀取到G

21、OGO語句時,會把語句時,會把GOGO語句前的所有語句當作一個批處理,語句前的所有語句當作一個批處理,并將這些語句打包發送給數據庫服務器。并將這些語句打包發送給數據庫服務器。v GOGO語句本身不是語句本身不是T-SQLT-SQL語句的組成部分,只是一個表示批處語句的組成部分,只是一個表示批處理結束的前端指令。理結束的前端指令。T-SQLT-SQL中的流程控制語句中的流程控制語句v 流程控制語句用于控制流程控制語句用于控制SQLSQL語句、語句塊的執行順序,語句、語句塊的執行順序,T-SQLT-SQL中的流程控制語句以及功能如下表所示。中的流程控制語句以及功能如下表所示。語句語句功能功能BEG

22、INENDBEGINEND定義語句塊定義語句塊IFELSEIFELSE判斷語句判斷語句IFEXISTSIFEXISTS檢測語句檢測語句CASEWHENCASEWHEN多分支判斷語句多分支判斷語句WHILEWHILE循環語句循環語句BREAKBREAK跳出循環語句跳出循環語句CONTINUECONTINUE重新啟用循環語句重新啟用循環語句GOTOGOTO跳轉語句跳轉語句RETUENRETUEN返回語句返回語句WAIT FORWAIT FOR延期執行語句延期執行語句T-SQLT-SQL中的流程控制語句中的流程控制語句v演示教材中例演示教材中例5-9 5-9 至例至例5-115-11。T-SQLT-

23、SQL中的注釋語句中的注釋語句v注釋是指程序代碼中不執行的文本字符串,是對程注釋是指程序代碼中不執行的文本字符串,是對程序的說明,可以提高程序的可讀性,使程序代碼更序的說明,可以提高程序的可讀性,使程序代碼更易于維護,一般嵌入在程序中并以特殊的標記顯示易于維護,一般嵌入在程序中并以特殊的標記顯示出來。在出來。在T-SQLT-SQL中,注釋可以包含在批處理、存儲中,注釋可以包含在批處理、存儲過程、觸發器中。過程、觸發器中。vT-SQLT-SQL中有兩種類型的注釋符:中有兩種類型的注釋符: -:這是:這是ANSIANSI標準的兩個連字符組成的注釋符,用于單標準的兩個連字符組成的注釋符,用于單行注釋

24、。行注釋。 / /* * */ /:這是與:這是與C C語言相同的程序注釋符,語言相同的程序注釋符,/ /* *用于注釋文用于注釋文字的開頭,字的開頭,* */ /用于注釋文字的結尾,可以在程序中標識多用于注釋文字的結尾,可以在程序中標識多行文字為注釋語句。行文字為注釋語句。T-SQLT-SQL中的輸出語句中的輸出語句v輸出語句輸出語句PRINTPRINT語句用于把消息傳遞到客戶端應用語句用于把消息傳遞到客戶端應用程序,通常是在用戶屏幕上顯示,消息字符串最長程序,通常是在用戶屏幕上顯示,消息字符串最長可達可達80008000個字符,超過個字符,超過80008000個的任何字符均被截斷。個的任何

25、字符均被截斷。vPRINTPRINT語句只能傳輸文本型的字符串,或者是單個語句只能傳輸文本型的字符串,或者是單個的字符型變量。的字符型變量。vPRINTPRINT語句也可以傳遞全局變量,但只能是字符類語句也可以傳遞全局變量,但只能是字符類型的全局變量。型的全局變量。選項設置語句(選項設置語句(SETSET) vSQL Server 2008SQL Server 2008數據庫系統中設置了一些選項,用數據庫系統中設置了一些選項,用以影響服務器處理特定條件的方式,這些選項存在以影響服務器處理特定條件的方式,這些選項存在于用戶與服務器的連接期間或用戶的存儲過程和觸于用戶與服務器的連接期間或用戶的存儲

26、過程和觸發器中,可以使用發器中,可以使用SETSET語句設置這些參數。語句設置這些參數。v語法如下:語法如下: SET condition on | off | ValueSET condition on | off | Value部分選項參數設置部分選項參數設置 選項選項值值含義含義SET STATISTICS TIMESET STATISTICS TIMEONON讓服務器返回語句的運行時間讓服務器返回語句的運行時間SET STATISTICS IOSET STATISTICS IOONON讓服務器返回請示的物理和邏輯頁數讓服務器返回請示的物理和邏輯頁數SET SHOWPLANSET SHO

27、WPLANONON讓服務器返回當前正在運行的計劃中的查詢讓服務器返回當前正在運行的計劃中的查詢SET PARSONLYSET PARSONLYONON讓服務器對查詢進行語法檢查但并不運行讓服務器對查詢進行語法檢查但并不運行SET ROWCOUNTSET ROWCOUNTn n讓服務器只返回查詢中的前讓服務器只返回查詢中的前n n行行SET NOCOUNTSET NOCOUNTONON不必報告查詢所返回的行數不必報告查詢所返回的行數項目五 使用T-SQL命令定義數據庫和表了解了解T-SQL語言語言1 T-SQLT-SQL語言基礎語言基礎2使用使用T-SQL命令定義數據庫命令定義數據庫 3 使用使

28、用T-SQL命令定義表命令定義表4 使用使用T-SQLT-SQL命令定義數據庫命令定義數據庫v數據庫在數據庫在WindowsWindows操作系統中體現為數據庫文件,數操作系統中體現為數據庫文件,數據庫文件包括數據文件和日志文件兩大類。據庫文件包括數據文件和日志文件兩大類。v我們在這一任務中介紹創建數據庫的命令我們在這一任務中介紹創建數據庫的命令CREATE CREATE DATABASEDATABASE、修改數據庫命令、修改數據庫命令ALTER DATABASEALTER DATABASE和刪除和刪除數據庫命令數據庫命令DROP DATABASEDROP DATABASE。創建數據庫命令創建

29、數據庫命令CREATE DATABASE CREATE DATABASE v 最簡單的最簡單的CREATE DATABASECREATE DATABASE命令格式命令格式 CREATE DATABASE database_nameCREATE DATABASE database_namev 指定數據庫文件名稱和位置的指定數據庫文件名稱和位置的CREATE DATABASECREATE DATABASE命令格式命令格式 CREATE DATABASE database_nameCREATE DATABASE database_name ON PRIMARY( ON PRIMARY( -這里的關鍵

30、字這里的關鍵字PRIMARYPRIMARY可省略,用于主文件的定義可省略,用于主文件的定義 NAME=logical_file_name, NAME=logical_file_name, -設置主數據文件的邏輯名稱設置主數據文件的邏輯名稱 FILENAME=os_file_name FILENAME=os_file_name -設置主數據文件的操作系統名稱設置主數據文件的操作系統名稱 ) ) LOG ON ( LOG ON ( -LOG ON-LOG ON用于日志文件的定義用于日志文件的定義 NAME=logical_file_name, NAME=logical_file_name, -設置

31、日志文件的邏輯名稱設置日志文件的邏輯名稱 FILENAME=os_file_name FILENAME=os_file_name -設置日志文件的操作系統名稱設置日志文件的操作系統名稱 ) )創建數據庫命令創建數據庫命令CREATE DATABASECREATE DATABASEv演示教材中例演示教材中例5-145-14至例至例5-165-16創建數據庫命令之完整格式創建數據庫命令之完整格式CREATE DATABASE CREATE DATABASE 數據庫名數據庫名 ON ON ,. ,.n n , ,. , ,.n n LOG ON ,. LOG ON ,.n n COLLATE COL

32、LATE collation_name collation_name FOR LOAD | FOR ATTACH FOR LOAD | FOR ATTACH ONON:指定主數據文件的相:指定主數據文件的相關信息;關信息;LOG ON: 指定日志文件指定日志文件的相關信息;的相關信息;指定數據庫的默認排序規則。指定數據庫的默認排序規則。 Windows_collation_name | SQL_collation_name 指定從現有的一組操作系指定從現有的一組操作系統文件中附加數據庫。統文件中附加數據庫。與早期版本的與早期版本的 Microsoft SQL Microsoft SQL Ser

33、ver Server 兼容。兼容。 := := PRIMARY PRIMARY ( NAME = ( NAME = logical_file_name logical_file_name , , FILENAME = FILENAME = os_file_nameos_file_name , SIZE = , SIZE = size size , MAXSIZE = , MAXSIZE = max_sizemax_size | | UNLIMITED UNLIMITED , FILEGROWTH = , FILEGROWTH = growth_increment growth_incremen

34、t ) ,. ) ,.n n := :=FILEGROUP FILEGROUP filegroup_namefilegroup_name filespec ,. ,.n n 說明主數據文件說明主數據文件或日志文件的邏或日志文件的邏輯文件名、輯文件名、OSOS文文件名、大小、最件名、大小、最大大小和增長率!大大小和增長率!說明新建文件組說明新建文件組和屬于組內的文和屬于組內的文件項!件項!創建數據庫命令之完整格式創建數據庫命令之完整格式建立數據庫實例一建立數據庫實例一CREATE DATABASE CREATE DATABASE 設備管理設備管理 ON PRIMARYON PRIMARY ( N

35、AME=NAME=設備管理設備管理_data_data,-主數據文件的邏輯名主數據文件的邏輯名 FILENAME=DFILENAME=D:datadata設備管理設備管理_data.mdf_data.mdf, -主數據文件的物理名主數據文件的物理名 SIZE=10MBSIZE=10MB, -初始大小初始大小 MAXSIZE=UNLIMTEDMAXSIZE=UNLIMTED )LOG ONLOG ON ( NAME=NAME=設備管理設備管理_log_log,-日志文件的邏輯名日志文件的邏輯名 FILENAME=DFILENAME=D:datadata設備管理設備管理_log.ldf_log.l

36、df, -日志文件的物理名日志文件的物理名 SIZE=1MBSIZE=1MB, MAXSIZE=5MB MAXSIZE=5MB -最大大小最大大小 )示例示例創建指定數據文件和事務日志文件的數據庫創建指定數據文件和事務日志文件的數據庫v 示例創建名為示例創建名為 Sales Sales 的數據的數據庫。因為沒有使用關鍵字庫。因為沒有使用關鍵字 PRIMARYPRIMARY,第一個文件,第一個文件 (Sales_dat) (Sales_dat) 成為主文件。成為主文件。因為因為 Sales_dat Sales_dat 文件的文件的 SIZE SIZE 參數沒有指定參數沒有指定 MB MB 或或

37、KBKB,因此默認為,因此默認為 MBMB,以兆字,以兆字節為單位進行分配。節為單位進行分配。Sales_log Sales_log 文件以兆字節為文件以兆字節為單位進行分配,因為單位進行分配,因為 SIZE SIZE 參數中顯式聲明了參數中顯式聲明了 MB MB 后綴。后綴。CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = e:datasaledat.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME =e:datas

38、alelog.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) 示例示例: :指定多個數據文件和事務日志文件創建數據庫指定多個數據文件和事務日志文件創建數據庫 v后面的示例使用三個后面的示例使用三個 100 MB 100 MB 的數據文件和兩個的數據文件和兩個 100 MB 100 MB 的事務日志文件創建了名為的事務日志文件創建了名為 Archive Archive 的數的數據庫。主文件是列表中的第一個文件,并使用據庫。主文件是列表中的第一個文件,并使用 PRIMARY PRIMARY 關鍵字顯式指定。事務日志文件在關鍵字顯式指定。事務日

39、志文件在 LOG ON LOG ON 關鍵字后指定。注意關鍵字后指定。注意 FILENAME FILENAME 選項中所用的文件選項中所用的文件擴展名:擴展名:主要數據文件使用主要數據文件使用 .mdf.mdf,次要數據文件使,次要數據文件使用用 .ndf.ndf,事務日志文件使用,事務日志文件使用 .ldf.ldf。CREATE DATABASE ArchiveCREATE DATABASE Archive ON ON PRIMARYPRIMARY ( NAME = Arch1, ( NAME = Arch1, FILENAME = c:program filesmicrosoft sql

40、FILENAME = c:program filesmicrosoft sql servermssqldataarchdat1.mdf, servermssqldataarchdat1.mdf, SIZE = 100MB, MAXSIZE = 200, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), FILEGROWTH = 20), ( NAME = Arch2, ( NAME = Arch2, FILENAME = c:program files microsoft FILENAME = c:program files microsoft sq

41、l servermssqldataarchdat2.ndf,sql servermssqldataarchdat2.ndf, SIZE = 100MB, MAXSIZE = 200, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), FILEGROWTH = 20), ( NAME = Arch3, ( NAME = Arch3, FILENAME = c:program filesmicrosoft FILENAME = c:program filesmicrosoft sql servermssqldataarchdat3.ndf, sql se

42、rvermssqldataarchdat3.ndf, SIZE = 100MB, MAXSIZE = 200, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) FILEGROWTH = 20) LOG ON ( NAME = Archlog1, FILENAME = c:program files microsoft sql server mssql data archlog1.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Archlog2, FILENAME = c:pro

43、gram filesmicrosoft sql servermssqldataarchlog2.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)使用文件組創建數據庫使用文件組創建數據庫v 后面的示例使用三個文件組創建名為后面的示例使用三個文件組創建名為 sales sales 的數據庫;的數據庫;v 主文件組包含文件主文件組包含文件 Spri1_dat Spri1_dat 和和 Spri2_datSpri2_dat。指定這些文件。指定這些文件的的 FILEGROWTH FILEGROWTH 增量為增量為 15%15%。v 名為名為 Sales

44、Group1 SalesGroup1 的文件組包含文件的文件組包含文件 SGrp1Fi1 SGrp1Fi1 和和 SGrp1Fi2SGrp1Fi2。v 名為名為 SalesGroup2 SalesGroup2 的文件組包含文件的文件組包含文件 SGrp2Fi1 SGrp2Fi1 和和 SGrp2Fi2SGrp2Fi2。CREATE DATABASE Sales ON PRIMARY ( NAME = SPri1_dat, FILENAME = c:program filesmicrosoft sql servermssqldataSPri1dat.mdf, SIZE = 10, MAXSIZE

45、 = 50, FILEGROWTH = 15% ), ( NAME = SPri2_dat, FILENAME = c:program filesmicrosoft sql servermssqldataSPri2dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), FILEGROUP SalesGroup1 ( NAME = SGrp1Fi1_dat, FILENAME = c:program filesmicrosoft sql servermssqldataSG1Fi1dt.ndf, SIZE = 10, MAXSIZE = 50, F

46、ILEGROWTH = 5 ), ( NAME = SGrp1Fi2_dat, FILENAME = c:program filesmicrosoft sql servermssqldataSG1Fi2dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), FILEGROUP SalesGroup2 ( NAME = SGrp2Fi1_dat, FILENAME = c:program filesmicrosoft sql servermssqldataSG2Fi1dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWT

47、H = 5 ), ( NAME = SGrp2Fi2_dat, FILENAME = c:program filesmicrosoft sql servermssqldataSG2Fi2dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = c:program files microsoft sql servermssqldatasalelog.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) 附加數據庫附加數據庫 v假設

48、前面已經假設前面已經 創建一個包含物理文件的名為創建一個包含物理文件的名為 Archive Archive 的數據庫:的數據庫: CREATE DATABASE Archive CREATE DATABASE Archive ON ON PRIMARY (FILENAME = c:program PRIMARY (FILENAME = c:program filesmicrosoft sql filesmicrosoft sql servermssqldataarchdat1.mdf) servermssqldataarchdat1.mdf) FOR ATTACHFOR ATTACH 修改數據

49、庫命令修改數據庫命令ALTER databaseALTER databasev更改數據庫名稱更改數據庫名稱v往數據庫中添加文件(擴大數據庫)往數據庫中添加文件(擴大數據庫)v更改數據庫文件更改數據庫文件v從數據庫中刪除文件(縮小數據庫)從數據庫中刪除文件(縮小數據庫)修改數據庫修改數據庫v使用使用ALTER DATABASEALTER DATABASE語句修改數據庫的各屬性,語句修改數據庫的各屬性,包包括添加或刪除文件或文件組、修改文件或文件組的括添加或刪除文件或文件組、修改文件或文件組的屬性屬性等。等。vALTER DATABASE ALTER DATABASE ADD FILE ADD F

50、ILE TO FILEGROUP TO FILEGROUP | ADD LOG FILE | ADD LOG FILE | REMOVE FILE | REMOVE FILE | REMOVE FILEGROUP | REMOVE FILEGROUP | MODIFY FILE | MODIFY FILE | MODIFY FILEGROUP | MODIFY FILEGROUP v其中其中“文件格式文件格式”的格式為:的格式為: (NAME=NAME= ,FILENAME= ,FILENAME= ,SIZE= ,SIZE= ,MAXSIZE= ,MAXSIZE= |UNLIMITED |UN

51、LIMITED ,FILEGROWTH= ,FILEGROWTH= )更改數據庫名稱更改數據庫名稱ALTER DATABASE database_name ALTER DATABASE database_name - database_name- database_name是原數據庫名是原數據庫名MODIFY NAME=new_database_nameMODIFY NAME=new_database_name; ; - new_database_name- new_database_name是新數據庫名是新數據庫名往數據庫中添加文件(擴大數據庫)往數據庫中添加文件(擴大數據庫) ALTER

52、DATABASE database_name ALTER DATABASE database_name - database_name- database_name是要修改的數據庫是要修改的數據庫ADD FILE ADD FILE - filespec- filespec為新加的文件參數,如文件的邏輯名、操作系統名和為新加的文件參數,如文件的邏輯名、操作系統名和 -大小參數等,與建立數據庫時的文件參數相同。大小參數等,與建立數據庫時的文件參數相同。 從數據庫中刪除文件(縮小數據庫)從數據庫中刪除文件(縮小數據庫) ALTER DATABASE database_name ALTER DATAB

53、ASE database_name - - database_namedatabase_name是要修改的數據庫是要修改的數據庫REMOVE FILE logical_file_name REMOVE FILE logical_file_name - - logical_file_namelogical_file_name為要刪除的文件對應的邏輯文件名為要刪除的文件對應的邏輯文件名更改數據庫文件更改數據庫文件 ALTER DATABASE database_name ALTER DATABASE database_name - database_name- database_name是要修改的

54、數據庫是要修改的數據庫MODIFY FILE MODIFY FILE - filespec- filespec為更改的文件參數,如文件的邏輯名、為更改的文件參數,如文件的邏輯名、 -操作系統名和大小參數等。操作系統名和大小參數等。刪除數據庫刪除數據庫vDROP DATABASE DROP DATABASE v例如:例如: DROP DATABASE ArchiveDROP DATABASE Archive - -刪除刪除ArchiveArchive數據庫!數據庫!修改數據庫修改數據庫v演示并說明教材中例演示并說明教材中例5-175-17至至5-215-21項目五 使用T-SQL命令定義數據庫和

55、表了解了解T-SQL語言語言1 T-SQLT-SQL語言基礎語言基礎2使用使用T-SQL命令定義數據庫命令定義數據庫 3 使用使用T-SQL命令定義表命令定義表4 使用使用T-SQLT-SQL命令創建表命令創建表v創建表時首先要確定在哪一個數據庫中創建;然創建表時首先要確定在哪一個數據庫中創建;然后再確定表的名字,每列的類型、寬度;確定列后再確定表的名字,每列的類型、寬度;確定列的約束條件、表主鍵等相關內容。的約束條件、表主鍵等相關內容。v選擇數據庫,有兩種方法。選擇數據庫,有兩種方法。v手動選擇:在手動選擇:在SSMSSSMS的工具欄中使用下拉列表框進的工具欄中使用下拉列表框進行選擇行選擇

56、。v命令選擇:命令選擇:USE USE 數據庫名數據庫名 創建表的基本命令創建表的基本命令vCreate table Create table 表名表名( ,)v實例:實例: create table create table 教師表教師表 ( ( 教師號教師號 char(4),char(4), 教師姓名教師姓名 char(8),char(8), 性別性別 char(2),char(2), 年齡年齡 smallint ,smallint , 職稱職稱 char(20)char(20)創建表創建表每列后加列級完整性約束每列后加列級完整性約束v 每個列后面的完整性約束稱為列級完整性約束,共有六種。

57、每個列后面的完整性約束稱為列級完整性約束,共有六種。 DEFAULT DEFAULT :默認值約束;默認值約束; NULL/NOT NULLNULL/NOT NULL:空值空值/ /非空值約束;非空值約束; PRIMARY KEYPRIMARY KEY:主碼約束;主碼約束; UNIQUEUNIQUE:單值約束;單值約束; REFERENCE REFERENCE ( ():外碼約束;外碼約束; CHECK (CHECK ():檢查約束。檢查約束。創建表創建表表級完整性約束表級完整性約束v“表級完整性約束表級完整性約束”在所有列定義后給出,包括四種。在所有列定義后給出,包括四種。 PRIMARY

58、KEY (PRIMARY KEY (,),):-主碼約束;主碼約束; UNIQUE (UNIQUE (,) ,) : -單值約束;單值約束; FOREIGN KEY (FOREIGN KEY (,) REFERENCE ,) REFERENCE () - -外碼約束;外碼約束; CHECK (CHECK (): -檢查約束。檢查約束。表表/ /列級完整性約束列級完整性約束v除除默認值約束默認值約束和和空值空值/ /非空值約束非空值約束外,對于其他約外,對于其他約束,若只涉及到一個列時,則即可以作為列級完整束,若只涉及到一個列時,則即可以作為列級完整性約束又可以作為表級完整性約束,可取其一使用;

59、性約束又可以作為表級完整性約束,可取其一使用;若涉及到多個列時,則只能作為表級完整性約束。若涉及到多個列時,則只能作為表級完整性約束。v每個約束前均可加約束名每個約束前均可加約束名: : CONSTRAINT CONSTRAINT 創建表命令創建表命令示例示例2 2create table create table 學生學生 ( ( 學生號學生號 char(8) char(8) primary keyprimary key, , 姓名姓名 char(6) char(6) not null uniquenot null unique, , 性別性別 char(2) char(2) not nul

60、lnot null check(check(性別性別=男男 or or 性別性別=女女 ),), 出生日期出生日期 datetimedatetime check(check(出生日期出生日期 1996-12-31 ),=1 and =1 and 年級年級=4 )=1 and =1 and 課課程學分程學分 =6)=0 and =0 and 成績成績=100 ),0),0), 總金額總金額 money,money, 訂貨日期訂貨日期 datetime default getdate()datetime default getdate() ) )建立表建立表使用使用uniqueidentifier

溫馨提示

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

評論

0/150

提交評論