SQL Server 实用教程课件_第1页
SQL Server 实用教程课件_第2页
SQL Server 实用教程课件_第3页
SQL Server 实用教程课件_第4页
SQL Server 实用教程课件_第5页
已阅读5页,还剩663页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

資料庫基本概念1.1.1數據模型1.1.1數據模型

(1)關係模型以二維表格(關係表)的形式組織資料庫中的數據。學號姓名專業名性別出生時間總學分備註001101王林電腦男1980-02-1050

001102程明電腦男1981-02-0150

001103王燕電腦女1979-10-0650

001104韋嚴平電腦男1980-08-2650

001106李方方電腦男1980-11-2050

001107李明電腦男1980-05-0154提前修完《數據結構》,並獲學分001108林一帆電腦男1979-08-0552已提前修完一門課001109張強民電腦男1978-08-1150

001110張蔚電腦女1981-07-2250三好生001111趙琳電腦女1980-03-1850

001113嚴紅電腦女1979-08-1148有一門功課不及格,待補考1.1.1數據模型學生資訊表001201王敏通信工程男1978-06-1042

001202王林通信工程男1979-01-2940有一門課不及格,待補考001203王玉民通信工程男1980-03-2642

001204馬琳琳通信工程女1978-02-1042

001206李計通信工程男1979-09-2042

001210李紅慶通信工程男1979-05-0144已提前修完一門課,並獲得學分001216孫祥欣通信工程男1978-03-0942

001218孫研通信工程男1980-10-0942

001220吳薇華通信工程女1980-03-1842

001221劉燕敏通信工程女1979-11-1242

001241羅林琳通信工程女1980-01-3050轉專業學習1.1.1數據模型課程資訊表

課程號課程名類別開課學期學時學分0101電腦導論216430102C++程式設計1210040103數據結構1312050104電腦組成原理139640105操作系統1412050106資料庫原理1411250107電腦網絡159640108電腦新技術313220201國際貿易概論227230202經營管理138040203系統工程149651.1.1數據模型成績資訊表

學號課程號成績學號課程號成績學號課程號成績0011011018000110710178001111206760011011027800110710280001113101630011012067600110720668001113102790011031016200110810185001113206600011031027000110810264001201101800011032068100110820687001202101650011041019000110910166001203101870011041028400110910283001204101910011042066500110920670001210101760011021027800111010195001216101810011022067800111010290001218101700011061016500111020689001220101820011061027100111110191001221101760011062068000111110270001241101901.1.1數據模型(2)層次模型以樹型層次結構組織數據。

1.1.1數據模型(3)網狀模型每一個數據用一個節點表示,每個節點與其它節點都有聯繫,這樣資料庫中的所有數據節點就構成了一個複雜的網路。1.1.2E-R模型學生成績管理系統中的實體集及每個實體集涉及的屬性。1.1.2E-R模型(1)一對一的聯繫(1:1)

1.1.2E-R模型(2)一對多的聯繫(1:n)

1.1.2E-R模型(3)多對多的聯繫(m:n)

1.1.3邏輯結構設計1.(1:1)聯繫的E-R圖到關係模式的轉換

(1)聯繫單獨對應一關係模式,則由聯繫屬性、參與聯繫的各實體集的主碼屬性構成關係模式,其主碼可選參與聯繫的實體集的任一方的主碼。

BJ(班級編號,院系,專業名,人數) BZ(學號,姓名)SY(學號,班級編號)(2)聯繫不單獨對應一關係模式,聯繫的屬性及一方的主碼加入另一方實體集對應的關係模式中。BJ(班級編號,院系,專業名,人數)BZ(學號,姓名,班級編號)或者BJ(班級編號,院系,專業名,人數,學號)BZ(學號,姓名)1.1.3邏輯結構設計2.(1:n)聯繫的E-R圖到關係模式的轉換(1)聯繫單獨對應一關係模式,則由聯繫的屬性、參與聯繫的各實體集的主碼屬性構成關係模式,n端的主碼作為該關係模式的主碼。BJ(班級編號,院系,專業名,人數)XS(學號,姓名,專業名,性別,出生時間,總學分,備註)SY(學號,班級編號)(2)聯繫不單獨對應一個關係模式,則將聯繫的屬性及1端的主碼加入n端實體集對應的關係模式中,主碼仍為n端的主碼。BJ(班級編號,院系,專業名,人數)XS(學號,姓名,專業名,性別,出生時間,總學分,備註,班級編號)1.1.3邏輯結構設計3.(m:n)聯繫的E-R圖到關係模式的轉換

對於(m:n)的聯繫,單獨對應一關係模式,該關係模式包括聯繫的屬性、參與聯繫的各實體集的主碼屬性,該關係模式的主碼由各實體集的主碼屬性共同組成。例如:圖描述的“學生(XS)”與“課程(KC)”實體集之間的聯繫可設計如下關係模式:

XS(學號,姓名,專業名,性別,出生時間,總學分,備註)KC(課程號,課程名稱,類別,開課學期,學時,學分)

XS_KC(學號,課程號,成績)

關係模式XS_KC的主碼是由“學號”和“課程號”兩個屬性組合起來構成的一個主碼,一個關係模式只能有一個主碼。1.2.1SQLServer2000簡介SQLServer2000是一個基於客戶機/伺服器(C/S)模式的關係資料庫管理系統。1.2.2SQLServer2000軟硬體環境

安裝SQLServer2000除了要有合適的Windows操作系統外,還應確保電腦能滿足其硬體要求。硬體名稱最低要求電腦Intel或其相容機,Pentium166MHz,或更高

記憶體(RAM)企業版:64MB標準版:32MB

硬碟空間要求SQLServer2000:180MB(完全安裝)、170MB(典型安裝)、65MB(最小安裝)、90MB(只安裝客戶端工具)

安裝SQLServer2000的Windows操作系統對硬體最低要求見Windows操作系統的有關說明。1.2.3SQLServer2000的安裝

