SQL Server教程(第6版)(2008版) 課件全套 鄭阿奇 第1-10 章 數(shù)據(jù)庫(kù)基礎(chǔ)-事務(wù)、鎖定和自動(dòng)化管理_第1頁(yè)
SQL Server教程(第6版)(2008版) 課件全套 鄭阿奇 第1-10 章 數(shù)據(jù)庫(kù)基礎(chǔ)-事務(wù)、鎖定和自動(dòng)化管理_第2頁(yè)
SQL Server教程(第6版)(2008版) 課件全套 鄭阿奇 第1-10 章 數(shù)據(jù)庫(kù)基礎(chǔ)-事務(wù)、鎖定和自動(dòng)化管理_第3頁(yè)
SQL Server教程(第6版)(2008版) 課件全套 鄭阿奇 第1-10 章 數(shù)據(jù)庫(kù)基礎(chǔ)-事務(wù)、鎖定和自動(dòng)化管理_第4頁(yè)
SQL Server教程(第6版)(2008版) 課件全套 鄭阿奇 第1-10 章 數(shù)據(jù)庫(kù)基礎(chǔ)-事務(wù)、鎖定和自動(dòng)化管理_第5頁(yè)
已閱讀5頁(yè),還剩624頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章

數(shù)據(jù)庫(kù)基礎(chǔ)——數(shù)據(jù)庫(kù)基本概念01數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)1.?dāng)?shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱DB)是存放數(shù)據(jù)的倉(cāng)庫(kù),而且這些數(shù)據(jù)存在一定的關(guān)聯(lián),并按一定的格式存放在計(jì)算機(jī)內(nèi)。例如,把一個(gè)學(xué)校的學(xué)生、課程、成績(jī)等數(shù)據(jù)有序地組織并存放在計(jì)算機(jī)內(nèi),就可以構(gòu)成一個(gè)數(shù)據(jù)庫(kù)。2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,簡(jiǎn)稱DBMS)按一定的數(shù)據(jù)模型組織數(shù)據(jù)形成數(shù)據(jù)庫(kù),并對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。簡(jiǎn)單地說(shuō),DBMS就是管理數(shù)據(jù)庫(kù)的系統(tǒng)(軟件)。數(shù)據(jù)庫(kù)管理員(DataBaseAdministrator,簡(jiǎn)稱DBA)通過(guò)DBMS對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。數(shù)據(jù)庫(kù)系統(tǒng)3.?dāng)?shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)與操作數(shù)據(jù)庫(kù)的應(yīng)用程序,加上支撐它們的硬件平臺(tái)、軟件平臺(tái)和與數(shù)據(jù)庫(kù)有關(guān)的人員一起構(gòu)成了一個(gè)完整的數(shù)據(jù)庫(kù)系統(tǒng)。如圖所示描述了數(shù)據(jù)庫(kù)系統(tǒng)的構(gòu)成。02數(shù)據(jù)模型層次模型網(wǎng)狀模型關(guān)系模型數(shù)據(jù)模型1.層次模型層次模型將數(shù)據(jù)組織成一對(duì)多關(guān)系的結(jié)構(gòu),采用關(guān)鍵字來(lái)訪問(wèn)其中每一層次的每一部分。它存取方便且速度快;結(jié)構(gòu)清晰,容易理解;數(shù)據(jù)修改和數(shù)據(jù)庫(kù)擴(kuò)展容易實(shí)現(xiàn);檢索關(guān)鍵屬性十分方便。但結(jié)構(gòu)不夠靈活;同一屬性的數(shù)據(jù)要存儲(chǔ)多次,數(shù)據(jù)冗余大;不適合拓?fù)淇臻g數(shù)據(jù)的組織。如圖所示為按層次模型組織的數(shù)據(jù)示例。數(shù)據(jù)模型2.網(wǎng)狀模型網(wǎng)狀模型是具有多對(duì)多關(guān)系的數(shù)據(jù)組織方式。它能明確而方便地表示數(shù)據(jù)間的復(fù)雜關(guān)系;數(shù)據(jù)冗余小。但網(wǎng)狀結(jié)構(gòu)的復(fù)雜,增加了用戶查詢和定位的困難;需要存儲(chǔ)數(shù)據(jù)間聯(lián)系的指針,使得數(shù)據(jù)量增大;數(shù)據(jù)的修改不方便。如圖所示為按網(wǎng)狀模型組織的數(shù)據(jù)示例。數(shù)據(jù)模型3.關(guān)系模型關(guān)系模型以記錄組或二維數(shù)據(jù)表的形式組織數(shù)據(jù)。例如,在學(xué)生成績(jī)管理系統(tǒng)所涉及的“學(xué)生”“課程”和“成績(jī)”3個(gè)表中,“學(xué)生”表涉及的主要信息有學(xué)號(hào)、姓名、性別、出生日期、專業(yè)、總學(xué)分和備注;“課程”表涉及的主要信息有課程號(hào)、課程名、開(kāi)課學(xué)期、學(xué)時(shí)和學(xué)分;“成績(jī)”表涉及的主要信息有學(xué)號(hào)、課程號(hào)和成績(jī)。如3個(gè)表所示。學(xué)號(hào)姓名性別出生日期專業(yè)總學(xué)分備注221101王林男2004-02-10計(jì)算機(jī)15

221103王燕女2003-10-06計(jì)算機(jī)15參加校女子足球隊(duì)211102林一帆男2003-08-05計(jì)算機(jī)46

221202王林男2004-01-29通信工程13

221204馬琳琳女2003-02-10通信工程15

“學(xué)生”表數(shù)據(jù)模型課程號(hào)課程名開(kāi)課學(xué)期學(xué)時(shí)學(xué)分101計(jì)算機(jī)導(dǎo)論1805102程序設(shè)計(jì)與語(yǔ)言2684206離散數(shù)學(xué)4684學(xué)號(hào)課程號(hào)成績(jī)學(xué)號(hào)課程號(hào)成績(jī)22110110180211102101852211011027821110210264221101206762111022068722110310162221202101552211031025022120410187“課程”表“成績(jī)”表03關(guān)系數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言關(guān)系數(shù)據(jù)庫(kù)1.關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)通過(guò)上面的分析可以看出,關(guān)系模型更適合組織數(shù)據(jù)。而關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RelationalDatabaseManagementSystem,簡(jiǎn)稱RDBMS)就是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),所以使用廣泛,從當(dāng)前國(guó)際數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,簡(jiǎn)稱DBMS)排名中可以看出來(lái),RDBMS絕對(duì)是DBMS的主流,其中使用最多的分別是Oracle、MySQL和SQLServer。SQLServer是目前流行的企業(yè)級(jí)大型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)之一。2.關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言結(jié)構(gòu)化查詢語(yǔ)言(StructuredQueryLanguage,簡(jiǎn)稱SQL)就是關(guān)系型數(shù)據(jù)庫(kù)的查詢語(yǔ)言,用于定義數(shù)據(jù)庫(kù)及其對(duì)象、操作數(shù)據(jù)庫(kù)對(duì)象和控制操作的安全性等,所有提供數(shù)據(jù)庫(kù)產(chǎn)品的廠商都支持SQL語(yǔ)言,但它們又各有特點(diǎn)。為了在各個(gè)數(shù)據(jù)庫(kù)廠商之間取得更大的一致性,美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(AmericanNationalStandardsInstitute,簡(jiǎn)稱ANSI)于1986年發(fā)布了第一個(gè)SQL標(biāo)準(zhǔn),并于1989年發(fā)布了第二個(gè)版本,該版本已經(jīng)被廣泛采用。ANSI在1992年更新了SQL標(biāo)準(zhǔn)的版本,即SQL92和SQL2,并于1999年再次更新為SQL99和SQL3標(biāo)準(zhǔn)。第1章

