SQL Server 實(shí)用教程課件_第1頁(yè)
SQL Server 實(shí)用教程課件_第2頁(yè)
SQL Server 實(shí)用教程課件_第3頁(yè)
SQL Server 實(shí)用教程課件_第4頁(yè)
SQL Server 實(shí)用教程課件_第5頁(yè)
已閱讀5頁(yè),還剩663頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

資料庫(kù)基本概念1.1.1數(shù)據(jù)模型1.1.1數(shù)據(jù)模型

(1)關(guān)係模型以二維表格(關(guān)係表)的形式組織資料庫(kù)中的數(shù)據(jù)。學(xué)號(hào)姓名專(zhuān)業(yè)名性別出生時(shí)間總學(xué)分備註001101王林電腦男1980-02-1050

001102程明電腦男1981-02-0150

001103王燕電腦女1979-10-0650

001104韋嚴(yán)平電腦男1980-08-2650

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

001107李明電腦男1980-05-0154提前修完《數(shù)據(jù)結(jié)構(gòu)》,並獲學(xué)分001108林一帆電腦男1979-08-0552已提前修完一門(mén)課001109張強(qiáng)民電腦男1978-08-1150

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

001113嚴(yán)紅電腦女1979-08-1148有一門(mén)功課不及格,待補(bǔ)考1.1.1數(shù)據(jù)模型學(xué)生資訊表001201王敏通信工程男1978-06-1042

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

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

001206李計(jì)通信工程男1979-09-2042

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

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

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

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

001241羅林琳通信工程女1980-01-3050轉(zhuǎn)專(zhuān)業(yè)學(xué)習(xí)1.1.1數(shù)據(jù)模型課程資訊表

課程號(hào)課程名類(lèi)別開(kāi)課學(xué)期學(xué)時(shí)學(xué)分0101電腦導(dǎo)論216430102C++程式設(shè)計(jì)1210040103數(shù)據(jù)結(jié)構(gòu)1312050104電腦組成原理139640105操作系統(tǒng)1412050106資料庫(kù)原理1411250107電腦網(wǎng)絡(luò)159640108電腦新技術(shù)313220201國(guó)際貿(mào)易概論227230202經(jīng)營(yíng)管理138040203系統(tǒng)工程149651.1.1數(shù)據(jù)模型成績(jī)資訊表

學(xué)號(hào)課程號(hào)成績(jī)學(xué)號(hào)課程號(hào)成績(jī)學(xué)號(hào)課程號(hào)成績(jī)0011011018000110710178001111206760011011027800110710280001113101630011012067600110720668001113102790011031016200110810185001113206600011031027000110810264001201101800011032068100110820687001202101650011041019000110910166001203101870011041028400110910283001204101910011042066500110920670001210101760011021027800111010195001216101810011022067800111010290001218101700011061016500111020689001220101820011061027100111110191001221101760011062068000111110270001241101901.1.1數(shù)據(jù)模型(2)層次模型以樹(shù)型層次結(jié)構(gòu)組織數(shù)據(jù)。

1.1.1數(shù)據(jù)模型(3)網(wǎng)狀模型每一個(gè)數(shù)據(jù)用一個(gè)節(jié)點(diǎn)表示,每個(gè)節(jié)點(diǎn)與其它節(jié)點(diǎn)都有聯(lián)繫,這樣資料庫(kù)中的所有數(shù)據(jù)節(jié)點(diǎn)就構(gòu)成了一個(gè)複雜的網(wǎng)路。1.1.2E-R模型學(xué)生成績(jī)管理系統(tǒng)中的實(shí)體集及每個(gè)實(shí)體集涉及的屬性。1.1.2E-R模型(1)一對(duì)一的聯(lián)繫(1:1)

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

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

1.1.3邏輯結(jié)構(gòu)設(shè)計(jì)1.(1:1)聯(lián)繫的E-R圖到關(guān)係模式的轉(zhuǎn)換

(1)聯(lián)繫單獨(dú)對(duì)應(yīng)一關(guān)係模式,則由聯(lián)繫屬性、參與聯(lián)繫的各實(shí)體集的主碼屬性構(gòu)成關(guān)係模式,其主碼可選參與聯(lián)繫的實(shí)體集的任一方的主碼。