SQLServer2000的安裝步驟如下:第1步將SQLServer2000安裝盤放入光驅,運行光驅中的autorun.exe,出現安裝介面,如圖所示。第2步選擇“安裝資料庫伺服器”選項,進入安裝嚮導的歡迎窗口,按照安裝嚮導提示的單擊“下一步”,選擇本地電腦/遠程電腦。1.2.3SQLServer2000的安裝第3步進入SQLServer2000的安裝選項窗口,如圖1.10所示。選“創建新的SQLServer實例,或安裝客戶端工具(C)”,單擊“下一步”。第4步系統顯示對話框,用戶輸入姓名和公司名,單擊“下一步”。第5步選擇“創建新的SQLServer的伺服器實例或安裝客戶端工具”,此時,安裝嚮導將進一步給用戶提供如圖1.11所示的選擇:

僅客戶端:若已有數據庫伺服器,只需安裝客戶端工具時選擇此項。

伺服器和客戶端:用於安裝資料庫伺服器和客戶機工具。

僅連接:用於應用程式開發時使用,只是安裝連接工具。1.2.3SQLServer2000的安裝

第6步選擇安裝伺服器和客戶端,並輸入伺服器實例名,則進入安裝類型選擇窗口。

典型安裝。系統默認的安裝選項,也是最常用的安裝選項,此方式下將安裝SQLServer2000的全部管理工具及SQLServer2000的線上手冊。最小安裝。僅安裝使用SQLServer2000資料庫管理系統必須的選項,主要為配置較低的用戶使用。自定義安裝。允許在安裝SQLServer2000的過程中,用戶根據自己的需要,選擇安裝內容,這一安裝方式適用於有經驗的用戶。1.2.3SQLServer2000的安裝第7步選擇啟動“服務帳戶”,確定SQLServer服務和SQLServer代理服務是同一帳戶用戶啟動,還是由不同帳戶用戶啟動。1.2.3SQLServer2000的安裝第8步進入身份驗證模式窗口,如圖所示。Windows驗證模式:使用WindowsNT、Windows2000、Windows2003上的登錄帳戶進行連接,SQLServer利用Windows操作系統的用戶安全特性控制登錄訪問,實現了SQLServer與WindowsNT、Windows2000、Windows2003的登錄安全集成。混合模式(Windows身份驗證和SQLServer身份驗證):使用Windows身份驗證或SQLServer身份驗證與SQLServer連接。1.2.3SQLServer2000的安裝第9步選擇授權模式,如圖所示。

1.3.1SQLServer2000伺服器組件

SQLServer2000伺服器組件是SQLServer2000系統的主要服務單元。主要包括:

SQLServer資料庫引擎(MSSQLServer服務)

SQLServer代理程式(SQLServerAgent服務)

Microsoft搜索服務分佈式事務處理協調器(MSDTC服務)。SQLServer2000伺服器組件可由SQLServer服務管理器啟動、停止和暫停。

1.SQLServer資料庫引擎

(1)默認實例:SQLServer2000默認實例僅由運行該實例的電腦的名稱唯一標識,它沒有單獨的實例名,默認實例的服務名稱為MSSQLServer。(2)命名實例:除默認實例外,所有資料庫引擎實例都由安裝該實例的過程中指定的實例名標識。1.3.1SQLServer2000伺服器組件2.SQLServer代理程式實現運行調度的SQLServer管理任務的代理程式。在電腦上運行的每個SQLServer實例都有一個SQLServer代理服務。3.Microsoft搜索服務僅用於WindowsNT、Windows2000和Windows2003,實現全文本檢索引擎。不論電腦上有多少個SQLServer實例,都只有一個搜索服務。4.分佈式事務處理協調器僅用於WindowsNT、Windows2000和Windows2003,管理分佈式事務。不論電腦上有多少個SQLServer實例,都只有一個MSDTC服務。1.3.2SQLServer2000服務啟動和停止

1.啟動和停止SQLServer伺服器實例啟動和停止SQLServer伺服器實例有下列方法:(1)在操作系統啟動時自動啟動每個服務。開始

所有程式

管理工具

服務,系統打開Windows2003服務窗口如圖。選擇名稱為“MSSQLSERVER”的服務,單擊“操作”菜單

選“啟動”菜單項。1.3.2SQLServer2000服務啟動和停止(2)用SQLServer服務管理器啟動或停止服務。開始

所有程式

MicrosoftSQLServer

服務管理器,則進入服務管理器介面,如圖

1.3.2SQLServer2000服務啟動和停止(3)在WindowsNT或Windows2000中,使用netstart和netstop命令啟動或停止SQLServer伺服器服務,如圖所示。(4)用SQLServer企業管理器啟動或停止服務。第1步選擇開始

所有程式

MicrosoftSQLServer

企業管理器,進入企業管理器介面,右邊為系統安裝時建立的默認SQLServer組的圖示。第2步雙擊SQLServer組圖示,右邊顯示的是系統安裝時建立的默認伺服器實例的圖示,圖中的伺服器實例處於停止狀態。1.3.2SQLServer2000服務啟動和停止啟動企業管理器後的介面未啟動伺服器服務時的企業管理器第3步雙擊該圖示,系統將啟動SQLServer伺服器的服務,並建立企業管理器與該實例的連接,如圖所示。1.3.3設置Windows服務帳戶

Windows兩種類型的服務帳戶:本地系統帳戶:本地系統帳戶不需要設置密碼,沒有網路訪問許可權,使用本地系統帳戶限制了SQLServer與其它伺服器的通信。(2)域用戶帳戶:只有使用域用戶帳戶時,一些伺服器到伺服器的活動才能進行。默認情況下,顯示當前登錄到電腦的域用戶的帳戶資訊。所有域用戶帳戶必須滿足如下條件:帳戶必須是Administrators本地組的成員。帳戶密碼必須是永久有效(即設置PasswordNeverExpires屬性)。該帳戶有在SQLServer電腦上登錄的全部服務許可權,並可在任意時間登錄。

在WindowsNT、2000、2003環境下安裝SQLServer2000,首先要創建Windows服務帳戶。SQLServer2000中的SQLServer、SQLServerAgent和MS-DTC都是作為服務啟動和運行的。1.4.1SQL企業管理器