數(shù)據(jù)庫(kù)基礎(chǔ)——數(shù)據(jù)庫(kù)設(shè)計(jì)01概念模型一對(duì)一的聯(lián)系(1∶1)一對(duì)多的聯(lián)系(1∶n)多對(duì)多的聯(lián)系(m∶n)概念模型通常,E-R模型把每一類數(shù)據(jù)對(duì)象的個(gè)體稱為“實(shí)體”,把每一類對(duì)象個(gè)體的集合稱為“實(shí)體集”。例如,在學(xué)生成績(jī)管理系統(tǒng)中主要涉及“學(xué)生”和“課程”兩個(gè)實(shí)體集,其他非主要的實(shí)體集可以很多,如班級(jí)、班長(zhǎng)、任課教師、輔導(dǎo)員等。把每個(gè)實(shí)體集涉及的信息項(xiàng)稱為屬性。就“學(xué)生”實(shí)體集而言,它的屬性有學(xué)號(hào)、姓名、性別、出生日期、專業(yè)、總學(xué)分和備注?!罢n程”實(shí)體集屬性有課程號(hào)、課程名、開(kāi)課學(xué)期、學(xué)時(shí)和學(xué)分。實(shí)體集中的實(shí)體彼此是可區(qū)別的。如果實(shí)體集中的屬性或最小屬性組合的值能唯一標(biāo)識(shí)其對(duì)應(yīng)實(shí)體,則將該屬性或?qū)傩越M合稱為碼。碼可能有多個(gè),對(duì)于每一個(gè)實(shí)體集,可指定一個(gè)碼為主碼。實(shí)體集A和實(shí)體集B之間存在各種關(guān)系,通常把這些關(guān)系稱為“聯(lián)系”,將實(shí)體集及實(shí)體集聯(lián)系的圖示稱為實(shí)體-聯(lián)系(Entity-Relationship,簡(jiǎn)稱E-R)模型。概念模型E-R圖就是E-R模型的描述方法,即實(shí)體-聯(lián)系圖。通常,關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)者使用E-R圖來(lái)對(duì)信息世界建模。在E-R圖中,使用矩形表示實(shí)體集,使用橢圓表示屬性,使用菱形表示聯(lián)系,用線段連接實(shí)體集與屬性,當(dāng)一個(gè)屬性或?qū)傩越M合指定為主碼時(shí),在實(shí)體集與屬性的連接線上標(biāo)記一條斜線,如圖。概念模型兩個(gè)實(shí)體集A和B之間的聯(lián)系可能是以下3種情況之一。1.一對(duì)一的聯(lián)系(1∶1)A中的一個(gè)實(shí)體最多與B中的一個(gè)實(shí)體相聯(lián)系,B中的一個(gè)實(shí)體也最多與A中的一個(gè)實(shí)體相聯(lián)系。例如,“班級(jí)”與“班長(zhǎng)”這兩個(gè)實(shí)體集之間的聯(lián)系是一對(duì)一的聯(lián)系,因?yàn)橐粋€(gè)班級(jí)只有一個(gè)班長(zhǎng),反過(guò)來(lái),一個(gè)班長(zhǎng)只屬于一個(gè)班級(jí)?!鞍嗉?jí)”與“班長(zhǎng)”兩個(gè)實(shí)體集的E-R模型如圖。概念模型2.一對(duì)多的聯(lián)系(1∶n)A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體最多與A中的一個(gè)實(shí)體相聯(lián)系。例如,“班級(jí)”與“學(xué)生”這兩個(gè)實(shí)體集之間的聯(lián)系是一對(duì)多的聯(lián)系,因?yàn)橐粋€(gè)班級(jí)可有若干學(xué)生,反過(guò)來(lái),一個(gè)學(xué)生只能屬于一個(gè)班級(jí)?!鞍嗉?jí)”與“學(xué)生”兩個(gè)實(shí)體集的E-R模型如圖。概念模型3.多對(duì)多的聯(lián)系(m∶n)A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體也可與A中的多個(gè)實(shí)體相聯(lián)系。例如,“學(xué)生”與“課程”這兩個(gè)實(shí)體集之間的聯(lián)系是多對(duì)多的聯(lián)系,因?yàn)橐粋€(gè)學(xué)生可選修多門課程,反過(guò)來(lái),一門課程可被多個(gè)學(xué)生選修?!皩W(xué)生”與“課程”兩個(gè)實(shí)體集的E-R模型如圖。02邏輯模型(1∶1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換(1∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換(m∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換邏輯模型1.(1∶1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對(duì)于(1∶1)的聯(lián)系,既可以單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,也可以不單獨(dú)對(duì)應(yīng)。(1)聯(lián)系單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實(shí)體集的主碼屬性構(gòu)成關(guān)系模式,其主碼可選參與聯(lián)系的實(shí)體集的任一方的主碼。例如,考慮圖描述的“班級(jí)(bj)”與“班長(zhǎng)(bz)”實(shí)體集通過(guò)“屬于(sy)”聯(lián)系的E-R模型,可設(shè)計(jì)如下關(guān)系模式(下劃線表示該字段為主碼):bj(班級(jí)編號(hào),院系,專業(yè),人數(shù))bz(學(xué)號(hào),姓名)sy(學(xué)號(hào),班級(jí)編號(hào))邏輯模型(2)聯(lián)系不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,聯(lián)系的屬性及一方的主碼加入另一方實(shí)體集對(duì)應(yīng)的關(guān)系模式中。例如,考慮圖描述的“班級(jí)(bj)”與“班長(zhǎng)(bz)”實(shí)體集通過(guò)“屬于(sy)”聯(lián)系的E-R模型,可設(shè)計(jì)如下關(guān)系模式:bj(班級(jí)編號(hào),院系,專業(yè),人數(shù))bz(學(xué)號(hào),姓名,班級(jí)編號(hào))或者:bj(班級(jí)編號(hào),院系,專業(yè),人數(shù),學(xué)號(hào))bz(學(xué)號(hào),姓名)邏輯模型2.(1∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對(duì)于(1∶n)的聯(lián)系,既可以單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,也可以不單獨(dú)對(duì)應(yīng)。(1)聯(lián)系單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實(shí)體集的主碼屬性構(gòu)成關(guān)系模式,n端的主碼作為該關(guān)系模式的主碼。例如,考慮圖描述的“班級(jí)(bj)”與“學(xué)生(xs)”實(shí)體集E-R模型,可設(shè)計(jì)如下關(guān)系模式:bj(班級(jí)編號(hào),院系,專業(yè),人數(shù))xs(學(xué)號(hào),姓名,性別,出生日期,專業(yè),總學(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端的主碼。例如,圖描述的“班級(jí)(bj)”與“學(xué)生(xs)”實(shí)體集E-R模型可設(shè)計(jì)如下關(guān)系模式:bj(班級(jí)編號(hào),院系,專業(yè),人數(shù))xs(學(xué)號(hào),姓名,性別,出生日期,專業(yè),總學(xué)分,備注,班級(jí)編號(hào))邏輯模型3.(m∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對(duì)于(m∶n)的聯(lián)系,單獨(dú)對(duì)應(yīng)一個(gè)關(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),姓名,性別,出生日期,專業(yè),總學(xué)分,備注)kc(課程號(hào),課程名,開(kāi)課學(xué)期,學(xué)時(shí),學(xué)分)cj(學(xué)號(hào),課程號(hào),成績(jī))關(guān)系模式cj的主碼是由“學(xué)號(hào)”和“課程號(hào)”兩個(gè)屬性組合起來(lái)構(gòu)成的,一個(gè)關(guān)系模式只能有一個(gè)主碼。03物理模型物理模型物理模型是面向計(jì)算機(jī)物理表示的模型,描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),而且與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實(shí)現(xiàn)時(shí)都有其對(duì)應(yīng)的物理數(shù)據(jù)模型。DBMS為了保證其獨(dú)立性與可移植性,大部分物理數(shù)據(jù)模型的實(shí)現(xiàn)工作由系統(tǒng)自動(dòng)完成,而設(shè)計(jì)者只設(shè)計(jì)索引、聚集等特殊結(jié)構(gòu)。第1章

數(shù)據(jù)庫(kù)基礎(chǔ)——SQLServer200801SQLServer2008概述服務(wù)器組件管理工具命令行實(shí)用工具SQLServer2008概述1.服務(wù)器組件SQLServer2008服務(wù)器組件如下:(1)SQLServer數(shù)據(jù)庫(kù)引擎(SQLServerDatabaseEngine,簡(jiǎn)稱SSDE)提供SQLServer2008系統(tǒng)的核心服務(wù),負(fù)責(zé)完成業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)、處理、查詢和安全管理等操作。(2)分析服務(wù)(SQLServerAnalysisServer,簡(jiǎn)稱SSAS)提供多維分析和數(shù)據(jù)挖掘功能,可以支持用戶建立數(shù)據(jù)庫(kù)和進(jìn)行商業(yè)智能分析。(3)報(bào)表服務(wù)(SQLServerReportingServices,簡(jiǎn)稱SSRS)提供支持Web的企業(yè)級(jí)的報(bào)表功能。(4)集成服務(wù)(SQLServerIntegrationSevives,簡(jiǎn)稱SSIS)提供一個(gè)數(shù)據(jù)集成平臺(tái),可以完成有關(guān)數(shù)據(jù)的提取、轉(zhuǎn)換、加載等。(5)商業(yè)智能服務(wù)(BusinessIntelligenceDevelopmentStudio,簡(jiǎn)稱BI)提供分析服務(wù)、報(bào)表服務(wù)和集成服務(wù)的解決方案的集成開(kāi)發(fā)環(huán)境(IntegratedDevelopmentEnvironment,簡(jiǎn)稱IDE)。SQLServer2008概述2.管理工具(1)SQLServer集成管理器(SQLServerManagementStudio,簡(jiǎn)稱SSMS)為用戶和開(kāi)發(fā)人員通過(guò)圖形界面工具,用于配置數(shù)據(jù)庫(kù)系統(tǒng)、建立或刪除數(shù)據(jù)庫(kù)對(duì)象、設(shè)置或取消用戶的訪問(wèn)權(quán)限,維護(hù)服務(wù)器與數(shù)據(jù)的安全、瀏覽錯(cuò)誤日志等。(2)配置管理器(SQLServerConfigurationManager,簡(jiǎn)稱SSCM)包含了SQLServer服務(wù)、網(wǎng)絡(luò)配置和SQLNativeClient配置3個(gè)工具供數(shù)據(jù)庫(kù)管理人員做服務(wù)啟動(dòng)、停止與監(jiān)控、服務(wù)器端支持的網(wǎng)絡(luò)協(xié)議、用戶訪問(wèn)SQLServer的網(wǎng)絡(luò)相關(guān)設(shè)置等工作。(3)SQLServerProfiler是一個(gè)圖形界面工具,用于創(chuàng)建和管理跟蹤并分析和重播跟蹤結(jié)果,方便診斷問(wèn)題。SQLServer2008概述3.命令行實(shí)用工具命令行實(shí)用工具是可執(zhí)行(.exe)程序,它可以在Windows命令行窗口對(duì)

SQLServer2008進(jìn)行操作,主要命令行實(shí)用工具如下:(1)sqlsrvr:命令行下執(zhí)行SQLServer實(shí)例的啟動(dòng)、停止、暫停、繼續(xù)。(2)ssms:命令行下打開(kāi)SSMS工具。(3)osql:輸入和執(zhí)行Transact-SQL(簡(jiǎn)稱T-SQL)語(yǔ)句,該工具通過(guò)ODBC連接數(shù)據(jù)庫(kù)。(4)sqlcmd:輸入和執(zhí)行T-SQL語(yǔ)句,該工具通過(guò)OLEDB進(jìn)連接數(shù)據(jù)庫(kù)。(5)bcp:在SQLServer實(shí)例和用戶指定格式的數(shù)據(jù)文件之間進(jìn)行數(shù)據(jù)復(fù)制。(6)dta(數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn)):可以協(xié)助創(chuàng)建索引、索引視圖和分區(qū)的最佳組合。02SQLServer2008的安裝SQLServer實(shí)例SQLServer2008安裝環(huán)境要求SQLServer2008的安裝追加安裝“SQLServerManagementStudio”SQLServer2008的安裝1.SQLServer實(shí)例數(shù)據(jù)庫(kù)引擎的實(shí)例是作為操作系統(tǒng)服務(wù)運(yùn)行的

sqlservr.exe

可執(zhí)行程序的副本。每個(gè)實(shí)例管理幾個(gè)系統(tǒng)數(shù)據(jù)庫(kù)以及一個(gè)或多個(gè)用戶數(shù)據(jù)庫(kù)。每臺(tái)計(jì)算機(jī)都可以運(yùn)行數(shù)據(jù)庫(kù)引擎的多個(gè)實(shí)例。應(yīng)用程序連接到實(shí)例,在實(shí)例管理的數(shù)據(jù)庫(kù)中執(zhí)行任務(wù)。一個(gè)數(shù)據(jù)庫(kù)引擎實(shí)例處理所有應(yīng)用程序請(qǐng)求的服務(wù)操作,以便使用該實(shí)例管理的任何數(shù)據(jù)庫(kù)中的數(shù)據(jù)。它是應(yīng)用程序所發(fā)出連接請(qǐng)求(登錄名)的目標(biāo)。如果應(yīng)用程序和實(shí)例分別位于單獨(dú)的計(jì)算機(jī)上,則連接通過(guò)網(wǎng)絡(luò)運(yùn)行。如果應(yīng)用程序和實(shí)例位于同一臺(tái)計(jì)算機(jī)上,則SQLServer連接可作為網(wǎng)絡(luò)或內(nèi)存中連接運(yùn)行。完成連接后,應(yīng)用程序通過(guò)連接將T-SQL語(yǔ)句發(fā)送給實(shí)例。實(shí)例將這些T-SQL語(yǔ)句解析為針對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)和對(duì)象的操作,如果已將所需權(quán)限授予了登錄憑據(jù),則實(shí)例會(huì)執(zhí)行這些工作。檢索的任何數(shù)據(jù)都將返回到應(yīng)用程序,同時(shí)還返回錯(cuò)誤之類的消息。SQLServer2008的安裝2.SQLServer2008安裝環(huán)境要求為了正確安裝和運(yùn)行SQLServer2008,計(jì)算機(jī)必須滿足以下配置要求。(1)硬件要求如下:處理器:需要Pentium(兼容)處理器,處理器速度最好在2GHz以上。內(nèi)存:2GB以上。硬盤:1.7GB的安裝空間以及必要的數(shù)據(jù)預(yù)留空間。(2)需要運(yùn)行在Windows(32位)操作系統(tǒng)之上,不同版本對(duì)操作系統(tǒng)的要求不盡相同。(3)需要安裝組件如下:.NETFramework3.5。SQLServerNativeClient。SQLServer安裝程序支持文件。MicrosoftWindowsInstaller4.5或更高版本。Microsoft數(shù)據(jù)訪問(wèn)組件(MDAC)2.8SP1或更高版本。SQLServer2008的安裝3.SQLServer2008的安裝(1)運(yùn)行SQLServer2008安裝程序(setup.exe),安裝程序啟動(dòng)后會(huì)檢測(cè)系統(tǒng)是否已經(jīng)安裝了.NET

Framework3.5,如果沒(méi)有安裝,則彈出要求安裝的對(duì)話框,單擊“確定”按鈕,等待一段時(shí)間后進(jìn)入“.NETFramework3.5許可協(xié)議”窗口,同意許可條款并單擊“安裝”按鈕開(kāi)始安裝,安裝完成后單擊“安裝完成”窗口中的“退出”按鈕即可。(2)安裝完.NETFramework3.5后可能會(huì)彈出需要安裝補(bǔ)丁的對(duì)話框,安裝完該補(bǔ)丁后重啟計(jì)算機(jī)。(3)重啟計(jì)算機(jī)后重新啟動(dòng)安裝程序,進(jìn)入“SQLServer安裝中心”窗口,單擊左邊菜單欄中的“安裝”選項(xiàng)卡,在窗口右邊將列出可以進(jìn)行的安裝方式,單擊“全新SQLServer獨(dú)立安裝或向現(xiàn)有安裝添加功能”選項(xiàng)將安裝全新的SQLServer2008。(4)安裝程序?qū)z查SQLServer安裝時(shí)可能發(fā)生的問(wèn)題,并將檢查信息顯示在“安裝程序支持規(guī)則”窗口中。如果有檢查未通過(guò)的規(guī)則,必須進(jìn)行更正,否則安裝將無(wú)法繼續(xù)。(5)安裝程序支持規(guī)則全部通過(guò)后單擊“確定”按鈕進(jìn)入“產(chǎn)品密鑰”窗口。在“指定可用版本”選項(xiàng)中選擇“EnterpriseEvaluation”,在“輸入產(chǎn)品密鑰”選項(xiàng)中輸入企業(yè)評(píng)估版的25位產(chǎn)品密鑰,完成后單擊“下一步”按鈕。(6)進(jìn)入“許可條款”窗口,閱讀并接受許可條款,單擊“下一步”按鈕。進(jìn)入“安裝程序支持文件”窗口,單擊“安裝”按鈕安裝SQLServer必備組件。安裝完成后重新進(jìn)入“安裝程序支持規(guī)則”窗口。如果通過(guò),則單擊“下一步”按鈕。SQLServer2008的安裝(7)進(jìn)入“功能選擇”窗口,在“功能”區(qū)域中選擇要安裝的功能組件,用戶可以根據(jù)自身需求來(lái)安裝組件,這里在“實(shí)例功能”下勾選“數(shù)據(jù)庫(kù)引擎服務(wù)”,在“共享功能”下勾選客戶端有關(guān)項(xiàng)和SQLServer聯(lián)機(jī)叢書,如圖。SQLServer2008的安裝(8)在“實(shí)例配置”窗口中進(jìn)行實(shí)例配置,如果是第一次安裝,則既可以使用默認(rèn)實(shí)例,也可以自行指定實(shí)例名稱。如果當(dāng)前服務(wù)器上已經(jīng)安裝了一個(gè)默認(rèn)的實(shí)例,則再次安裝時(shí)必須指定一個(gè)實(shí)例名稱。自定義實(shí)例名的方法為,選擇“命名實(shí)例”單選按鈕,在后面的文本框中輸入用戶自定義的實(shí)例名稱。如果選擇“默認(rèn)實(shí)例”,則實(shí)例名稱默認(rèn)為“MSSQLSERVER”。這里選擇“命名實(shí)例”,名稱為“SQL2008”。(9)實(shí)例配置完后單擊“下一步”按鈕進(jìn)入“磁盤空間要求”窗口,在該窗口中顯示安裝SQLServer2008所需要的磁盤容量。單擊“下一步”按鈕進(jìn)入“服務(wù)器配置”窗口,在“服務(wù)賬戶”選項(xiàng)卡中為每個(gè)SQLServer服務(wù)單獨(dú)配置用戶名和密碼及啟動(dòng)類型?!百~戶名”可以在下拉框中進(jìn)行選擇,也可以單擊“對(duì)所有SQLServer服務(wù)使用相同的賬戶”按鈕,這里,選擇本地Windows賬戶為“l(fā)iu”,如下圖。SQLServer2008的安裝SQLServer2008的安裝(10)進(jìn)入“數(shù)據(jù)庫(kù)引擎配置”窗口,在“賬戶設(shè)置”選項(xiàng)卡中選擇“身份驗(yàn)證模式”。“身份驗(yàn)證模式”是一種安全模式,用于驗(yàn)證客戶端與服務(wù)器的連接。它有下列兩個(gè)選項(xiàng):“Windows身份驗(yàn)證模式”:使用Windows操作系統(tǒng)中的信息驗(yàn)證賬戶名和密碼?!盎旌夏J剑⊿QLServer身份驗(yàn)證和Windows身份驗(yàn)證)”:允許用戶使用Windows身份驗(yàn)證或SQLServer身份驗(yàn)證進(jìn)行連接。本書使用該模式身份驗(yàn)證。內(nèi)置的SQLServer系統(tǒng)管理員賬戶:設(shè)置輸入密碼和確認(rèn)密碼為“123456”。SQLServer2008的安裝指定SQLServer管理員:指定Windows賬戶,這里單擊“添加當(dāng)前用戶”按鈕添加當(dāng)前Windows賬戶為“HUAWEI\Adminstrator”,即HUAWEI主機(jī)的超級(jí)用戶。如圖。SQLServer2008的安裝(11)如果前面選擇安裝“數(shù)據(jù)庫(kù)引擎”以外的其他組件,這里會(huì)分別安裝這些組件。(12)單擊“下一步”按鈕進(jìn)入“安裝規(guī)則”窗口,窗口中將顯示安裝規(guī)則的通過(guò)情況,如果全部通過(guò),則可以單擊“下一步”按鈕。(13)進(jìn)入“準(zhǔn)備安裝”窗口,顯示安裝內(nèi)容匯總,如圖。SQLServer2008的安裝單擊“安裝”按鈕開(kāi)始安裝,等待一段時(shí)間后安裝完成,窗口中將顯示已經(jīng)成功安裝的功能組件如圖。SQLServer2008的安裝4.追加安裝“SQLServerManagementStudio”如果安裝SQLServer2008時(shí)沒(méi)有勾選“SQLServerManagementStudio”服務(wù)組件,那么就沒(méi)有圖形化界面操作SQLServer的功能。重新執(zhí)行SQLServer2008安裝程序(setup.exe),選擇安裝組件時(shí)已安裝項(xiàng)只讀顯示,補(bǔ)勾選“SQLServerManagementStudio”安裝項(xiàng)安裝即可。03連接SQLServer2008服務(wù)器不同用戶連接SQLServer服務(wù)器連接SQLServer實(shí)例T-SQL在SSMS查詢分析器窗口執(zhí)行T-SQL連接SQLServer2008服務(wù)器1.不同用戶連接SQLServer服務(wù)器在Windows界面選擇“SQLServerManagementStudio”菜單,系統(tǒng)顯示“連接到服務(wù)器”對(duì)話框,在身份驗(yàn)證中選擇Windows或者SQLServer,界面分別如圖(a)(b)所示。連接SQLServer2008服務(wù)器分別單擊“連接”,在“MicrosoftSQLServerManagementStudio”窗口的“對(duì)象資源管理器”中就出現(xiàn)了以上述兩個(gè)用戶建立的SQLServer連接,如圖。連接SQLServer2008服務(wù)器2.連接SQLServer實(shí)例在“連接到服務(wù)器”對(duì)話框的“服務(wù)器名稱”中選擇(輸入)不同的“本機(jī)名\實(shí)例名”和對(duì)應(yīng)實(shí)例的身份驗(yàn)證用戶,就可在SSMS中同時(shí)操作不同的SQLServer實(shí)例的數(shù)據(jù)庫(kù)。在“連接到服務(wù)器”對(duì)話框的“服務(wù)器名稱”中選擇(輸入)網(wǎng)絡(luò)不同的“計(jì)算機(jī)名\實(shí)例名”和對(duì)應(yīng)該計(jì)算機(jī)SQLServer服務(wù)器實(shí)例的身份驗(yàn)證用戶,就可在SSMS中同時(shí)操作不同的SQLServer實(shí)例的數(shù)據(jù)庫(kù)。3.T-SQLT-SQL即Transact-SQL,是SQL在MicrosoftSQLServer上的增強(qiáng)版,它是用來(lái)讓應(yīng)用程序與SQLServer溝通的主要語(yǔ)言。T-SQL提供標(biāo)準(zhǔn)SQL的DDL和DML功能,加上延伸的函數(shù)、系統(tǒng)預(yù)存程序以及程序設(shè)計(jì)結(jié)構(gòu)(例如IF和WHILE)讓程序設(shè)計(jì)更有彈性。關(guān)于T-SQL說(shuō)明下列幾點(diǎn)。(1)/*內(nèi)容*/:為注釋和注釋語(yǔ)句,用于幫助讀者理解語(yǔ)句和程序,既可以放在一個(gè)語(yǔ)句的任何位置,也可以單獨(dú)作為一個(gè)語(yǔ)句,在執(zhí)行語(yǔ)句和程序時(shí)不做任何操作。(2)“;”:每一個(gè)語(yǔ)句結(jié)束可以加“;”,如果語(yǔ)句界限明顯可以省略。連接SQLServer2008服務(wù)器4.在SSMS查詢分析器窗口執(zhí)行T-SQLT-SQL語(yǔ)句需要在SSMS查詢分析器窗口編輯和執(zhí)行。在SSMS窗口中單擊“新建查詢”按鈕,新建一個(gè)查詢編輯窗口,在窗口中輸入T-SQL語(yǔ)句,然后單擊“執(zhí)行”,顯示如圖。第2章

數(shù)據(jù)庫(kù)創(chuàng)建——SQLServer數(shù)據(jù)庫(kù)01數(shù)據(jù)庫(kù)及其對(duì)象數(shù)據(jù)庫(kù)架構(gòu)數(shù)據(jù)庫(kù)對(duì)象系統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)快照文件數(shù)據(jù)庫(kù)及其對(duì)象1.?dāng)?shù)據(jù)庫(kù)架構(gòu)簡(jiǎn)單地說(shuō),架構(gòu)的作用是將數(shù)據(jù)庫(kù)中的所有對(duì)象分成不同的集合,每一個(gè)集合稱為一個(gè)架構(gòu)。數(shù)據(jù)庫(kù)中的每一個(gè)用戶都會(huì)有自己的默認(rèn)架構(gòu)。架構(gòu)可以在創(chuàng)建數(shù)據(jù)庫(kù)用戶時(shí)由創(chuàng)建者設(shè)定,若不設(shè)定,則系統(tǒng)默認(rèn)架構(gòu)為dbo。數(shù)據(jù)庫(kù)用戶只能對(duì)屬于自己架構(gòu)中的數(shù)據(jù)庫(kù)對(duì)象執(zhí)行相應(yīng)的操作,操作的權(quán)限則由數(shù)據(jù)庫(kù)角色決定。數(shù)據(jù)庫(kù)及其對(duì)象2.?dāng)?shù)據(jù)庫(kù)對(duì)象數(shù)據(jù)庫(kù)是一個(gè)容器,里面包含數(shù)據(jù)庫(kù)對(duì)象。表:是存放數(shù)據(jù)及表示關(guān)系的主要形式,是最主要的數(shù)據(jù)庫(kù)對(duì)象。視圖:視圖是一個(gè)或多個(gè)基本表生成的引用表(稱為虛表)。索引:表中的記錄通常按其輸入的時(shí)間順序存放,這種順序稱為記錄的物理順序。為了實(shí)現(xiàn)對(duì)表記錄的快速查詢,可以對(duì)表的記錄按某個(gè)或某些字段或它們的組合(稱為索引表達(dá)式)進(jìn)行排序,這種順序稱為邏輯順序。約束:約束用于保障數(shù)據(jù)的一致性與完整性。具有代表性的約束就是主鍵和外鍵。主鍵約束當(dāng)前表記錄的主鍵字段值唯一性,外鍵約束當(dāng)前表記錄與其他表的關(guān)系。存儲(chǔ)過(guò)程:存儲(chǔ)過(guò)程是一組完成特定功能的SQL語(yǔ)句集合,它存儲(chǔ)在數(shù)據(jù)庫(kù)中。存儲(chǔ)過(guò)程具有名稱,能夠接受(輸入)參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)值。存儲(chǔ)過(guò)程獨(dú)立于表存在。數(shù)據(jù)庫(kù)及其對(duì)象觸發(fā)器:觸發(fā)器基于一個(gè)表的操作(插入、修改或刪除)創(chuàng)建,編寫若干條T-SQL語(yǔ)句,當(dāng)該操作發(fā)生時(shí),這些語(yǔ)句被執(zhí)行,返回真或者假。返回假,當(dāng)前表的操作不能被執(zhí)行。默認(rèn)值:默認(rèn)值是在用戶插入表新記錄前,系統(tǒng)設(shè)置的字段的初始值。用戶和角色:用戶是指對(duì)數(shù)據(jù)庫(kù)有存取權(quán)限的使用者;角色是一個(gè)用戶組,給角色分配操作權(quán)限,該角色對(duì)應(yīng)的組的用戶都具有該操作權(quán)限。規(guī)則:是用來(lái)限制表字段的數(shù)據(jù)范圍。類型:用戶可以根據(jù)需要在指定的系統(tǒng)類型之上定義自己的數(shù)據(jù)類型。函數(shù):用戶可以根據(jù)需要將若干個(gè)T-SQL語(yǔ)句或者系統(tǒng)函數(shù)進(jìn)行組合實(shí)現(xiàn)特定功能,定義成自己的函數(shù)。然后,在需要該功能處調(diào)用該函數(shù)。數(shù)據(jù)庫(kù)及其對(duì)象3.系統(tǒng)數(shù)據(jù)庫(kù)在SQLServer實(shí)例安裝后,就生成下列系統(tǒng)數(shù)據(jù)庫(kù)。(1)master數(shù)據(jù)庫(kù):它記錄SQLServer系統(tǒng)的所有系統(tǒng)級(jí)信息。包括SQLServer實(shí)例初始化信息、登錄賬戶、端點(diǎn)、連接服務(wù)器和系統(tǒng)配置等,還記錄其他數(shù)據(jù)庫(kù)文件的位置。(2)model數(shù)據(jù)庫(kù):保存SQLServer實(shí)例上創(chuàng)建的所有數(shù)據(jù)庫(kù)的模板。如果修改model數(shù)據(jù)庫(kù),之后創(chuàng)建的所有數(shù)據(jù)庫(kù)都將繼承這些修改。如果用特定于用戶的模板信息修改model數(shù)據(jù)庫(kù),建議您備份model。(3)tempdb數(shù)據(jù)庫(kù):tempdb是所有用戶使用的臨時(shí)數(shù)據(jù)庫(kù)。每次啟動(dòng)SQLServer時(shí)都會(huì)重新創(chuàng)建它,在斷開(kāi)連接時(shí)會(huì)自動(dòng)刪除其中的臨時(shí)表和存儲(chǔ)過(guò)程。不允許對(duì)tempdb進(jìn)行備份和還原操作。