BJ(班級(jí)編號(hào),院系,專(zhuān)業(yè)名,人數(shù)) BZ(學(xué)號(hào),姓名)SY(學(xué)號(hào),班級(jí)編號(hào))(2)聯(lián)繫不單獨(dú)對(duì)應(yīng)一關(guān)係模式,聯(lián)繫的屬性及一方的主碼加入另一方實(shí)體集對(duì)應(yīng)的關(guān)係模式中。BJ(班級(jí)編號(hào),院系,專(zhuān)業(yè)名,人數(shù))BZ(學(xué)號(hào),姓名,班級(jí)編號(hào))或者BJ(班級(jí)編號(hào),院系,專(zhuān)業(yè)名,人數(shù),學(xué)號(hào))BZ(學(xué)號(hào),姓名)1.1.3邏輯結(jié)構(gòu)設(shè)計(jì)2.(1:n)聯(lián)繫的E-R圖到關(guān)係模式的轉(zhuǎn)換(1)聯(lián)繫單獨(dú)對(duì)應(yīng)一關(guān)係模式,則由聯(lián)繫的屬性、參與聯(lián)繫的各實(shí)體集的主碼屬性構(gòu)成關(guān)係模式,n端的主碼作為該關(guān)係模式的主碼。BJ(班級(jí)編號(hào),院系,專(zhuān)業(yè)名,人數(shù))XS(學(xué)號(hào),姓名,專(zhuān)業(yè)名,性別,出生時(shí)間,總學(xué)分,備註)SY(學(xué)號(hào),班級(jí)編號(hào))(2)聯(lián)繫不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)係模式,則將聯(lián)繫的屬性及1端的主碼加入n端實(shí)體集對(duì)應(yīng)的關(guān)係模式中,主碼仍為n端的主碼。BJ(班級(jí)編號(hào),院系,專(zhuān)業(yè)名,人數(shù))XS(學(xué)號(hào),姓名,專(zhuān)業(yè)名,性別,出生時(shí)間,總學(xué)分,備註,班級(jí)編號(hào))1.1.3邏輯結(jié)構(gòu)設(shè)計(jì)3.(m:n)聯(lián)繫的E-R圖到關(guān)係模式的轉(zhuǎn)換

對(duì)於(m:n)的聯(lián)繫,單獨(dú)對(duì)應(yīng)一關(guān)係模式,該關(guān)係模式包括聯(lián)繫的屬性、參與聯(lián)繫的各實(shí)體集的主碼屬性,該關(guān)係模式的主碼由各實(shí)體集的主碼屬性共同組成。例如:圖描述的“學(xué)生(XS)”與“課程(KC)”實(shí)體集之間的聯(lián)繫可設(shè)計(jì)如下關(guān)係模式:

XS(學(xué)號(hào),姓名,專(zhuān)業(yè)名,性別,出生時(shí)間,總學(xué)分,備註)KC(課程號(hào),課程名稱(chēng),類(lèi)別,開(kāi)課學(xué)期,學(xué)時(shí),學(xué)分)

XS_KC(學(xué)號(hào),課程號(hào),成績(jī))

關(guān)係模式XS_KC的主碼是由“學(xué)號(hào)”和“課程號(hào)”兩個(gè)屬性組合起來(lái)構(gòu)成的一個(gè)主碼,一個(gè)關(guān)係模式只能有一個(gè)主碼。1.2.1SQLServer2000簡(jiǎn)介SQLServer2000是一個(gè)基於客戶(hù)機(jī)/伺服器(C/S)模式的關(guān)係資料庫(kù)管理系統(tǒng)。1.2.2SQLServer2000軟硬體環(huán)境

安裝SQLServer2000除了要有合適的Windows操作系統(tǒng)外,還應(yīng)確保電腦能滿(mǎn)足其硬體要求。硬體名稱(chēng)最低要求電腦Intel或其相容機(jī),Pentium166MHz,或更高

記憶體(RAM)企業(yè)版:64MB標(biāo)準(zhǔn)版:32MB

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