SQLServer2000企業管理器(SQLEnterpriseManager)是Microsoft管理控制臺(MMC)的管理單元組件。MMC支持從單個控制臺管理多種類型的伺服器,企業管理器是按照“資料庫伺服器組”

“資料庫伺服器”

“資料庫”

“資料庫對象(表、視圖等)”這樣一個層次結構組織對象並進行管理的。1.4.1SQL企業管理器企業管理器的主要功能如下:註冊伺服器配置本地伺服器配置遠程伺服器配置多重伺服器設置登錄安全性對數據庫、資料庫對象進行管理和操作創建警告建立操作員為獨立的環境創建和安排作業為多重伺服器環境創建和安排作業創建和管理複製方案為企業管理器設置輪詢間隔1.4.2SQL查詢分析器1.從SQLServer企業管理器調用SQL查詢分析器選擇菜單:“工具”

“SQL查詢分析器”。

1.4.2SQL查詢分析器2.由“開始”任務欄進入查詢分析器從“開始”任務欄,選擇“程式”

“MicrosoftSQLServer”“查詢分析器”。若要連接網上其他的SQLServer伺服器,選擇菜單項:檔

連接,出現如圖所示的對話框。1.5註冊伺服器註冊伺服器後,將該伺服器加入指定的伺服器組。利用企業管理器註冊伺服器的步驟:第1步啟動企業管理器

選擇SQLServer伺服器組圖示

右擊,出現圖所示的快捷菜單;第2步選擇“新建SQLServer伺服器註冊”快捷菜單項,進入圖伺服器註冊嚮導;第3步選擇“下一步”,進入添加可用伺服器的的介面;第4步選擇“下一步”,進入SQLServer伺服器註冊嚮導的身份驗證介面;第5步選擇“下一步”,進入SQLServer伺服器註冊嚮導選擇連接選項的介面;1.5註冊伺服器第6步選擇“下一步”,進入圖所示SQLServer伺服器註冊嚮導選擇伺服器組的介面;第7步選擇“下一步”,進入註冊完成介面,然後與註冊的伺服器連接,以檢測伺服器註冊是否成功。1.5註冊伺服器

SQLServer伺服器註冊嚮導的身份驗證介面

SQLServer伺服器註冊嚮導選擇連接選項的介面1.5註冊伺服器SQLServer伺服器註冊嚮導選擇伺服器組的介面

利用帳戶sa成功註冊到SQLServer伺服器HU後的介面

1.6SQLServer2000應用過程SQLServer2000作為後臺資料庫,在前臺應用程式開發環境下設計應用程式,可按以下步驟進行:第1步根據學生成績管理的特點,確定資料庫包含的表及每個表的結構。第2步啟動企業管理器,並完成以下工作:(1)建立學生成績資料庫(XSCJ);建立XSCJ資料庫學生、課程和成績資訊表;建立資料庫、表及輸入數據的詳細步驟請參考第2~3章。第3步利用前臺應用程式開發環境設計介面和相應的程式。(1)設計表單,根據需要加入有關控件並設置相應的屬性參數;在表單中加入數據控件,並設置參數,建立應用程式與資料庫間的聯接;根據應用要求,設計應用程式。第4步在開發環境下調試運行程式,使運行結果滿足成績管理的應用要求。第5步對調試通過的程式進行編譯聯接,形成.EXE檔,並在Windows環境下運行該EXE檔,檢查是否符合要求。2.1.1資料庫1.邏輯資料庫

SQLServer2000資料庫是存儲數據的容器,是一個存放數據的表和支持這些數據的存儲、檢索、安全性和完整性的邏輯成分所組成的集合。

資料庫對象說明表由行和列構成的集合,用來存儲數據數據類型定義列或變數的數據類型,SQLServer提供了系統數據類型,並允許用戶自定義數據類型視圖由表或其他視圖導出的虛擬表索引為數據快速檢索提供支持且可以保證數據唯一性的輔助數據結構約束用於為表中的列定義完整性的規則默認值為列提供的缺省值存儲過程存放於伺服器的預先編譯好的一組T-SQL語句觸發器特殊的存儲過程,當用戶表中數據改變時,該存儲過程被自動執行2.1.1資料庫(1)完全限定名完全限定名是對象的全名,包括四個部分:伺服器名、資料庫名、所有者名和對象名,其格式為:server.database.owner.object在SQLServer2000上創建的每個對象都必須有一個唯一的完全限定名。(2)部分限定名在使用T-SQL編程時,使用全名往往很繁瑣且沒有必要,所以常省略全名中的某些部分,對象全名的四個部分中的前三個部分均可以被省略,當省略中間的部分時,圓點符“.”不可省略。

在部分限定名中,未指出的部分使用以下默認值:伺服器:默認為本地伺服器。資料庫:默認為當前資料庫。所有者:默認為在資料庫中與當前連接會話的登錄標識相關聯的資料庫用戶名,或者資料庫所有者(dbo)。2.1.1資料庫2.物理資料庫

下麵討論物理資料庫的檔和文件組。檔SQLServer2000使用一組操作系統檔來存儲資料庫的各種邏輯成分,包括三類檔:(1)主數據檔主數據檔簡稱主文件,正如其名字所示,該檔是資料庫的關鍵檔,包含了資料庫的啟動資訊,並且存儲數據。每個資料庫必須有且僅能有一個主文件,其默認擴展名為.MDF。(2)輔助數據檔輔助數據檔簡稱輔(助)檔,用於存儲未包括在主文件內的其他數據。輔助檔的默認擴展名為.NDF。(3)日誌檔日誌檔用於保存恢復資料庫所需的事務日誌資訊。每個資料庫至少有一個日誌檔,也可以有多個。日誌檔的擴展名為.LDF。2.1.1資料庫

檔組

有兩類檔組:(1)主文件組主文件組主數據檔和任何沒有明確指派給其他檔組的其他檔。(2)用戶定義檔組T-SQL語句中用於創建和修改資料庫的語句分別是CREATEDATABASE語句和ALTERDATABASE。