(4)msdb數(shù)據(jù)庫(kù):SQLServer代理使用msdb數(shù)據(jù)庫(kù)來(lái)計(jì)劃警報(bào)和作業(yè),SQLServerManagementStudio、ServiceBroker和數(shù)據(jù)庫(kù)郵件等其他組件也使用該數(shù)據(jù)庫(kù)。在進(jìn)行任何更新msdb的操作(例如備份或還原任何數(shù)據(jù)庫(kù))后,建議備份msdb。數(shù)據(jù)庫(kù)及其對(duì)象4.?dāng)?shù)據(jù)庫(kù)快照文件快照是指數(shù)據(jù)庫(kù)在某一指定時(shí)刻的狀態(tài),它提供了源數(shù)據(jù)庫(kù)在創(chuàng)建快照時(shí)的只讀、靜態(tài)視圖。雖然數(shù)據(jù)庫(kù)在不斷變化,但快照一旦創(chuàng)建就不能改變。多個(gè)快照可以位于一個(gè)源數(shù)據(jù)庫(kù)中,并且可以作為數(shù)據(jù)庫(kù)始終駐留在同一服務(wù)器實(shí)例上。創(chuàng)建快照時(shí),每個(gè)快照在事務(wù)上都與源數(shù)據(jù)庫(kù)一致。在被數(shù)據(jù)庫(kù)所有者顯式刪除之前,快照始終存在。02數(shù)據(jù)庫(kù)及其文件數(shù)據(jù)庫(kù)名稱數(shù)據(jù)庫(kù)文件類型文件大小、自動(dòng)增長(zhǎng)和最大容量文件組數(shù)據(jù)庫(kù)及其文件1.數(shù)據(jù)庫(kù)名稱數(shù)據(jù)庫(kù)名稱是所有SQLServer的集成操作環(huán)境(SSMS)和T-SQL語(yǔ)句中引用數(shù)據(jù)庫(kù)的名稱,必須符合SQLServer標(biāo)識(shí)符命名規(guī)則。數(shù)據(jù)庫(kù)名稱是SQLServer實(shí)例層面的名稱,是邏輯名,所以在同一個(gè)SQLServer實(shí)例中,數(shù)據(jù)庫(kù)名稱必須唯一,例如:xscj。數(shù)據(jù)庫(kù)及其文件2.數(shù)據(jù)庫(kù)文件類型1)文件類型SQLServer數(shù)據(jù)庫(kù)包含下列3類文件:(1)主數(shù)據(jù)文件主數(shù)據(jù)文件一般稱數(shù)據(jù)文件,它包含數(shù)據(jù)庫(kù)的啟動(dòng)信息,存儲(chǔ)部分或全部的數(shù)據(jù)和數(shù)據(jù)庫(kù)對(duì)象,并指向數(shù)據(jù)庫(kù)中的其他文件。每個(gè)數(shù)據(jù)庫(kù)僅有一個(gè)主數(shù)據(jù)文件(擴(kuò)展名mdf),還可以包含若干個(gè)輔助數(shù)據(jù)文件(擴(kuò)展名ndf),用于存儲(chǔ)主數(shù)據(jù)文件未能存儲(chǔ)的剩余數(shù)據(jù)和一些數(shù)據(jù)庫(kù)對(duì)象。(2)日志文件對(duì)數(shù)據(jù)庫(kù)插入、刪除、更新等操作的事務(wù)都會(huì)記錄在日志文件(擴(kuò)展名ldf)中,對(duì)數(shù)據(jù)庫(kù)查詢等讀操作則不會(huì)記錄在日志文件中。每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)日志文件。(3)FILESTREAM文件FILESTREAM不是一種新的數(shù)據(jù)類型,而是一種技術(shù),它使SQLServer數(shù)據(jù)庫(kù)引擎和NTFS文件系統(tǒng)成為了一個(gè)整體,基于SQLServer的應(yīng)用程序可以將非結(jié)構(gòu)化數(shù)據(jù)(如文檔和圖像)存儲(chǔ)在文件系統(tǒng)中,通過(guò)豐富的流式API對(duì)其進(jìn)行操作。又可對(duì)文件數(shù)據(jù)的操作使用T-SQL語(yǔ)句進(jìn)行插入、更新、查詢、搜索和備份,并保持非結(jié)構(gòu)化數(shù)據(jù)和對(duì)應(yīng)的結(jié)構(gòu)化數(shù)據(jù)之間的事務(wù)一致性。2)文件存放路徑數(shù)據(jù)庫(kù)文件默認(rèn)存放的路徑為SQLServer安裝目錄下的DATA子目錄,例如:C:\ProgramFiles\MicrosoftSQLServer\SQLServer內(nèi)部編號(hào).SQLServer實(shí)例名