安裝SQLServer2000的Windows操作系統(tǒng)對(duì)硬體最低要求見(jiàn)Windows操作系統(tǒng)的有關(guān)說(shuō)明。1.2.3SQLServer2000的安裝

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

僅客戶(hù)端:若已有數(shù)據(jù)庫(kù)伺服器,只需安裝客戶(hù)端工具時(shí)選擇此項(xiàng)。

伺服器和客戶(hù)端:用於安裝資料庫(kù)伺服器和客戶(hù)機(jī)工具。

僅連接:用於應(yīng)用程式開(kāi)發(fā)時(shí)使用,只是安裝連接工具。1.2.3SQLServer2000的安裝

第6步選擇安裝伺服器和客戶(hù)端,並輸入伺服器實(shí)例名,則進(jìn)入安裝類(lèi)型選擇窗口。

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

1.3.1SQLServer2000伺服器組件

SQLServer2000伺服器組件是SQLServer2000系統(tǒng)的主要服務(wù)單元。主要包括:

SQLServer資料庫(kù)引擎(MSSQLServer服務(wù))

SQLServer代理程式(SQLServerAgent服務(wù))

Microsoft搜索服務(wù)分佈式事務(wù)處理協(xié)調(diào)器(MSDTC服務(wù))。SQLServer2000伺服器組件可由SQLServer服務(wù)管理器啟動(dòng)、停止和暫停。

1.SQLServer資料庫(kù)引擎

(1)默認(rèn)實(shí)例:SQLServer2000默認(rèn)實(shí)例僅由運(yùn)行該實(shí)例的電腦的名稱(chēng)唯一標(biāo)識(shí),它沒(méi)有單獨(dú)的實(shí)例名,默認(rèn)實(shí)例的服務(wù)名稱(chēng)為MSSQLServer。(2)命名實(shí)例:除默認(rèn)實(shí)例外,所有資料庫(kù)引擎實(shí)例都由安裝該實(shí)例的過(guò)程中指定的實(shí)例名標(biāo)識(shí)。1.3.1SQLServer2000伺服器組件2.SQLServer代理程式實(shí)現(xiàn)運(yùn)行調(diào)度的SQLServer管理任務(wù)的代理程式。在電腦上運(yùn)行的每個(gè)SQLServer實(shí)例都有一個(gè)SQLServer代理服務(wù)。3.Microsoft搜索服務(wù)僅用於WindowsNT、Windows2000和Windows2003,實(shí)現(xiàn)全文本檢索引擎。不論電腦上有多少個(gè)SQLServer實(shí)例,都只有一個(gè)搜索服務(wù)。4.分佈式事務(wù)處理協(xié)調(diào)器僅用於WindowsNT、Windows2000和Windows2003,管理分佈式事務(wù)。不論電腦上有多少個(gè)SQLServer實(shí)例,都只有一個(gè)MSDTC服務(wù)。1.3.2SQLServer2000服務(wù)啟動(dòng)和停止

1.啟動(dòng)和停止SQLServer伺服器實(shí)例啟動(dòng)和停止SQLServer伺服器實(shí)例有下列方法:(1)在操作系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)每個(gè)服務(wù)。開(kāi)始

所有程式

管理工具

服務(wù),系統(tǒng)打開(kāi)Windows2003服務(wù)窗口如圖。選擇名稱(chēng)為“MSSQLSERVER”的服務(wù),單擊“操作”菜單

選“啟動(dòng)”菜單項(xiàng)。1.3.2SQLServer2000服務(wù)啟動(dòng)和停止(2)用SQLServer服務(wù)管理器啟動(dòng)或停止服務(wù)。開(kāi)始

所有程式

MicrosoftSQLServer

服務(wù)管理器,則進(jìn)入服務(wù)管理器介面,如圖

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

所有程式

MicrosoftSQLServer