在安裝SQLServer2000時,將創建四個系統資料庫:master、model、msdb和tempdb。(1)master包含了SQLServer諸如登錄帳號、系統配置、資料庫位置及資料庫錯誤資訊等,用於控制用戶數據庫和SQLServer的運行。(2)model資料庫為新創建的資料庫提供範本。(3)msdb為SQLServerAgent調度資訊和作業記錄提供存儲空間。(4)tempdb為臨時表和臨時存儲過程提供存儲空間,所有與系統連接的用戶的臨時表和臨時存儲過程都存儲於該資料庫中。2.1.2表表是在日常工作和生活中經常使用的一種表示數據及其關係的形式,表2.2就是一個學生情況表。學

號姓

名專業名性

別出生時間總學分備註001101王林電腦男1980-02-1050

001102程明電腦男1981-02-0150

001103王燕電腦女1979-10-0650

001104韋嚴平電腦男1980-08-2650

001106李方方電腦男1980-11-2050

001107李明電腦男1980-05-0154提前修完《數據結構》,並獲學分001108林一帆電腦男1979-08-0552已提前修完一門課001109張強民電腦男1978-08-1150

2.1.2表

表結構每個資料庫包含了若干個表。每個表具有一定的結構,即組成表的各列的名稱及數據類型,也就是日常表格的“欄目資訊”。記錄每個表包含了若干行數據,它們是表的“值”,表中的一行稱為一個記錄(Record),因此,表是記錄的有限集合。字段每個記錄由若干個數據項構成,將構成記錄的每個資料項目稱為字段(Field)。例如學生情況表中,表結構為(學號,姓名,專業名,性別,出生時間,總學分,備註),包含7個字段,由8個記錄組成。關鍵字注意到,在學生情況表中,若不加以限制,每個記錄的姓名、專業、性別、出生時間、總學分和備註這6個字段的值都有可能相同,但是學號字段的值對表中所有記錄來說一定不同,即通過“學號”字段可以將表中的不同記錄區分開來。2.2.1資料庫的創建、修改和刪除

1.創建資料庫(1)通過企業管理器創建資料庫對於新創建的資料庫,系統對數據檔的默認值為:初始大小1MB,最大大小不限制,而實際上僅受硬碟空間的限制,允許資料庫自動增長,增長方式為按10%比例增長;對日誌檔的默認值為:初始大小1MB,最大大小不限制,而實際上也僅受硬碟空間的限制,允許日誌檔自動增長,增長方式為按10%比例增長。【例2.1】創建資料庫XSCJ,初始大小為5MB,最大大小50MB,資料庫自動增長,增長方式是按10%比例增長;日誌檔初始為2MB,最大可增長到5MB(默認為不限制),按1MB增長(默認是按10%比例增長);所有者是Administrator。以Administrator身份登錄電腦,並啟動SQLServer服務。第1步開始

程式

MicrosoftSQLServer

企業管理器,SQLServer“企業管理器”啟動。2.2.1資料庫的創建、修改和刪除第2步在“SQLServerEnterpriseManager”窗口中展開MicrosoftSQLServers和SQLServer組,選擇SQLServer伺服器。在選擇的SQLServer伺服器上點擊滑鼠右鍵,出現如圖2.1所示的快捷菜單,選擇“新建”

“資料庫…”。2.2.1資料庫的創建、修改和刪除第3步第2步操作結束後,出現如圖2.2所示的“資料庫屬性”對話框,該對話框共有三個選項卡:常規、數據檔和日誌檔。在“常規”選項卡“名稱”文本框中輸入創建的資料庫名(本例中資料庫名為XSCJ)。2.2.1資料庫的創建、修改和刪除

系統的主數據檔默認存儲位置和文件如下:

SQLServer2000根目錄\data\資料庫名_Data.MDF

系統的主日誌檔的默認存儲位置和文件如下:

SQLServer2000根目錄\data\資料庫名_Log.LDF

本例中SQLServer2000安裝目錄為e:\sql,所以創建的XSCJ資料庫的數據檔和日誌檔的默認路徑及檔分別為:

e:\sql\data\XSCJ_Data.MDFe:\sql\data\XSCJ_Log.LDF