\MSSQL\DATA數(shù)據(jù)庫(kù)及其文件3.文件大小、自動(dòng)增長(zhǎng)和最大容量創(chuàng)建SQLServer數(shù)據(jù)庫(kù)需要指定每一個(gè)文件初始大小、自動(dòng)增長(zhǎng)方式和最大容量。系統(tǒng)有一個(gè)默認(rèn)初始大小,用戶可以根據(jù)需要設(shè)置。初始大小應(yīng)以初始存放在數(shù)據(jù)庫(kù)中各種數(shù)據(jù)和對(duì)象的累計(jì)大小放大一個(gè)系數(shù)作為參考。增長(zhǎng)方式包括“按百分比”(例如10%)增長(zhǎng)或者“按MB”(例如5MB)增長(zhǎng)。前者每次在原來(lái)空間大小的基礎(chǔ)上增長(zhǎng)10%;后者每次增長(zhǎng)5MB,而不管原來(lái)的空間大小是多少。當(dāng)數(shù)據(jù)庫(kù)數(shù)據(jù)超過(guò)初始大小按指定的增長(zhǎng)方式增長(zhǎng)。如果文件組中包含多個(gè)文件,則它們?cè)谒形募惶顫M之前不會(huì)自動(dòng)增長(zhǎng)。數(shù)據(jù)庫(kù)及其文件4.文件組SQLServer包含下列文件組:(1)PRIMARY文件組。主數(shù)據(jù)文件(mdf)只能屬于系統(tǒng)PRIMARY文件組,所有系統(tǒng)表都屬于該文件組。此外,還可以包含一個(gè)或者多個(gè)輔助數(shù)據(jù)文件(ndf)。(2)用戶定義文件組。在用戶定義了文件組后,其他數(shù)據(jù)文件可以指定屬于用戶定義的文件組,否則屬于默認(rèn)文件組。(3)默認(rèn)文件組。新建數(shù)據(jù)庫(kù)時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)的文件組PRIMARY,可以指定用戶定義文件組為默認(rèn)文件組。默認(rèn)文件組必須足夠大,能夠容納指定為該文件組合未分配文件組的所有新對(duì)象。(4)FILESTREAM文件組。是管理FILESTREAM類型文件。需要先添加FILESTREAM文件組,然后才能在數(shù)據(jù)庫(kù)中添加FILESTREAM文件類型。(5)內(nèi)存優(yōu)化數(shù)據(jù)文件組。內(nèi)存優(yōu)化表把數(shù)據(jù)存放到內(nèi)存中的表,內(nèi)存優(yōu)化表在創(chuàng)建的同時(shí)被編譯成本地機(jī)器代碼裝載到內(nèi)存中,所以對(duì)它的訪問(wèn)和操作非???。第2章