企業(yè)管理器,進(jìn)入企業(yè)管理器介面,右邊為系統(tǒng)安裝時(shí)建立的默認(rèn)SQLServer組的圖示。第2步雙擊SQLServer組圖示,右邊顯示的是系統(tǒng)安裝時(shí)建立的默認(rèn)伺服器實(shí)例的圖示,圖中的伺服器實(shí)例處?kù)锻V範(fàn)顟B(tài)。1.3.2SQLServer2000服務(wù)啟動(dòng)和停止啟動(dòng)企業(yè)管理器後的介面未啟動(dòng)伺服器服務(wù)時(shí)的企業(yè)管理器第3步雙擊該圖示,系統(tǒng)將啟動(dòng)SQLServer伺服器的服務(wù),並建立企業(yè)管理器與該實(shí)例的連接,如圖所示。1.3.3設(shè)置Windows服務(wù)帳戶(hù)

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

在WindowsNT、2000、2003環(huán)境下安裝SQLServer2000,首先要?jiǎng)?chuàng)建Windows服務(wù)帳戶(hù)。SQLServer2000中的SQLServer、SQLServerAgent和MS-DTC都是作為服務(wù)啟動(dòng)和運(yùn)行的。1.4.1SQL企業(yè)管理器

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

“資料庫(kù)伺服器”

“資料庫(kù)”

“資料庫(kù)對(duì)象(表、視圖等)”這樣一個(gè)層次結(jié)構(gòu)組織對(duì)象並進(jìn)行管理的。1.4.1SQL企業(yè)管理器企業(yè)管理器的主要功能如下:註冊(cè)伺服器配置本地伺服器配置遠(yuǎn)程伺服器配置多重伺服器設(shè)置登錄安全性對(duì)數(shù)據(jù)庫(kù)、資料庫(kù)對(duì)象進(jìn)行管理和操作創(chuàng)建警告建立操作員為獨(dú)立的環(huán)境創(chuàng)建和安排作業(yè)為多重伺服器環(huán)境創(chuàng)建和安排作業(yè)創(chuàng)建和管理複製方案為企業(yè)管理器設(shè)置輪詢(xún)間隔1.4.2SQL查詢(xún)分析器1.從SQLServer企業(yè)管理器調(diào)用SQL查詢(xún)分析器選擇菜單:“工具”

“SQL查詢(xún)分析器”。

1.4.2SQL查詢(xún)分析器2.由“開(kāi)始”任務(wù)欄進(jìn)入查詢(xún)分析器從“開(kāi)始”任務(wù)欄,選擇“程式”

“MicrosoftSQLServer”“查詢(xún)分析器”。若要連接網(wǎng)上其他的SQLServer伺服器,選擇菜單項(xiàng):檔

連接,出現(xiàn)如圖所示的對(duì)話框。1.5註冊(cè)伺服器註冊(cè)伺服器後,將該伺服器加入指定的伺服器組。利用企業(yè)管理器註冊(cè)伺服器的步驟:第1步啟動(dòng)企業(yè)管理器

選擇SQLServer伺服器組圖示

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

SQLServer伺服器註冊(cè)嚮導(dǎo)的身份驗(yàn)證介面

SQLServer伺服器註冊(cè)嚮導(dǎo)選擇連接選項(xiàng)的介面1.5註冊(cè)伺服器SQLServer伺服器註冊(cè)嚮導(dǎo)選擇伺服器組的介面

利用帳戶(hù)sa成功註冊(cè)到SQLServer伺服器HU後的介面

1.6SQLServer2000應(yīng)用過(guò)程SQLServer2000作為後臺(tái)資料庫(kù),在前臺(tái)應(yīng)用程式開(kāi)發(fā)環(huán)境下設(shè)計(jì)應(yīng)用程式,可按以下步驟進(jìn)行:第1步根據(jù)學(xué)生成績(jī)管理的特點(diǎn),確定資料庫(kù)包含的表及每個(gè)表的結(jié)構(gòu)。第2步啟動(dòng)企業(yè)管理器,並完成以下工作:(1)建立學(xué)生成績(jī)資料庫(kù)(XSCJ);建立XSCJ資料庫(kù)學(xué)生、課程和成績(jī)資訊表;建立資料庫(kù)、表及輸入數(shù)據(jù)的詳細(xì)步驟請(qǐng)參考第2~3章。第3步利用前臺(tái)應(yīng)用程式開(kāi)發(fā)環(huán)境設(shè)計(jì)介面和相應(yīng)的程式。(1)設(shè)計(jì)表單,根據(jù)需要加入有關(guān)控件並設(shè)置相應(yīng)的屬性參數(shù);在表單中加入數(shù)據(jù)控件,並設(shè)置參數(shù),建立應(yīng)用程式與資料庫(kù)間的聯(lián)接;根據(jù)應(yīng)用要求,設(shè)計(jì)應(yīng)用程式。第4步在開(kāi)發(fā)環(huán)境下調(diào)試運(yùn)行程式,使運(yùn)行結(jié)果滿(mǎn)足成績(jī)管理的應(yīng)用要求。第5步對(duì)調(diào)試通過(guò)的程式進(jìn)行編譯聯(lián)接,形成.EXE檔,並在Windows環(huán)境下運(yùn)行該EXE檔,檢查是否符合要求。2.1.1資料庫(kù)1.邏輯資料庫(kù)