選擇“數據檔”和“事務日誌”兩個標籤欄,顯示系統的默認設置,用戶可以更改這兩個檔的存放位置和文件名。2.2.1資料庫的創建、修改和刪除第4步選擇“數據檔”標籤欄,在檔案名為“XSCJ_DATA”這一行的“初始大小”列將系統缺省大小1改為5,設置是否允許資料庫增長、增長方式以及最大檔大小。見圖2.3中的標注。2.2.1資料庫的創建、修改和刪除第5步選擇“事務日誌”標籤欄,與第4步類似,設置日誌檔的初始大小、是否增長、增長方式及最大大小,其介面如圖2.4所示。2.2.1資料庫的創建、修改和刪除第6步單擊“確定”按鈕,資料庫就創建好了。創建好的資料庫XSCJ的介面如圖2.5所示。2.2.1資料庫的創建、修改和刪除在第3步中,選擇“數據檔”和“事務日誌”標籤欄,則在其中可分別改變這兩個檔的存儲位置,操作過程為:在“資料庫檔”列表中,單擊相應行的“位置”一欄的“…”按鈕,在所彈出的“查找資料庫檔”或“查找事務日誌檔”對話框中即可選擇或輸入檔路徑和文件名,如圖2.6和圖2.7所示。2.2.1資料庫的創建、修改和刪除(2)使用嚮導創建資料庫(CreateDatabaseWizard)這裏仍以創建資料庫XSCJ(其屬性與(1)相同)為例說明使用嚮導(CreateDatabaseWizard)創建資料庫的操作過程。2.2.1資料庫的創建、修改和刪除第1步啟動SQLServer的“企業管理器”(EnterpriseManager)。在“SQLServerEnterpriseManager”窗口中展開MicrosoftSQLServers和SQLServer組,選擇SQLServer伺服器。第2步在“工具”菜單中選擇“嚮導…”項,如圖2.8所示。2.2.1資料庫的創建、修改和刪除第3步選擇“嚮導…”後,出現如圖2.9所示的“選擇嚮導”對話框,展開“資料庫”,如圖2.10所示,選擇“創建資料庫嚮導”,單擊“確定”。2.2.1資料庫的創建、修改和刪除第4步第3步操作完成後,出現如圖2.11所示的“創建資料庫嚮導”介面,單擊“下一步”。2.2.1資料庫的創建、修改和刪除第5步輸入資料庫名,輸入或選擇數據檔和日誌檔的存放位置,具體操作見圖2.12中的標注,單擊“下一步”。2.2.1資料庫的創建、修改和刪除第6步指定各數據檔的名稱及初始大小,操作方法見圖2.13中的標注,單擊“下一步”。2.2.1資料庫的創建、修改和刪除第7步定義資料庫檔的增長,操作方法見圖2.14中的標注,單擊“下一步”。2.2.1資料庫的創建、修改和刪除第8步指定日誌檔案名和初始大小,操作方法標示於圖2.15中,單擊“下一步”。2.2.1資料庫的創建、修改和刪除第9步定義事務日誌檔的增長,操作方法標示於圖2.16中,單擊“下一步”。2.2.1資料庫的創建、修改和刪除第10步完成。在圖2.17(a)中單擊“完成”按鈕,將出現如圖2.17(b)所示的提示資訊,單擊“確定”。2.2.1資料庫的創建、修改和刪除2.修改資料庫對已存在的資料庫可以進行的修改包括:增加或刪除數據檔改變數據檔的大小和增長方式改變日誌檔的大小和增長方式增加或刪除日誌檔增加或刪除檔組在進行任何修改操作以前,都要在“企業管理器”中選擇需要進行修改的資料庫,在該資料庫名上點擊滑鼠右鍵,出現快捷菜單,選擇“屬性”,如圖2.18所示。2.2.1資料庫的創建、修改和刪除(1)改變數據檔的大小和增長方式【例2.2】將XSCJ資料庫的主數據檔XSCJ_Data.mdf檔的最大大小由50MB修改為不限制。2.2.1資料庫的創建、修改和刪除(2)增加數據檔【例2.3】在XSCJ資料庫中增加數據檔XSCJBAK,其屬性均取系統默認值。操作方法:在“數據檔”選項卡中點擊緊隨已有檔案名後的空白行,在“檔案名”一欄中輸入數據檔案名,並可設置檔的初始大小和增長屬性,單擊“確定”。如圖2.20所示。2.2.1資料庫的創建、修改和刪除所增加的檔是輔助數據檔,單擊“…”按鈕,在彈出的對話框中可見新增檔擴展名為.NDF,如圖2.21所示。2.2.1資料庫的創建、修改和刪除(3)刪除數據檔【例2.4】將XSCJ資料庫中剛增加的輔助檔XSCJBAK刪除。操作方法如圖2.22所示。2.2.1資料庫的創建、修改和刪除(4)增加或刪除檔組【例2.5】設要在資料庫XSCJ中增加一個名為FGroup的檔組。操作方法為:選擇“檔組”標籤欄,在PRIMARY行的下麵一行輸入“FGroup”檔組,單擊“確定”按鈕,如圖2.23所示。2.2.1資料庫的創建、修改和刪除操作方法為:選擇“數據檔”標籤欄,按增加數據檔的操作方法輸入數據檔案名,然後選擇檔組“Fgroup”,如圖2.24所示。2.2.1資料庫的創建、修改和刪除【例2.6】將剛才新增的FGroup檔組刪除。首先要刪除其中的數據檔XSCJ2,然後,選擇“檔組”標籤欄,選擇FGroup檔組,單擊“刪除”按鈕,如圖2.25所示。2.2.1資料庫的創建、修改和刪除【例2.7】刪除XSCJ資料庫。第1步在“企業管理器”中選擇名為XSCJ的資料庫,在其上單擊滑鼠右鍵,在彈出的快捷菜單上選擇“刪除”,如圖2.26所示。2.2.1資料庫的創建、修改和刪除第2步在彈出如圖2.27所示的對話框中單擊“確定”,即刪除了資料庫XSCJ。注意:刪除資料庫後,該資料庫的所有對象均被刪除,將不能再對該資料庫作任何操作,因此應十分慎重。2.2.2表的創建、修改和刪除1.SQLServer支持的數據類型

精度:指數值數據中所存儲的十進位數據的總位數。小數位數:指數值數據中小數點右邊可以有的數字位數的最大值。例如數值數據3890.587的精度是7,小數位數是3。長度:指存儲數據所使用的位元組數。數據類型符

識整數型bigint,int,smallint,tinyint

精確數值型decimal,numeric浮點型float,real貨幣型money,smallmoney

位型bit字元型char,varchar

Unicode字元型nchar,nvarchar

文本型text,ntext二進位型binary,varbinary日期時間類型datetime,smalldatetime時間戳型Timestamp圖象型Image其他cursor,sql_variant,table,uniqueidentifier2.2.2表的創建、修改和刪除

下麵分別說明系統數據類型:整數型整數包括bigint、int、smallint和tinyint,從識別字的含義就可以看出,它們的表示數範圍逐漸縮小。

bigint:大整數,數範圍為-263(-9223372036854775808)~263-1(9223372036854775807),其精度為19,小數位數為0,長度為8位元組。

int:整數,數範圍為-231(-2,147,483,648)~231-1(2,147,483,647),其精度為10,小數位數為0,長度為4位元組。

smallint:短整數,數範圍為-215(-32768)~215-1(32767),其精度為5,小數位數為0,長度為2位元組。

tinyint:微短整數,數範圍為0~255,長度為1位元組,其精度為3,小數位數為0,長度為1位元組。2.2.2表的創建、修改和刪除(2)精確整數型decimal和numeric可存儲從-1038+1到1038–1的固定精度和小數位的數字數據,它們的存儲長度隨精度變化而變化,最少為5位元組,最多為17位元組。精度為1~9時,存儲位元組長度為5;精度為10~19時,存儲位元組長度為9;精度為20~28時,存儲位元組長度為13;精度為29~38時,存儲位元組長度為17。(3)浮點型real:使用4位元組存儲數據,表數範圍為-3.40E+38到3.40E+38,數據精度為7位有效數字。

float:定義中的n取值範圍是1~53,用於指示其精度和存儲大小。

2.2.2表的創建、修改和刪除(4)貨幣型