數(shù)據(jù)庫(kù)創(chuàng)建——數(shù)據(jù)庫(kù)創(chuàng)建和修改01創(chuàng)建數(shù)據(jù)庫(kù)文件項(xiàng)文件組項(xiàng)創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)前要確保用戶具有創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)限。語(yǔ)法格式如下。CREATEDATABASE數(shù)據(jù)庫(kù)名[CONTAINMENT={NONE|PARTIAL}][ON

[PRIMARY][<文件項(xiàng)>,...][,<文件組項(xiàng)>,...]

[LOGON{<文件項(xiàng)>,...}]]...說(shuō)明:(1)“,...”表示重復(fù)前面項(xiàng)。(2)“...”表示還有其他項(xiàng),為了突出主要內(nèi)容而省略。(3)在一個(gè)語(yǔ)句由多行組成時(shí),為了清晰描述層次之間的關(guān)系,第二行開(kāi)始可以根據(jù)所屬關(guān)系進(jìn)行階梯縮進(jìn)。創(chuàng)建數(shù)據(jù)庫(kù)1.文件項(xiàng)<文件項(xiàng)>::={(

NAME=邏輯名稱,

FILENAME={'含路徑文件名'|'filestream存儲(chǔ)路徑'}

[,SIZE=文件初始容量]

[,MAXSIZE={文件最大容量|UNLIMITED}]

[,FILEGROWTH=文件增量[容量|%]])}其中:(1)含PRIMARY,對(duì)應(yīng)主數(shù)據(jù)文件,否則為輔助數(shù)據(jù)文件。(2)NAME=邏輯名稱:SQLServer實(shí)例使用的數(shù)據(jù)庫(kù)名。(3)FILENAME=含路徑文件名:創(chuàng)建數(shù)據(jù)庫(kù)后操作系統(tǒng)中包含的數(shù)據(jù)庫(kù)文件的路徑和文件名。(4)文件初始容量:指定數(shù)據(jù)文件的初始大小,單位可以是KB、MB、GB、TB。(5)文件最大容量:指定數(shù)據(jù)文件的最大容量,如果指定為UNLIMITED,表示文件大小不受限制,但實(shí)際上受磁盤可用空間的限制。(6)文件增量:有容量值和百分比(%)兩種格式。創(chuàng)建數(shù)據(jù)庫(kù)2.文件組項(xiàng)<文件組項(xiàng)>::={ FILEGROUP文件組名[DEFAULT]

<文件項(xiàng)>,...}其中:(1)<文件組項(xiàng)>:指定屬于該文件組的文件。(2)DEFAULT:指定命名文件組為數(shù)據(jù)庫(kù)中的默認(rèn)文件組。(3)還可以指定為“FILESTREAM”文件組。創(chuàng)建數(shù)據(jù)庫(kù)3.創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例【例2.1】創(chuàng)建一個(gè)名為test1的數(shù)據(jù)庫(kù),其初始大小為5MB,最大為50MB,允許數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng),增長(zhǎng)方式是按10%比例。日志文件初始為2MB,最大可增長(zhǎng)到5MB,按1