SQLServer2000資料庫(kù)是存儲(chǔ)數(shù)據(jù)的容器,是一個(gè)存放數(shù)據(jù)的表和支持這些數(shù)據(jù)的存儲(chǔ)、檢索、安全性和完整性的邏輯成分所組成的集合。

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

在部分限定名中,未指出的部分使用以下默認(rèn)值:伺服器:默認(rèn)為本地伺服器。資料庫(kù):默認(rèn)為當(dāng)前資料庫(kù)。所有者:默認(rèn)為在資料庫(kù)中與當(dāng)前連接會(huì)話的登錄標(biāo)識(shí)相關(guān)聯(lián)的資料庫(kù)用戶(hù)名,或者資料庫(kù)所有者(dbo)。2.1.1資料庫(kù)2.物理資料庫(kù)

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

檔組

有兩類(lèi)檔組:(1)主文件組主文件組主數(shù)據(jù)檔和任何沒(méi)有明確指派給其他檔組的其他檔。(2)用戶(hù)定義檔組T-SQL語(yǔ)句中用於創(chuàng)建和修改資料庫(kù)的語(yǔ)句分別是CREATEDATABASE語(yǔ)句和ALTERDATABASE。

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

號(hào)姓

名專(zhuān)業(yè)名性

別出生時(shí)間總學(xué)分備註001101王林電腦男1980-02-1050

001102程明電腦男1981-02-0150

001103王燕電腦女1979-10-0650

001104韋嚴(yán)平電腦男1980-08-2650

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

001107李明電腦男1980-05-0154提前修完《數(shù)據(jù)結(jié)構(gòu)》,並獲學(xué)分001108林一帆電腦男1979-08-0552已提前修完一門(mén)課001109張強(qiáng)民電腦男1978-08-1150

2.1.2表

表結(jié)構(gòu)每個(gè)資料庫(kù)包含了若干個(gè)表。每個(gè)表具有一定的結(jié)構(gòu),即組成表的各列的名稱(chēng)及數(shù)據(jù)類(lèi)型,也就是日常表格的“欄目資訊”。記錄每個(gè)表包含了若干行數(shù)據(jù),它們是表的“值”,表中的一行稱(chēng)為一個(gè)記錄(Record),因此,表是記錄的有限集合。字段每個(gè)記錄由若干個(gè)數(shù)據(jù)項(xiàng)構(gòu)成,將構(gòu)成記錄的每個(gè)資料項(xiàng)目稱(chēng)為字段(Field)。例如學(xué)生情況表中,表結(jié)構(gòu)為(學(xué)號(hào),姓名,專(zhuān)業(yè)名,性別,出生時(shí)間,總學(xué)分,備註),包含7個(gè)字段,由8個(gè)記錄組成。關(guān)鍵字注意到,在學(xué)生情況表中,若不加以限制,每個(gè)記錄的姓名、專(zhuān)業(yè)、性別、出生時(shí)間、總學(xué)分和備註這6個(gè)字段的值都有可能相同,但是學(xué)號(hào)字段的值對(duì)表中所有記錄來(lái)說(shuō)一定不同,即通過(guò)“學(xué)號(hào)”字段可以將表中的不同記錄區(qū)分開(kāi)來(lái)。2.2.1資料庫(kù)的創(chuàng)建、修改和刪除