money:數據的數範圍為-263(-922337203685477.5808)~263-1(922337203685477.5807),其精度為19,小數位數為4,長度為8位元組。

smallmoney:數範圍為–231(-2,147,48.3648)~231-1(2,147,48.3647),其精度為10,小數位數為4,長度為4位元組。(5)位型SQLServer中的位(bit)型數據相當於其他語言中的邏輯型數據,它只存儲0和1,長度為一個位元組。(6)字元型字元型數據用於存儲字串,字串中可包括字母、數字和其他特殊符號(如#、@、&等等)。SQLServer字元型包括兩類:固定長度(char)或可變長度

(varchar)字元數據類型。2.2.2表的創建、修改和刪除(7)Unicode字元型Unicode是“統一字元編碼標準”,用於支持國際上非英語語種的字元數據的存儲和處理。

nchar[(n)]:nchar[(n)]為包含n個字元的固定長度Unicode字元型數據,n

的值在1與4,000之間,缺省為1。長度為2n位元組。若輸入的字串長度不足n,將以空白字元補足。

nvarchar[(n)]:nvarchar[(n)]為最多包含n個字元的可變長度Unicode字元型數據,n

的值在1與4,000之間,缺省為1。(8)文本型文本型包括text和ntext兩類,分別對應ASCII字元和Unicode字元。text類型可以表示最大長度為231-1(2,147,483,647)個字元,其數據的存儲長度為實際字元數個位元組。ntext可表示最大長度為230-1(1,073,741,823)個Unicode字元,其數據的存儲長度是實際字元個數的兩倍(以位元組為單位)。2.2.2表的創建、修改和刪除(9)二進位型

binary[(n)]:固定長度的n個位元組二進位數據。n取值範圍為1到8,000,缺省為1。

varbinary

[(n)]:n個位元組變長二進位數據。n取值範圍為1到8,000,缺省為1。varbinary(n)數據的存儲長度為實際輸入數據長度+4個位元組。(10)日期時間類型datetime類型數據長度為8位元組,日期和時間分別使用4個位元組存儲。(11)時間戳型識別字是timestamp。若創建表時定義一個列的數據類型為時間戳類型,那麼每當對該表加入新行或修改已有行時,都由系統自動將一個計數器值加到該列,即將原來的時間戳值加上一個增量。2.2.2表的創建、修改和刪除創建表空值(NULL)概念空值通常表示未知、不可用或將在以後添加的數據。列的identity(標識)屬性對任何表都可創建包含系統所生成序號值的一個標識列,該序號值唯一標識表中的一行,可以作為鍵值。【例2.8】以XSCJ資料庫中創建學生情況表為例說明通過SQLServer的企業管理器創建表的操作過程。列名數據類型長度是否允許為空值默認值說明學號定長字元型(char)6×無主鍵姓名定長字元型(char)8×無

專業名定長字元型(char)10√無

性別位型(bit)1×1男1,女0出生時間日期時間類型(smalldatetime)4×無

總學分整數型(tinyint)1√無

備註文本型(text)16(系統默認值)√無

2.2.2表的創建、修改和刪除以下是通過“企業管理器”創建表XS的操作步驟:第1步啟動SQLServer企業管理器,用滑鼠右鍵單擊選擇資料庫(這裏是資料庫XSCJ),將出現如圖2.28所示的快捷菜單,選擇“新建(N)”

“表(T)…”。2.2.2表的創建、修改和刪除第2步在所彈出的編輯窗口中分別輸入或選擇各列的名稱、數據類型、是否允許為空值等屬性,在“學號”列上單擊滑鼠右鍵,選擇“設置主鍵”菜單項,將學號列設置為主鍵,將“性別”列的缺省值設置為1。如圖2.29所示。2.2.2表的創建、修改和刪除第3步在表的各列的屬性均編輯完成後,單擊“保存”圖形按鈕,出現如圖2.30所示的“選擇表名”對話框。第4步在“選擇表名”對話框中輸入表名XS,單擊“確定”,XS表就創建好了,如圖2.31所示。2.2.2表的創建、修改和刪除創建課程表,名稱為KC,表結構如表2.5所示。KC表創建後的介面,如圖2.32所示。列

名數據類型長度是否允許為空值默認值說明課程號定長字元型(char)3×無主鍵課程名定長字元型(char)16×無

開課學期整數型(tinyint)1×1只能為1—8學時整數型(tinyint)1×無

學分整數型(tinyint)1√無

2.2.2表的創建、修改和刪除創建成績表,名稱為XS_KC,表結構如表2.6所示。KC表創建後的介面,如圖2.33所示。2.2.2表的創建、修改和刪除創建成績表,名稱為XS_KC,表結構如表2.6所示。KC表創建後的介面,如圖2.33所示。列名數據類型長度是否允許為空值默認值說明學號定長字元型(char)6×無主鍵課程號定長字元型(char)3×無主鍵成績整數型(tinyint)1√無

學分整數型(tinyint)1√無

2.2.2表的創建、修改和刪除3.修改表對一個已存在的表可以進行的修改操作包括:更改表名增加列刪除列修改已有列的屬性(列名、數據類型、是否為空值)(1)更改表名SQLServer中允許改變一個表的名字,但當表名改變後,與此相關的某些對象如視圖,以及通過表名與表相關的存儲過程將無效,建議一般不要更改一個已有的表名,特別是在其上定義了視圖或建立了相關的表。【例2.9】將XS表的表名改為student。2.2.2表的創建、修改和刪除更改表名的操作步驟:第1步在SQLServer企業管理器中展開需更名的表,在其上單擊滑鼠右鍵,在彈出的快捷菜單上選擇“重命名”,如圖2.34所示。2.2.2表的創建、修改和刪除第2步在表名位置上輸入新的表名,如圖2.35所示,按下回車鍵。2.2.2表的創建、修改和刪除第3步系統彈出如圖2.36所示的對話框,提示用戶若更改了表名,那麼將引起引用該表的存儲過程、視圖或觸發器無效,要求用戶對更名操作予以確認。點擊“是”按鈕確認該操作。第4步第3步操作完成後,系統彈出如圖2.37所示的對話框,提示用戶表更名操作已經完成。點擊“確定”。2.2.2表的創建、修改和刪除(2)增加列【例2.10】向表XS中添加一個“獎學金等級”列,“獎學金等級”列為微整型,允許為空值。在SQLServer企業管理器中展開需進行操作的表XS,在其上單擊滑鼠右鍵,在彈出的快捷菜單上選擇“設計表”,如圖2.38所示。2.2.2表的創建、修改和刪除

在SQLServerEnterpriseManager的設計表“XS

”窗口中點擊第一個空白行,輸入列名“獎學金等級”,選擇數據類型“tinyint”,如圖2.39所示。2.2.2表的創建、修改和刪除

當需向表中添加的列均輸入完畢後,點擊關閉設計表“XS”窗口按鈕,此時將彈出如圖2.40所示的對話框,單擊“是”,保存修改後的表。(3)刪除列在SQLServer企業管理器中展開需進行操作的表XS,在其上單擊滑鼠右鍵,在彈出的快捷菜單上選擇“設計表”。2.2.2表的創建、修改和刪除(4)修改已有列的屬性具有以下特性的列不能被修改:具有text、ntext、image或timestamp數據類型的列計算列全局識別字列複製列用於索引的列(但若用於索引的列為varchar、nvarchar或varbinary數據類型時,可以增加列的長度)用於由CREATESTATISTICS生成統計的列。若需修改這樣的列,必須先用DROPSTATISTICS語句刪除統計用於主鍵或外鍵約束的列用於CHECK或UNIQUE約束的列關聯有默認值的列這裏所羅列的特性。當改變列的數據類型時,要求:原數據類型必須能夠轉換為新數據類型;新類型不能為timestamp類型;如果被修改的是IDENTITY列,則新數據類型必須是有效的IDENTITY數據類型。2.2.2表的創建、修改和刪除【例2.11】在創建的XS表中,將“姓名”列的列名改為“name”,數據長度由8改為10,允許為空值;將“出生時間”列的列名改為“birthday”,數據類型由“smalldatetime”改為“datetime”。第1步在SQLServer企業管理器中展開需進行操作的表XS,在其上單擊滑鼠右鍵,在彈出的快捷菜單上選擇“設計表”。第2步在SQLServer企業管理器的設計表“XS

”窗口中點擊需修改的列(本例中是“姓名”和“出生時間”),修改相應的屬性,如圖2.42所示。2.2.2表的創建、修改和刪除第3步當需修改的列均修改完畢後,點擊關閉設計表“XS”窗口按鈕,此時將彈出對話框,單擊“是”保存修改後的表。4.表的刪除刪除一個表時,表的定義、表中的所有數據以及表的索引、觸發器、約束等均被刪除。設需將XSCJ資料庫中的表test刪除,操作過程為:第1步在“企業管理器”中展開資料庫XSCJ,再展開表,在表test上點擊滑鼠右鍵,在彈出的快捷菜單上選擇“刪除”,如圖2.43所示。2.2.2表的創建、修改和刪除第2步上一步操作結束後,系統彈出如圖2.44所示的“除去對象”對話框,點擊“全部除去”按鈕,即可刪除選擇的表。2.3命令方式創建資料庫和表

語法格式:CREATEDATABASEdatabase_name[ON /*指定資料庫檔和文件組屬性*/

[<filespec>[,...n]]

[,<filegroup>[,...n]]][LOGON{<filespec>[,...n]}] /*指定日誌檔屬性*/[COLLATEcollation_name][FORLOAD|FORATTACH]

<filespec>::=[PRIMARY]([NAME=logical_file_name,]

FILENAME='os_file_name'

[,SIZE=size]

[,MAXSIZE={max_size|UNLIMITED}]

[,FILEGROWTH=growth_increment])[,...n]

<filegroup>::=FILEGROUPfilegroup_name<filespec>[,...n]2.3.1使用CREATEDATABASE創建資料庫

【例2.12】創建一個名為XSCJ1的資料庫,其初始大小為5MB,最大大小50MB,允許資料庫自動增長,增長方式是按10%比例增長;日誌檔初始為2MB,最大可增長到5MB,按1MB增長。假設SQLServer服務已啟動,並以Administrator身份登錄電腦。2.3.1使用CREATEDATABASE創建資料庫在T-SQL語句輸入窗口中輸入如下語句:CREATEDATABASEXSCJ1 ON ( NAME='XSCJ1_Data', FILENAME='e:\sql\data\MSSQL\Data\XSCJ1.mdf', SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10% ) LOGON ( NAME='XSCJ1_Log', FILENAME='e:\sql\data\MSSQL\Data\XSCJ1_Log.ldf', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB )GO2.3.1使用CREATEDATABASE創建資料庫輸入完畢後,單擊“執行查詢”按鈕。如圖2.47所示。2.3.1使用CREATEDATABASE創建資料庫【例2.13】創建TEST1的資料庫。CREATEDATABASETEST1ON( NAME=‘TEST1_data’, FILENAME=‘e:\sql\data\MSSQL\data\t1.mdf’)GO【例2.14】創建一個名為TEST2的資料庫,它有三個數據檔,其中主數據檔為100MB,最大大小為200MB,按20MB增長;2個輔數據檔為20MB,最大大小不限,按10%增長;有2個日誌檔,大小均為50MB,最大大小均為100MB,按10MB增長。CREATEDATABASETEST2 ON PRIMARY ( NAME=‘TEST2_data2’, FILENAME=‘e:\sql\data\t2\test2_data2.ndf’, SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ),( NAME=‘TEST2_data3’, FILENAME=‘e:\sql\data\t2\test2_data3.ndf’, SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% )LOGON( NAME=‘TEST2_log1’, FILENAME=‘e:\sql\data\t2\test2_log1.ldf’, SIZE=50MB, MAXSIZE=100MB, FILEGROWTH=10MB),( NAME=‘TEST2_log2’, FILENAME=‘e:\sql\data\t2\test2_log2.ldf’, SIZE=50MB, MAXSIZE=100MB, FILEGROWTH=10MB )GO2.3.1使用CREATEDATABASE創建資料庫2.3.2使用ALTERDATABASE修改資料庫使用ALTERDATABASE命令對數據庫可進行以下修改:增加或刪除數據檔改變數據檔的大小和增長方式改變日誌檔的大小和增長方式增加或刪除日誌檔增加或刪除檔組1.ALTERDATABASE語句2.3.2使用ALTERDATABASE修改資料庫語法格式:ALTERDATABASEdatabase_name{ ADDFILE<filespec>[,…n][TOFILEGROUPfilegroup_name] /*在檔組中增加數據檔*/ |ADDLOGFILE<filespec>[,…n] /*增加日誌檔*/ |REMOVEFILElogical_file_name /*刪除數據檔*/ |ADDFILEGROUPfilegroup_name /*增加檔組*/ |REMOVEFILEGROUPfilegroup_name /*刪除檔組*/ |MODIFYFILE<filespec> /*更改檔屬性*/ |MODIFYNAME=new_dbname /*資料庫更名*/ |MODIFYFILEGROUPfilegroup_name{filegroup_property|NAME=new_filegroup_name} |SET<optionspec>[,...n][WITH<termination>]/*設置資料庫屬性*/ |COLLATE<collation_name>/*指定資料庫排序規則*/}2.3.2使用ALTERDATABASE修改資料庫【例2.16】設已經創建了資料庫XSCJ,它只有一個主數據檔,其邏輯檔案名為XSCJ_Data,物理檔案名為e:\sql\data\MSSQL\data\XSCJ_Data.mdf,大小為5MB,最大大小為50MB,增長方式為按10%增長;ALTERDATABASEXSCJ MODIFYFILE ( NAME=XSCJ_Data,MAXSIZE=UNLIMITED) GO/*這是第1次,將主數據檔的最大大小改為不限制。*/ ALTERDATABASEXSCJ MODIFYFILE ( NAME=XSCJ_Data, FILEGROWTH=5MB) GO/*這是第2次,將主數據檔的增長方式改為按5MB增長。*/2.3.2使用ALTERDATABASE修改資料庫【例2.17】先為數據庫XSCJ增加數據檔XSCJBAK。然後刪除數據檔XSCJBAK。ALTERDATABASEXSCJ ADDFILE ( NAME=XSCJBAK FILENAME=‘e:\sql\data\MSSQL\data\XSCJBAK_dat.ndf’, SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% )GO通過企業管理器觀察資料庫XSCJ是否增加數據檔XSCJBAK。ALTERDATABASEXSCJREMOVEFILEXSCJBAKGO2.3.2使用ALTERDATABASE修改資料庫【例2.18】為數據庫XSCJ添加檔組FGROUP,並為此檔組添加兩個大小均為10MB的數據檔。ALTERDATABASEXSCJADDFILEGROUPFGROUPGOALTERDATABASEXSCJ ADDFILE ( NAME=XSCJ_DATA2, FILENAME='e:\sql\data\MSSQL\data\XSCJ_Data2.ndf', SIZE=10MB, MAXSIZE=30MB, FILEGROWTH=5MB ), ( NAME=XSCJ_DATA3, FILENAME='e:\sql\data\MSSQL\data\XSCJ_Data3.ndf', SIZE=10MB, MAXSIZE=30MB, FILEGROWTH=5MB ) TOFILEGROUPFGROUPGO2.3.2使用ALTERDATABASE修改資料庫【例2.19】從資料庫中刪除檔組,將示例4添加到XSCJ資料庫中的數據組FGROUP刪除。注意被刪除的檔組中的數據檔必須先刪除,且不能刪除主文件組。ALTERDATABASETEST REMOVEFILETEST_DATA2GOALTERDATABASETESTREMOVEFILETEST_DATA3GOALTERDATABASETEST REMOVEFILEGROUPTGROUPGO2.3.2使用ALTERDATABASE修改資料庫【例2.20】為數據庫XSCJ添加一個日誌檔。ALTERDATABASEXSCJ ADDLOGFILE ( NAME=XSCJ_LOG2, FILENAME='e:\sql\data\MSSQL\data\XSCJ_Log2.ldf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB )GO【例2.21】從資料庫XSCJ中刪除一個日誌檔,將日誌檔XSCJ_LOG2刪除。注意不能刪除主日誌檔。ALTERDATABASETEST REMOVEFILEXSCJ_LOG2GOALTERDATABASEXSCJ MODIFYNAME=JUST_TESTGO語法格式:CREATETABLE[database_name.[owner].|owner.]table_name({<column_definition> /*列的定義*|column_nameAScomputed_column_expression/*定義計算列*/|<table_constraint>} /*指定表的約束*/)[ON{filegroup|DEFAULT}]/*指定存儲表的檔組*/[TEXTIMAGE_ON{filegroup|DEFAULT}]/*指定存儲text、ntext和image類型數據的檔組*/2.3.3使用DROPDATABASE刪除資料庫語法格式:DROPDATABASEdatabase_name[,…n]其中database_name是要刪除的資料庫名。要刪除資料庫TEST,使用命令:DROPDATABASETESTGO2.3.4使用CREATETABLE創建表2.3.4使用CREATETABLE創建表【例2.22】設已經創建了資料庫XSCJ,現在該資料庫中需創建學生情況表XS,該表的結構見表2.2。創建表XS的T-SQL語句如下:USEXSCJCREATETABLEXS( 學號char(6)NOTNULL,

姓名char(8)NOTNULL,

專業名char(10)NULL,

性別bitNOTNULL,

出生時間smalldatetimeNOTNULL,

總學分tinyintNULL,

備註textNULL)GO2.3.5使用ALTERTABLE修改表

語法格式:ALTERTABLEtable{[ALTERCOLUMNcolumn_name /*修改已有列的屬性*/

{new_data_type[(precision[,scale])]

[COLLATE<collation_name>]

[NULL|NOTNULL]

|{ADD|DROP}ROWGUIDCOL}

]

|ADD /*增加新列*/

{[<column_definition>]

|column_nameAScomputed_column_expression

}[,...n]

|[WITHCHECK|WITHNOCHECK]ADD

{<table_constraint>}[,...n]

|DROP /*刪除列*/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论