MB增長(zhǎng)。語(yǔ)句如下:CREATEDATABASEtest1 ON ( NAME="test1", FILENAME="E:\MyDB\test1.mdf", SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10% ) LOGON ( NAME="test1_log", FILENAME="E:\MyDB\test1.ldf", SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB )創(chuàng)建數(shù)據(jù)庫(kù)【例2.2】創(chuàng)建一個(gè)名為test2的數(shù)據(jù)庫(kù),它有兩個(gè)數(shù)據(jù)文件,其中主數(shù)據(jù)文件為20MB,最大不限,按10%增長(zhǎng)。1個(gè)輔助數(shù)據(jù)文件為20MB,最大不限,按10%增長(zhǎng);有1個(gè)日志文件,為50MB,最大為100MB,按10MB增長(zhǎng)。語(yǔ)句如下:CREATEDATABASEtest2 ON PRIMARY ( NAME='test2_data1', FILENAME='E:\MyDB\test2_data1.mdf', SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ), ( NAME='test2_data2', FILENAME='E:\MyDB\test2_data2.ndf', SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ) LOGON ( NAME='test2_log1', FILENAME='E:\MyDB\test2_log1.ldf', SIZE=50MB, MAXSIZE=100MB, FILEGROWTH=10MB )創(chuàng)建數(shù)據(jù)庫(kù)【例2.3】創(chuàng)建一個(gè)具有2個(gè)文件組的數(shù)據(jù)庫(kù)test3。主文件組包括文件test3_dat1,文件初始大小為20MB,最大為60MB,按5MB增長(zhǎng)。文件組test3Group1包括文件test3_dat2,文件初始大小為10MB,最大為30MB,按10%增長(zhǎng)。語(yǔ)句如下:CREATEDATABASEtest3ONPRIMARY( NAME='test3_dat1',FILENAME='E:\MyDB\test3_dat1.mdf',SIZE=20MB,MAXSIZE=60MB,FILEGROWTH=5MB),FILEGROUPtest3Group1( NAME='test3_dat2',FILENAME='E:\MyDB\test3_dat2.ndf',SIZE=10MB,MAXSIZE=30MB,FILEGROWTH=10%)02修改數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)文件選項(xiàng)數(shù)據(jù)庫(kù)文件組選項(xiàng)數(shù)據(jù)庫(kù)選項(xiàng)修改數(shù)據(jù)庫(kù)實(shí)例修改數(shù)據(jù)庫(kù)已經(jīng)創(chuàng)建的數(shù)據(jù)庫(kù)可以修改它的屬性。語(yǔ)法格式如下:ALTERDATABASE數(shù)據(jù)庫(kù)名{ ADDFILE<文件選項(xiàng)>...[TOFILEGROUP文件組名] /*在文件組中增加數(shù)據(jù)文件*/ |ADDLOGFILE<文件選項(xiàng)>... /*增加日志文件*/ |REMOVEFILE邏輯文件名 /*刪除數(shù)據(jù)文件*/ |ADDFILEGROUP文件組名[……] /*增加文件組*/ |REMOVEFILEGROUP文件組名 /*刪除文件組*/ |MODIFYFILE<文件選項(xiàng)> /*更改文件屬性*/ |MODIFYNAME=新數(shù)據(jù)庫(kù)名 /*數(shù)據(jù)庫(kù)更名*/ |MODIFYFILEGROUP文件組名 {

<文件組可更新選項(xiàng)> |DEFAULT |NAME=新文件組名 } /*更改文件組屬性*/|SET<屬性選項(xiàng)>...[WITH<終止>] /*設(shè)置數(shù)據(jù)庫(kù)屬性*/... /*指定數(shù)據(jù)庫(kù)排序規(guī)則*/}修改數(shù)據(jù)庫(kù)1.數(shù)據(jù)庫(kù)文件選項(xiàng)(1)ADDFILE子句:向數(shù)據(jù)庫(kù)添加數(shù)據(jù)文件,<文件選項(xiàng)>給出文件的屬性,其構(gòu)成參見(jiàn)CREATEDATABASE語(yǔ)法說(shuō)明。關(guān)鍵字TOFILEGROUP指出了添加的數(shù)據(jù)文件所在的文件組名,若默認(rèn),則為主文件組。(2)ADDLOGFILE子句:向數(shù)據(jù)庫(kù)添加日志文件,<文件選項(xiàng)>給出日志文件的屬性。(3)REMOVEFILE子句:從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)文件,被刪除的數(shù)據(jù)文件由其中的參數(shù)“邏輯文件名”給出。當(dāng)刪除一個(gè)數(shù)據(jù)文件時(shí),邏輯文件與物理文件全部被刪除。(4)MODIFYFILE子句:修改數(shù)據(jù)文件的屬性,被修改文件的邏輯名由<文件選項(xiàng)>的NAME選項(xiàng)給出,可以修改的文件屬性包括NEWNAME、FILENAME、SIZE、MAXSIZE和FILEGROWTH。其中NEWNAME為新的文件邏輯名。修改數(shù)據(jù)庫(kù)2.數(shù)據(jù)庫(kù)文件組選項(xiàng)(1)ADDFILEGROUP子句:向數(shù)據(jù)庫(kù)中添加文件組,被添加的文件組名由參數(shù)“文件組名”給出。(2)REMOVEFILEGROUP子句:刪除文件組,被刪除的文件組名由參數(shù)“文件組名”給出。(3)MODIFYFILEGROUP子句:用于修改文件組的屬性?!拔募M名”為要修改的文件組名稱。<文件組可更新選項(xiàng)>::={READ_ONLY|READ_WRITE}其中,READ_ONLY將文件組設(shè)為只讀,READ_WRITE將文件組設(shè)為讀/寫模式。DEFAULT選項(xiàng):表示將默認(rèn)數(shù)據(jù)庫(kù)文件組改為指定文件組。NAME選項(xiàng):用于將文件組名稱改為新文件組名。3.數(shù)據(jù)庫(kù)選項(xiàng)(1)MODIFYNAME子句:更改數(shù)據(jù)庫(kù)名,新的數(shù)據(jù)庫(kù)名由參數(shù)“新數(shù)據(jù)庫(kù)名”給出。(2)SET子句:用于設(shè)置數(shù)據(jù)庫(kù)的屬性,<屬性選項(xiàng)>中指定了要修改的屬性。例如,設(shè)為READ_ONLY時(shí),用戶可以從數(shù)據(jù)庫(kù)讀取數(shù)據(jù),但不能修改數(shù)據(jù)庫(kù)。其他屬性請(qǐng)參考有關(guān)文檔。修改數(shù)據(jù)庫(kù)4.修改數(shù)據(jù)庫(kù)實(shí)例1)修改文件大小和增長(zhǎng)方式【例2.4】修改數(shù)據(jù)庫(kù)test1的主數(shù)據(jù)文件邏輯名為test1_data,最大容量改為100MB,增長(zhǎng)方式改為按每次5MB增長(zhǎng),文件名作相應(yīng)調(diào)整。語(yǔ)句如下:USEmasterALTERDATABASEtest1 MODIFYFILE ( NAME='test1', NEWNAME='test1_data', FILENAME='E:\MyDB\test1_data.mdf', MAXSIZE=100MB, FILEGROWTH=5MB )修改數(shù)據(jù)庫(kù)2)增加和刪除數(shù)據(jù)文件【例2.5】先為數(shù)據(jù)庫(kù)test1增加數(shù)據(jù)文件test1bak,然后刪除該數(shù)據(jù)文件。(1)為數(shù)據(jù)庫(kù)test1增加數(shù)據(jù)文件test1bak。ALTERDATABASEtest1 ADDFILE ( NAME='test1bak', FILENAME='E:\MyDB\test1bak.ndf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% )(2)查看數(shù)據(jù)庫(kù)test1參數(shù)修改結(jié)果。刷新“對(duì)象資源管理器”中的數(shù)據(jù)庫(kù),查看“數(shù)據(jù)庫(kù)屬性”窗口中的“文件”選項(xiàng)卡和數(shù)據(jù)庫(kù)文件目錄,可以看到數(shù)據(jù)庫(kù)test1增加了數(shù)據(jù)文件test1bak。(3)刪除數(shù)據(jù)文件test1bak。ALTERDATABASEtest1 REMOVEFILEtest1bak修改數(shù)據(jù)庫(kù)3)為數(shù)據(jù)庫(kù)添加文件組【例2.6】為數(shù)據(jù)庫(kù)test1添加文件組fgroup,并為此文件組添加兩個(gè)大小均為10MB的數(shù)據(jù)文件,觀察結(jié)果后將文件組fgroup刪除。(1)為數(shù)據(jù)庫(kù)test1添加文件組和數(shù)據(jù)文件。ALTERDATABASEtest1ADDFILEGROUPfgroupGOALTERDATABASEtest1ADDFILE( NAME='test1_data2',FILENAME='E:\MyDB\test1_data2.ndf',SIZE=10MB),( NAME='test1_data3',FILENAME='E:\MyDB\test1_data3.ndf',SIZE=10MB)TOFILEGROUPfgroupGO修改數(shù)據(jù)庫(kù)說(shuō)明:(1)GO必須單獨(dú)一行,是批處理命令。遇到第一個(gè)GO,在此前test1數(shù)據(jù)庫(kù)增加了一個(gè)文件組fgroup;遇到第二個(gè)GO,在test1數(shù)據(jù)庫(kù)增加了兩個(gè)文件。(2)查看數(shù)據(jù)庫(kù)test1“文件組”選項(xiàng)卡,可見(jiàn)增加了fgroup文件組;同時(shí),數(shù)據(jù)庫(kù)文件目錄中增加了2個(gè)數(shù)據(jù)文件。(3)從數(shù)據(jù)庫(kù)中刪除fgroup文件組。SQL語(yǔ)句如下。ALTERDATABASEtest1 REMOVEFILEtest1_data2ALTERDATABASEtest1 REMOVEFILEtest1_data3GOALTERDATABASEtest1 REMOVEFILEGROUPfgroupGO03刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)使用下列命令。語(yǔ)法格式:DROPDATABASE數(shù)據(jù)庫(kù)名,...其中,“數(shù)據(jù)庫(kù)名”是要?jiǎng)h除的數(shù)據(jù)庫(kù)名。例如,要?jiǎng)h除數(shù)據(jù)庫(kù)test1,使用命令:DROPDATABASEtest1第2章

數(shù)據(jù)庫(kù)創(chuàng)建——?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)綜合01命令方式創(chuàng)建數(shù)據(jù)庫(kù)命令方式創(chuàng)建數(shù)據(jù)庫(kù)【例2.7】按照下列要求創(chuàng)建學(xué)生成績(jī)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名xscj。(1)創(chuàng)建學(xué)生成績(jī)數(shù)據(jù)庫(kù)xscj,初始文件大小為100MB,按照10%增長(zhǎng),占用最大空間沒(méi)有限制。日志文件大小為20MB,按照5MB增長(zhǎng),占用最大空間不超過(guò)100MB。數(shù)據(jù)文件和日志文件主文件名為xscj,均存放在“E:\MyDB”目錄下。CREATEDATABASExscj ON PRIMARY ( NAME='xscj', FILENAME='E:\MyDB\xscj.ndf', SIZE=100MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ) LOGON ( NAME='xscj_log', FILENAME='E:\MyDB\xscj.ldf', SIZE=20MB, MAXSIZE=100MB, FILEGROWTH=5MB )GO命令方式創(chuàng)建數(shù)據(jù)庫(kù)(2)在數(shù)據(jù)庫(kù)xscj中增加文件組fgroup1、fgroup2、fgroup3和fgroup4。ALTERDATABASExscjADDFILEGROUPfgroup1ALTERDATABASExscjADDFILEGROUPfgroup2ALTERDATABASExscjADDFILEGROUPfgroup3ALTERDATABASExscjADDFILEGROUPfgroup4GO(3)給文件組fgroup1、fgroup2、fgroup3和fgroup4增加對(duì)應(yīng)數(shù)據(jù)文件。(4)在對(duì)象資源管理器中查看xscj數(shù)據(jù)庫(kù)屬性。包括常規(guī)、文件組和文件。02界面方式創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)屬性增加或刪除數(shù)據(jù)文件刪除數(shù)據(jù)文件增加或刪除文件組數(shù)據(jù)庫(kù)重命名數(shù)據(jù)庫(kù)的刪除界面方式創(chuàng)建數(shù)據(jù)庫(kù)1.創(chuàng)建數(shù)據(jù)庫(kù)【例2.8】創(chuàng)建數(shù)據(jù)庫(kù)xscj,數(shù)據(jù)文件和日志文件的屬性按默認(rèn)值設(shè)置。系統(tǒng)對(duì)數(shù)據(jù)文件的默認(rèn)值為:初始大小3MB;最大容量不限(僅受硬盤空間的限制);允許數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng),增量為1MB;日志文件初始大小1MB,最大容量不限(僅受硬盤空間的限制),允許日志文件自動(dòng)增長(zhǎng),增長(zhǎng)方式為按10%比例增長(zhǎng)。(1)在SSMS的“對(duì)象資源管理器”中,選擇“數(shù)據(jù)庫(kù)”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”菜單項(xiàng),打開(kāi)“新建數(shù)據(jù)庫(kù)”窗口。