1.創(chuàng)建資料庫(kù)(1)通過(guò)企業(yè)管理器創(chuàng)建資料庫(kù)對(duì)於新創(chuàng)建的資料庫(kù),系統(tǒng)對(duì)數(shù)據(jù)檔的默認(rèn)值為:初始大小1MB,最大大小不限制,而實(shí)際上僅受硬碟空間的限制,允許資料庫(kù)自動(dòng)增長(zhǎng),增長(zhǎng)方式為按10%比例增長(zhǎng);對(duì)日誌檔的默認(rèn)值為:初始大小1MB,最大大小不限制,而實(shí)際上也僅受硬碟空間的限制,允許日誌檔自動(dòng)增長(zhǎng),增長(zhǎng)方式為按10%比例增長(zhǎng)?!纠?.1】創(chuàng)建資料庫(kù)XSCJ,初始大小為5MB,最大大小50MB,資料庫(kù)自動(dòng)增長(zhǎng),增長(zhǎng)方式是按10%比例增長(zhǎng);日誌檔初始為2MB,最大可增長(zhǎng)到5MB(默認(rèn)為不限制),按1MB增長(zhǎng)(默認(rèn)是按10%比例增長(zhǎng));所有者是Administrator。以Administrator身份登錄電腦,並啟動(dòng)SQLServer服務(wù)。第1步開(kāi)始

程式

MicrosoftSQLServer

企業(yè)管理器,SQLServer“企業(yè)管理器”啟動(dòng)。2.2.1資料庫(kù)的創(chuàng)建、修改和刪除第2步在“SQLServerEnterpriseManager”窗口中展開(kāi)MicrosoftSQLServers和SQLServer組,選擇SQLServer伺服器。在選擇的SQLServer伺服器上點(diǎn)擊滑鼠右鍵,出現(xiàn)如圖2.1所示的快捷菜單,選擇“新建”

“資料庫(kù)…”。2.2.1資料庫(kù)的創(chuàng)建、修改和刪除第3步第2步操作結(jié)束後,出現(xiàn)如圖2.2所示的“資料庫(kù)屬性”對(duì)話框,該對(duì)話框共有三個(gè)選項(xiàng)卡:常規(guī)、數(shù)據(jù)檔和日誌檔。在“常規(guī)”選項(xiàng)卡“名稱(chēng)”文本框中輸入創(chuàng)建的資料庫(kù)名(本例中資料庫(kù)名為XSCJ)。2.2.1資料庫(kù)的創(chuàng)建、修改和刪除

系統(tǒng)的主數(shù)據(jù)檔默認(rèn)存儲(chǔ)位置和文件如下:

SQLServer2000根目錄\data\資料庫(kù)名_Data.MDF

系統(tǒng)的主日誌檔的默認(rèn)存儲(chǔ)位置和文件如下:

SQLServer2000根目錄\data\資料庫(kù)名_Log.LDF

本例中SQLServer2000安裝目錄為e:\sql,所以創(chuàng)建的XSCJ資料庫(kù)的數(shù)據(jù)檔和日誌檔的默認(rèn)路徑及檔分別為:

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

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

精度:指數(shù)值數(shù)據(jù)中所存儲(chǔ)的十進(jìn)位數(shù)據(jù)的總位數(shù)。小數(shù)位數(shù):指數(shù)值數(shù)據(jù)中小數(shù)點(diǎn)右邊可以有的數(shù)字位數(shù)的最大值。例如數(shù)值數(shù)據(jù)3890.587的精度是7,小數(shù)位數(shù)是3。長(zhǎng)度:指存儲(chǔ)數(shù)據(jù)所使用的位元組數(shù)。數(shù)據(jù)類(lèi)型符

號(hào)

標(biāo)

識(shí)整數(shù)型bigint,int,smallint,tinyint

精確數(shù)值型decimal,numeric浮點(diǎn)型float,real貨幣型money,smallmoney

位型bit字元型char,varchar

Unicode字元型nchar,nvarchar

