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

下載本文檔

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

文檔簡介

第1章

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

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

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

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

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

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

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

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

sqlservr.exe

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

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

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

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

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

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

[PRIMARY][<文件項>,...][,<文件組項>,...]

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

NAME=邏輯名稱,

FILENAME={'含路徑文件名'|'filestream存儲路徑'}

[,SIZE=文件初始容量]

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

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

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

MB增長。語句如下: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ù)庫【例2.2】創(chuàng)建一個名為test2的數(shù)據(jù)庫,它有兩個數(shù)據(jù)文件,其中主數(shù)據(jù)文件為20MB,最大不限,按10%增長。1個輔助數(shù)據(jù)文件為20MB,最大不限,按10%增長;有1個日志文件,為50MB,最大為100MB,按10MB增長。語句如下: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ù)庫【例2.3】創(chuàng)建一個具有2個文件組的數(shù)據(jù)庫test3。主文件組包括文件test3_dat1,文件初始大小為20MB,最大為60MB,按5MB增長。文件組test3Group1包括文件test3_dat2,文件初始大小為10MB,最大為30MB,按10%增長。語句如下: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ù)庫數(shù)據(jù)庫文件選項數(shù)據(jù)庫文件組選項數(shù)據(jù)庫選項修改數(shù)據(jù)庫實例修改數(shù)據(jù)庫已經(jīng)創(chuàng)建的數(shù)據(jù)庫可以修改它的屬性。語法格式如下:ALTERDATABASE數(shù)據(jù)庫名{ ADDFILE<文件選項>...[TOFILEGROUP文件組名] /*在文件組中增加數(shù)據(jù)文件*/ |ADDLOGFILE<文件選項>... /*增加日志文件*/ |REMOVEFILE邏輯文件名 /*刪除數(shù)據(jù)文件*/ |ADDFILEGROUP文件組名[……] /*增加文件組*/ |REMOVEFILEGROUP文件組名 /*刪除文件組*/ |MODIFYFILE<文件選項> /*更改文件屬性*/ |MODIFYNAME=新數(shù)據(jù)庫名 /*數(shù)據(jù)庫更名*/ |MODIFYFILEGROUP文件組名 {

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

數(shù)據(jù)庫創(chuàng)建——創(chuàng)建數(shù)據(jù)庫綜合01命令方式創(chuàng)建數(shù)據(jù)庫命令方式創(chuàng)建數(shù)據(jù)庫【例2.7】按照下列要求創(chuàng)建學(xué)生成績數(shù)據(jù)庫,數(shù)據(jù)庫名xscj。(1)創(chuàng)建學(xué)生成績數(shù)據(jù)庫xscj,初始文件大小為100MB,按照10%增長,占用最大空間沒有限制。日志文件大小為20MB,按照5MB增長,占用最大空間不超過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ù)庫(2)在數(shù)據(jù)庫xscj中增加文件組fgroup1、fgroup2、fgroup3和fgroup4。ALTERDATABASExscjADDFILEGROUPfgroup1ALTERDATABASExscjADDFILEGROUPfgroup2ALTERDATABASExscjADDFILEGROUPfgroup3ALTERDATABASExscjADDFILEGROUPfgroup4GO(3)給文件組fgroup1、fgroup2、fgroup3和fgroup4增加對應(yīng)數(shù)據(jù)文件。(4)在對象資源管理器中查看xscj數(shù)據(jù)庫屬性。包括常規(guī)、文件組和文件。02界面方式創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫修改數(shù)據(jù)庫屬性增加或刪除數(shù)據(jù)文件刪除數(shù)據(jù)文件增加或刪除文件組數(shù)據(jù)庫重命名數(shù)據(jù)庫的刪除界面方式創(chuàng)建數(shù)據(jù)庫1.創(chuàng)建數(shù)據(jù)庫【例2.8】創(chuàng)建數(shù)據(jù)庫xscj,數(shù)據(jù)文件和日志文件的屬性按默認(rèn)值設(shè)置。系統(tǒng)對數(shù)據(jù)文件的默認(rèn)值為:初始大小3MB;最大容量不限(僅受硬盤空間的限制);允許數(shù)據(jù)庫自動增長,增量為1MB;日志文件初始大小1MB,最大容量不限(僅受硬盤空間的限制),允許日志文件自動增長,增長方式為按10%比例增長。(1)在SSMS的“對象資源管理器”中,選擇“數(shù)據(jù)庫”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”菜單項,打開“新建數(shù)據(jù)庫”窗口。

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

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

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

號姓名性別出生日期專

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

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

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

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

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

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

263~263

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

231~231

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

215~215

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

263~263

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論