(2)“新建數(shù)據(jù)庫(kù)”窗口的左上方共有3個(gè)選項(xiàng)頁(yè):“常規(guī)”、“選項(xiàng)”和“文件組”,這里只配置“常規(guī)”選項(xiàng)頁(yè),其他選項(xiàng)頁(yè)使用系統(tǒng)默認(rèn)設(shè)置。界面方式創(chuàng)建數(shù)據(jù)庫(kù)在“新建數(shù)據(jù)庫(kù)”窗口的左上方選擇“常規(guī)”選項(xiàng)頁(yè),在“數(shù)據(jù)庫(kù)名稱”文本框中填寫要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名稱“xscj”,也可以在“所有者”文本框中指定數(shù)據(jù)庫(kù)的所有者,如sa。單擊“自動(dòng)增長(zhǎng)”和“路徑”后面的按鈕,可以進(jìn)入對(duì)應(yīng)對(duì)話框指定數(shù)據(jù)庫(kù)文件需要的增長(zhǎng)方式和存放路徑,數(shù)據(jù)庫(kù)文件名可以直接輸入。這里修改數(shù)據(jù)庫(kù)存放路徑為“E:\MyDB”,其他屬性按默認(rèn)值設(shè)置,如圖。界面方式創(chuàng)建數(shù)據(jù)庫(kù)單擊“確定”,數(shù)據(jù)庫(kù)創(chuàng)建完成,在“對(duì)象資源管理器”窗口的“數(shù)據(jù)庫(kù)”下顯示xscj,如圖所示。界面方式創(chuàng)建數(shù)據(jù)庫(kù)2.修改數(shù)據(jù)庫(kù)屬性在“數(shù)據(jù)庫(kù)”下選擇數(shù)據(jù)庫(kù)xscj,右擊鼠標(biāo),在出現(xiàn)的快捷菜單中選擇“屬性”菜單項(xiàng)。顯示“數(shù)據(jù)庫(kù)屬性-xscj”窗口。從圖中的“選項(xiàng)頁(yè)”列表中可以看出,它包括9個(gè)選項(xiàng)頁(yè)。在這些選項(xiàng)頁(yè)中,可以查看數(shù)據(jù)庫(kù)系統(tǒng)的各種屬性和狀態(tài),也可以修改原來(lái)的屬性??梢赃M(jìn)行的修改包括以下幾項(xiàng)。增加或刪除數(shù)據(jù)文件。改變數(shù)據(jù)文件的大小和增長(zhǎng)方式。改變?nèi)罩疚募拇笮『驮鲩L(zhǎng)方式。增加或刪除日志文件。增加或刪除文件組。重命名數(shù)據(jù)庫(kù)。界面方式創(chuàng)建數(shù)據(jù)庫(kù)3.增加或刪除數(shù)據(jù)文件【例2.9】在數(shù)據(jù)庫(kù)xscj中增加數(shù)據(jù)文件,邏輯名為xscj_2。打開(kāi)“數(shù)據(jù)庫(kù)屬性-xscj”窗口,在“選項(xiàng)”頁(yè)列表中選擇“文件”選項(xiàng)頁(yè),系統(tǒng)已經(jīng)根據(jù)邏輯名稱生成對(duì)應(yīng)的數(shù)據(jù)文件和日志文件文件名(xscj.mdf和xscj_log.ldf)。單擊右下角的“添加”按鈕,會(huì)在數(shù)據(jù)庫(kù)文件下方新增加一行文件項(xiàng),在“邏輯名稱”列中輸入“xscj_2”,設(shè)置文件的初始大小為5MB。單擊“自動(dòng)增長(zhǎng)”后面的

按鈕,進(jìn)入更改自動(dòng)增長(zhǎng)設(shè)置對(duì)話框,修改內(nèi)容如圖。界面方式創(chuàng)建數(shù)據(jù)庫(kù)選擇與前面兩個(gè)文件相同的存放路徑,自己定義的文件名為“xscj2.ndf”,如圖。4.刪除數(shù)據(jù)文件當(dāng)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)文件不再需要時(shí),應(yīng)及時(shí)將其刪除。在SQLServer中,只能刪除輔助數(shù)據(jù)文件,而不能刪除主數(shù)據(jù)文件。其理由是很顯然的,因?yàn)樵谥鲾?shù)據(jù)文件中存放著數(shù)據(jù)庫(kù)的主要信息和啟動(dòng)信息,若將其刪除,數(shù)據(jù)庫(kù)將無(wú)法啟動(dòng)。打開(kāi)“數(shù)據(jù)庫(kù)屬性”窗口“文件”選項(xiàng)頁(yè),選擇需刪除的輔助數(shù)據(jù)文件(例如:xscj_2,單擊右下角的“刪除”按鈕,再單擊“確定”按鈕即可。界面方式創(chuàng)建數(shù)據(jù)庫(kù)5.增加或刪除文件組數(shù)據(jù)庫(kù)管理員(DBA)從系統(tǒng)管理策略角度出發(fā),有時(shí)可能需要增加或刪除文件組?!纠?.10】在數(shù)據(jù)庫(kù)xscj中增加一個(gè)名為fgroup的文件組并在其中增加數(shù)據(jù)文件。(1)增加一個(gè)名為fgroup的文件組選擇“數(shù)據(jù)庫(kù)屬性”窗口的“文件組”選項(xiàng)頁(yè),單擊右下角的“添加”按鈕,這時(shí)在“PRIMARY”行的下面會(huì)出現(xiàn)新的一行。在該行的“名稱”列輸入“fgroup”,單擊“確定”按鈕,如圖。界面方式創(chuàng)建數(shù)據(jù)庫(kù)(2)在xscj數(shù)據(jù)庫(kù)新增的文件組fgroup中增加數(shù)據(jù)文件xscj2。選擇“文件”選項(xiàng)頁(yè),按增加數(shù)據(jù)文件的操作方法添加數(shù)據(jù)文件。在“文件組”下拉框中選擇“fgroup”,如圖所示,單擊“確定”按鈕。(3)刪除文件組選擇“文件組”選項(xiàng)頁(yè),選中需刪除的文件組,單擊右下角的“刪除”按鈕,再單擊“確定”按鈕即可。界面方式創(chuàng)建數(shù)據(jù)庫(kù)6.?dāng)?shù)據(jù)庫(kù)重命名在“數(shù)據(jù)庫(kù)”下選擇要重命名的數(shù)據(jù)庫(kù)名,右擊鼠標(biāo),在彈出的快捷菜單中選擇“重命名”菜單項(xiàng),輸入新的數(shù)據(jù)庫(kù)名稱即可更改數(shù)據(jù)庫(kù)的名稱。一般情況下,不建議用戶更改已經(jīng)創(chuàng)建好的數(shù)據(jù)庫(kù)名稱,因?yàn)樵S多應(yīng)用程序可能已經(jīng)使用了該名稱,在更改了數(shù)據(jù)庫(kù)名稱之后,還需要修改相應(yīng)的應(yīng)用程序。7.?dāng)?shù)據(jù)庫(kù)的刪除數(shù)據(jù)庫(kù)系統(tǒng)在長(zhǎng)時(shí)間使用之后,系統(tǒng)的資源消耗加劇,導(dǎo)致運(yùn)行效率下降,因此DBA需要適時(shí)地對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行一定的調(diào)整。通常的做法是把一些不需要的數(shù)據(jù)庫(kù)刪除,以釋放被其占用的系統(tǒng)空間降低消耗。選擇要?jiǎng)h除的數(shù)據(jù)庫(kù)“test2”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“刪除”菜單項(xiàng),出現(xiàn)“刪除對(duì)象”對(duì)話框,單擊右下角的“確定”按鈕即可刪除該數(shù)據(jù)庫(kù)。第3章

表的創(chuàng)建和操作——表結(jié)構(gòu)和數(shù)據(jù)類型01表和表結(jié)構(gòu)表和表結(jié)構(gòu)每個(gè)數(shù)據(jù)庫(kù)包含了若干個(gè)表。表是SQLServer中最主要的數(shù)據(jù)庫(kù)對(duì)象,它是用來(lái)存儲(chǔ)數(shù)據(jù)的一種邏輯結(jié)構(gòu)。表由行和列組成,因此也稱為二維表。表是在日常工作和生活中經(jīng)常使用的一種表示數(shù)據(jù)及其關(guān)系的形式,表就是用來(lái)表示學(xué)生情況的一個(gè)“學(xué)生”表。學(xué)

號(hào)姓名性別出生日期專

業(yè)總學(xué)分備

注221101王林男2004-02-10計(jì)算機(jī)15

221102程明男2005-02-01計(jì)算機(jī)15

221103王燕女2003-10-06計(jì)算機(jī)15參加校女子足球隊(duì)201103嚴(yán)紅女2002-08-11計(jì)算機(jī)60

221201劉華男2004-06-10通信工程13輔修計(jì)算機(jī)專業(yè)221202王林男2004-01-29通信工程13