文本型text,ntext二進(jìn)位型binary,varbinary日期時(shí)間類(lèi)型datetime,smalldatetime時(shí)間戳型Timestamp圖象型Image其他cursor,sql_variant,table,uniqueidentifier2.2.2表的創(chuàng)建、修改和刪除

下麵分別說(shuō)明系統(tǒng)數(shù)據(jù)類(lèi)型:整數(shù)型整數(shù)包括bigint、int、smallint和tinyint,從識(shí)別字的含義就可以看出,它們的表示數(shù)範(fàn)圍逐漸縮小。

bigint:大整數(shù),數(shù)範(fàn)圍為-263(-9223372036854775808)~263-1(9223372036854775807),其精度為19,小數(shù)位數(shù)為0,長(zhǎng)度為8位元組。

int:整數(shù),數(shù)範(fàn)圍為-231(-2,147,483,648)~231-1(2,147,483,647),其精度為10,小數(shù)位數(shù)為0,長(zhǎng)度為4位元組。

smallint:短整數(shù),數(shù)範(fàn)圍為-215(-32768)~215-1(32767),其精度為5,小數(shù)位數(shù)為0,長(zhǎng)度為2位元組。

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

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

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

money:數(shù)據(jù)的數(shù)範(fàn)圍為-263(-922337203685477.5808)~263-1(922337203685477.5807),其精度為19,小數(shù)位數(shù)為4,長(zhǎng)度為8位元組。

smallmoney:數(shù)範(fàn)圍為–231(-2,147,48.3648)~231-1(2,147,48.3647),其精度為10,小數(shù)位數(shù)為4,長(zhǎng)度為4位元組。(5)位型SQLServer中的位(bit)型數(shù)據(jù)相當(dāng)於其他語(yǔ)言中的邏輯型數(shù)據(jù),它只存儲(chǔ)0和1,長(zhǎng)度為一個(gè)位元組。(6)字元型字元型數(shù)據(jù)用於存儲(chǔ)字串,字串中可包括字母、數(shù)字和其他特殊符號(hào)(如#、@、&等等)。SQLServer字元型包括兩類(lèi):固定長(zhǎng)度(char)或可變長(zhǎng)度

(varchar)字元數(shù)據(jù)類(lèi)型。2.2.2表的創(chuàng)建、修改和刪除(7)Unicode字元型Unicode是“統(tǒng)一字元編碼標(biāo)準(zhǔn)”,用於支持國(guó)際上非英語(yǔ)語(yǔ)種的字元數(shù)據(jù)的存儲(chǔ)和處理。

nchar[(n)]:nchar[(n)]為包含n個(gè)字元的固定長(zhǎng)度Unicode字元型數(shù)據(jù),n

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

nvarchar[(n)]:nvarchar[(n)]為最多包含n個(gè)字元的可變長(zhǎng)度Unicode字元型數(shù)據(jù),n

的值在1與4,000之間,缺省為1。(8)文本型文本型包括text和ntext兩類(lèi),分別對(duì)應(yīng)ASCII字元和Unicode字元。text類(lèi)型可以表示最大長(zhǎng)度為231-1(2,147,483,647)個(gè)字元,其數(shù)據(jù)的存儲(chǔ)長(zhǎng)度為實(shí)際字元數(shù)個(gè)位元組。ntext可表示最大長(zhǎng)度為230-1(1,073,741,823)個(gè)Unicode字元,其數(shù)據(jù)的存儲(chǔ)長(zhǎng)度是實(shí)際字元個(gè)數(shù)的兩倍(以位元組為單位)。2.2.2表的創(chuàng)建、修改和刪除(9)二進(jìn)位型

binary[(n)]:固定長(zhǎng)度的n個(gè)位元組二進(jìn)位數(shù)據(jù)。n取值範(fàn)圍為1到8,000,缺省為1。

varbinary

[(n)]:n個(gè)位元組變長(zhǎng)二進(jìn)位數(shù)據(jù)。n取值範(fàn)圍為1到8,000,缺省為1。varbinary(n)數(shù)據(jù)的存儲(chǔ)長(zhǎng)度為實(shí)際輸入數(shù)據(jù)長(zhǎng)度+4個(gè)位元組。(10)日期時(shí)間類(lèi)型datetime類(lèi)型數(shù)據(jù)長(zhǎng)度為8位元組,日期和時(shí)間分別使用4個(gè)位元組存儲(chǔ)。(11)時(shí)間戳型識(shí)別字是timestamp。若創(chuàng)建表時(shí)定義一個(gè)列的數(shù)據(jù)類(lèi)型為時(shí)間戳類(lèi)型,那麼每當(dāng)對(duì)該表加入新行或修改已有行時(shí),都由系統(tǒng)自動(dòng)將一個(gè)計(jì)數(shù)器值加到該列,即將原來(lái)的時(shí)間戳值加上一個(gè)增量。2.2.2表的創(chuàng)建、修改和刪除創(chuàng)建表空值(NULL)概念空值通常表示未知、不可用或?qū)⒃谝葬崽砑拥臄?shù)據(jù)。列的identity(標(biāo)識(shí))屬性對(duì)任何表都可創(chuàng)建包含系統(tǒng)所生成序號(hào)值的一個(gè)標(biāo)識(shí)列,該序號(hào)值唯一標(biāo)識(shí)表中的一行,可以作為鍵值?!纠?.8】以XSCJ資料庫(kù)中創(chuàng)建學(xué)生情況表為例說(shuō)明通過(guò)SQLServer的企業(yè)管理器創(chuàng)建表的操作過(guò)程。列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空值默認(rèn)值說(shuō)明學(xué)號(hào)定長(zhǎng)字元型(char)6×無(wú)主鍵姓名定長(zhǎng)字元型(char)8×無(wú)

專(zhuān)業(yè)名定長(zhǎng)字元型(char)10√無(wú)

性別位型(bit)1×1男1,女0出生時(shí)間日期時(shí)間類(lèi)型(smalldatetime)4×無(wú)

總學(xué)分整數(shù)型(tinyint)1√無(wú)

備註文本型(text)16(系統(tǒng)默認(rèn)值)√無(wú)

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

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

名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空值默認(rèn)值說(shuō)明課程號(hào)定長(zhǎng)字元型(char)3×無(wú)主鍵課程名定長(zhǎng)字元型(char)16×無(wú)

開(kāi)課學(xué)期整數(shù)型(tinyint)1×1只能為1—8學(xué)時(shí)整數(shù)型(tinyint)1×無(wú)

學(xué)分整數(shù)型(tinyint)1√無(wú)

2.2.2表的創(chuàng)建、修改和刪除創(chuàng)建成績(jī)表,名稱(chēng)為XS_KC,表結(jié)構(gòu)如表2.6所示。KC表創(chuàng)建後的介面,如圖2.33所示。2.2.2表的創(chuàng)建、修改和刪除創(chuàng)建成績(jī)表,名稱(chēng)為XS_KC,表結(jié)構(gòu)如表2.6所示。KC表創(chuàng)建後的介面,如圖2.33所示。列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空值默認(rèn)值說(shuō)明學(xué)號(hào)定長(zhǎng)字元型(char)6×無(wú)主鍵課程號(hào)定長(zhǎng)字元型(char)3×無(wú)主鍵成績(jī)整數(shù)型(tinyint)1√無(wú)

學(xué)分整數(shù)型(tinyint)1√無(wú)

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

在SQLServerEnterpriseManager的設(shè)計(jì)表“XS

”窗口中點(diǎn)擊第一個(gè)空白行,輸入列名“獎(jiǎng)學(xué)金等級(jí)”,選擇數(shù)據(jù)類(lèi)型“tinyint”,如圖2.39所示。2.2.2表的創(chuàng)建、修改和刪除

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

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

語(yǔ)法格式:CREATEDATABASEdatabase_name[ON /*指定資料庫(kù)檔和文件組屬性*/

[<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創(chuàng)建資料庫(kù)

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

姓名char(8)NOTNULL,

專(zhuān)業(yè)名char(10)NULL,

性別bitNOTNULL,

出生時(shí)間smalldatetimeNOTNULL,

總學(xué)分tinyintNULL,

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

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

評(píng)論

0/150

提交評(píng)論