表和表結(jié)構(gòu)下面簡(jiǎn)單介紹與表有關(guān)的幾個(gè)概念。(1)表結(jié)構(gòu)。組成表的各列的名稱及數(shù)據(jù)類型,統(tǒng)稱為表結(jié)構(gòu)。(2)記錄(行)。每個(gè)表包含了若干行數(shù)據(jù),它們是表的“值”,表中的一行稱為一個(gè)記錄。因此,表是記錄的有限集合。(3)列(字段)。每個(gè)記錄由若干個(gè)數(shù)據(jù)項(xiàng)構(gòu)成,將構(gòu)成記錄的每個(gè)數(shù)據(jù)項(xiàng)稱為字段,又直接稱列。例如,表3.1中的表結(jié)構(gòu)為(學(xué)號(hào),姓名,性別,出生日期,專業(yè),總學(xué)分,備注),包含7個(gè)列,由6個(gè)記錄組成。(4)空值??罩担∟ULL)通常表示未知、不可用或?qū)⒃谝院筇砑拥臄?shù)據(jù)。若一個(gè)列允許為空值,則向表中輸入記錄值時(shí)可不為該列指定具體值;而一個(gè)列若不允許為空值,則在輸入時(shí)必須給出具體值。(5)關(guān)鍵字。若表中記錄的某一列或列組合能唯一標(biāo)識(shí)記錄,則稱該列或列組合為候選關(guān)鍵字(Candidatekey)。若一個(gè)表有多個(gè)候選關(guān)鍵字,則選定其中一個(gè)為主關(guān)鍵字(Primarykey),也稱為主鍵。當(dāng)一個(gè)表僅有唯一的一個(gè)候選關(guān)鍵字時(shí),該候選關(guān)鍵字就是主關(guān)鍵字。02數(shù)據(jù)類型整數(shù)型精確數(shù)值型浮點(diǎn)型貨幣型位型字符型Unicode字符型文本型二進(jìn)制型日期時(shí)間類型時(shí)間戳型圖像數(shù)據(jù)類型xml類型地理空間類型和幾何數(shù)據(jù)類型其他數(shù)據(jù)類型數(shù)據(jù)類型列的數(shù)據(jù)類型可以是SQLServer提供的系統(tǒng)數(shù)據(jù)類型,也可以是用戶定義的數(shù)據(jù)類型。SQLServer提供了豐富的數(shù)據(jù)類型,列于表中。數(shù)據(jù)類型符號(hào)標(biāo)識(shí)整數(shù)型bigint,int,smallint,tinyint精確數(shù)值型decimal,numeric浮點(diǎn)型float,real貨幣型money,smallmoney位型bit字符型char,varchar、varchar(MAX)Unicode字符型nchar,nvarchar、nvarchar(MAX)文本型text,ntext二進(jìn)制型binary,varbinary、varbinary(MAX)日期時(shí)間類型datetime,smalldatetime,date,time,datetime2,datetimeoffset時(shí)間戳型timestamp圖像型image其他sql_variant,uniqueidentifier,xml,hierarchyid,geometry數(shù)據(jù)類型在討論數(shù)據(jù)類型時(shí),使用了精度、小數(shù)位數(shù)和長(zhǎng)度3個(gè)概念,前兩個(gè)概念是針對(duì)數(shù)值型數(shù)據(jù)的,它們的含義是:精度:指數(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ù)所使用的字節(jié)數(shù)。1.整數(shù)型整數(shù)型包括bigint、int、smallint和tinyint,從標(biāo)識(shí)符的含義就可以看出,它們表示數(shù)的范圍逐漸縮小。(1)bigint:大整數(shù),范圍為

263~263

1,其精度為19,小數(shù)位數(shù)為0,長(zhǎng)度為8字節(jié)。(2)int:整數(shù),范圍為

231~231

1,其精度為10,小數(shù)位數(shù)為0,長(zhǎng)度為4字節(jié)。(3)smallint:短整數(shù),范圍為

215~215

1,其精度為5,小數(shù)位數(shù)為0,長(zhǎng)度為2字節(jié)。(4)tinyint:微短整數(shù),范圍為0~255,長(zhǎng)度為1字節(jié),其精度為3,小數(shù)位數(shù)為0,長(zhǎng)度為1字節(jié)。數(shù)據(jù)類型2.精確數(shù)值型精確數(shù)值型數(shù)據(jù)由整數(shù)部分和小數(shù)部分構(gòu)成,其所有的數(shù)字都是有效位,能夠以完整的精度存儲(chǔ)十進(jìn)制數(shù)。精確數(shù)值型包括decimal和numeric兩類。在SQLServer中,這兩種數(shù)據(jù)類型在功能上完全等價(jià)。聲明精確數(shù)值型數(shù)據(jù)的格式是numeric|decimal(p[,s]),其中p為精度,s為小數(shù)位數(shù),s的默認(rèn)值為0。例如,指定某列為精確數(shù)值型,精度為6,小數(shù)位數(shù)為3,即decimal(6,3),那么當(dāng)向某記錄的該列賦值56.342689時(shí),該列實(shí)際存儲(chǔ)的是56.343。decimal和numeric可存儲(chǔ)–1038+1~1038–1的固定精度和小數(shù)位的數(shù)字?jǐn)?shù)據(jù),它們的存儲(chǔ)長(zhǎng)度隨精度變化而變化,最少為5字節(jié),最多為17字節(jié)。數(shù)據(jù)類型3.浮點(diǎn)型有兩種近似數(shù)值數(shù)據(jù)類型:float[(n)]和real,兩者通常都使用科學(xué)記數(shù)法表示數(shù)據(jù),即形為:尾數(shù)E階數(shù),如5.6432E20,–2.98E10,1.287659E-9等。(1)real:使用4字節(jié)存儲(chǔ)數(shù)據(jù),表數(shù)范圍為–3.40E+38~3.40E+38,數(shù)據(jù)精度為7位有效數(shù)字。(2)float:表數(shù)范圍為–1.79E+308~1.79E+308。定義中的n取值范圍是1~53,用于指示其精度和存儲(chǔ)大小。當(dāng)n在1~24之間時(shí),實(shí)際上將定義一個(gè)real型數(shù)據(jù),存儲(chǔ)長(zhǎng)度為4字節(jié),精度為7位有效數(shù)字。4.貨幣型SQLServer提供了兩個(gè)專門用于處理貨幣的數(shù)據(jù)類型:money和smallmoney,它們用十進(jìn)制數(shù)表示貨幣值。(1)money:范圍為

263~263

1,其精度為19,小數(shù)位數(shù)為4,長(zhǎng)度為8字節(jié)。money的數(shù)范圍與bigint相同,不同的只是money型有4位小數(shù)。實(shí)際上,money就是按照整數(shù)進(jìn)行運(yùn)算的,只是將小數(shù)點(diǎn)固定在末尾4位。(2)smallmoney:范圍為–231~231

1,其精度為10,小數(shù)位數(shù)為4,長(zhǎng)度為4字節(jié)。數(shù)據(jù)類型5.位型SQLServer中的位(bit)型數(shù)據(jù)相當(dāng)于其他語(yǔ)言中的邏輯型數(shù)據(jù),它只存儲(chǔ)0和1,長(zhǎng)度為1字節(jié)。但要注意,SQLServer對(duì)表中bit類型列的存儲(chǔ)進(jìn)行了優(yōu)化:如果一個(gè)表中有不多于8個(gè)bit列,則這些列將作為1字節(jié)存儲(chǔ);如果表中有9~16個(gè)bit列,則這些列將作為2字節(jié)存儲(chǔ),更多列的情況以此類推。6.字符型SQLServer字符字符型數(shù)包括兩類:定長(zhǎng)(char)和變長(zhǎng)(varchar)。(1)char[(n)]:定長(zhǎng)字符數(shù)據(jù)類型,其中n定義字符型數(shù)據(jù)的長(zhǎng)度,在1~8000之間,默認(rèn)為1。當(dāng)表中的列定義為char(n)類型時(shí),若實(shí)際存儲(chǔ)的串長(zhǎng)度不足n時(shí),則在串的尾部添加空格以達(dá)到長(zhǎng)度n,所以char(n)的長(zhǎng)度為n。(2)varchar[(n)]:變長(zhǎng)字符數(shù)據(jù)類型,其中,n的規(guī)定與定長(zhǎng)字符型char中的n完全相同,但這里n表示的是字符串可達(dá)到的最大長(zhǎng)度。數(shù)據(jù)類型7.Unicode字符型Unicode字符型包括nchar[(n)]和nvarchar[(n)]兩類。nchar是定長(zhǎng)Unicode數(shù)據(jù)的數(shù)據(jù)類型,nvarchar是變長(zhǎng)Unicode數(shù)據(jù)的數(shù)據(jù)類型,二者均使用UNICODEUCS-2字符集。(1)nchar[(n)]:nchar[(n)]為包含n個(gè)字符的固定長(zhǎng)度Unicode字符型數(shù)據(jù),n的值在1~4000之間,長(zhǎng)度為2n字節(jié)。若輸入的字符串長(zhǎng)度不足n,將以空白字符補(bǔ)足。(2)nvarchar[(n)]:nvarchar[(n)]為最多包含n個(gè)字符的可變長(zhǎng)度Unicode字符型數(shù)據(jù),n的值在1~4000之間,默認(rèn)為1。長(zhǎng)度是所輸入字符個(gè)數(shù)的兩倍。8.文本型文本型包括text和ntext兩類,分別對(duì)應(yīng)ASCII字符和Unicode字符。(1)text類型:可以表示最大長(zhǎng)度為231

1個(gè)字符,其數(shù)據(jù)的存儲(chǔ)長(zhǎng)度為實(shí)際字符個(gè)數(shù)字節(jié)。(2)ntext類型:可表示最大長(zhǎng)度為230

1個(gè)Unicode字符,其數(shù)據(jù)的存儲(chǔ)長(zhǎng)度是實(shí)際字符個(gè)數(shù)兩倍的字節(jié)。數(shù)據(jù)類型9.二進(jìn)制型二進(jìn)制數(shù)據(jù)類型表示的是位數(shù)據(jù)流,包括binary(固定長(zhǎng)度)和varbinary(可變長(zhǎng)度)兩種。(1)binary[(n)]:固定長(zhǎng)度的n個(gè)字節(jié)二進(jìn)制數(shù)據(jù)。n的取值范圍為1~

溫馨提示

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

評(píng)論

0/150

提交評(píng)論