版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQLServer2012實(shí)用教程
04-2月-231第1章系統(tǒng)認(rèn)識(shí)數(shù)據(jù)庫(kù)04-2月-232學(xué)習(xí)目標(biāo)掌握數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)的概念了解數(shù)據(jù)庫(kù)管理技術(shù)發(fā)展的幾個(gè)階段掌握數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)熟練掌握數(shù)據(jù)模型熟悉關(guān)系型數(shù)據(jù)庫(kù)04-2月-233學(xué)習(xí)內(nèi)容1.1數(shù)據(jù)庫(kù)系統(tǒng)介紹1.2數(shù)據(jù)模型1.3關(guān)系數(shù)據(jù)庫(kù)2/4/202341.1數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)介1.1.1數(shù)據(jù)庫(kù)的基本概念1.1.2數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)1.1.3數(shù)據(jù)庫(kù)的產(chǎn)生與發(fā)展2/4/202351.1.1數(shù)據(jù)庫(kù)的基本概念1.數(shù)據(jù)2.信息3.數(shù)據(jù)處理4.數(shù)據(jù)庫(kù)5.數(shù)據(jù)庫(kù)管理系統(tǒng)6.數(shù)據(jù)庫(kù)系統(tǒng)2/4/20236數(shù)據(jù)和信息數(shù)據(jù)(Data)是指對(duì)客觀事件進(jìn)行記錄并可以鑒別的符號(hào),是對(duì)客觀事物的性質(zhì)、狀態(tài)以及相互關(guān)系等進(jìn)行記載的物理符號(hào)或這些物理符號(hào)的組合。信息(Information)是對(duì)客觀世界中各種事物的運(yùn)動(dòng)狀態(tài)和變化的反映,是客觀事物之間相互聯(lián)系和相互作用的表征,表現(xiàn)的是客觀事物運(yùn)動(dòng)狀態(tài)和變化的實(shí)質(zhì)內(nèi)容。2/4/2023
7數(shù)據(jù)處理數(shù)據(jù)處理(DataProcessing)是對(duì)數(shù)據(jù)的采集、存儲(chǔ)、檢索、加工、變換和傳輸。數(shù)據(jù)處理的基本目的是從大量的、可能是雜亂無章的、難以理解的數(shù)據(jù)中抽取并推導(dǎo)出對(duì)于某些特定的人們來說是有價(jià)值、有意義的信息,即數(shù)據(jù)轉(zhuǎn)換成信息的過程。2/4/2023
8數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)(Database,DB)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,DBMS)位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件數(shù)據(jù)庫(kù)系統(tǒng)(DataBaseSystem,DBS)是為適應(yīng)數(shù)據(jù)處理的需要而發(fā)展起來的一種較為理想的數(shù)據(jù)處理系統(tǒng)。。2/4/2023
91.1.2數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)1.數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)2.數(shù)據(jù)庫(kù)的二級(jí)存儲(chǔ)映射2/4/2023
101.數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)數(shù)據(jù)庫(kù)的三級(jí)模式是數(shù)據(jù)庫(kù)在三個(gè)級(jí)別(層次)上的抽象,使用戶能夠邏輯地、抽象地處理數(shù)據(jù)而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的物理表示和存儲(chǔ)。數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)是指內(nèi)模式、模式和外模式。內(nèi)模式:內(nèi)模式也稱存儲(chǔ)模式,它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的內(nèi)部表示或底層描述,對(duì)應(yīng)著實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫(kù)。一個(gè)數(shù)據(jù)庫(kù)只有唯一的一個(gè)內(nèi)模式。模式:模式也稱概念模式或邏輯模式。它是對(duì)數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式,模式處于三級(jí)結(jié)構(gòu)的中間層。外模式:外模式也稱子模式或用戶模式。它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)庫(kù)的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式。2/4/2023
112.數(shù)據(jù)庫(kù)的二級(jí)存儲(chǔ)映射為了能夠在內(nèi)部實(shí)現(xiàn)數(shù)據(jù)庫(kù)的三個(gè)抽象模式的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫(kù)管理系統(tǒng)在三級(jí)模式之間提供了兩層映射模式/內(nèi)模式映射模式/內(nèi)模式映射之唯一的,它定義了數(shù)據(jù)庫(kù)的全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)數(shù)據(jù)的物理獨(dú)立性。外模式/模式映射對(duì)于每一個(gè)外模式,都有一個(gè)外模式/模式的映射。當(dāng)模式改變時(shí),通過調(diào)整外模式/模式映射做相應(yīng)的改變,從而使外模式保持不變,從而實(shí)現(xiàn)了數(shù)據(jù)的邏輯獨(dú)立性。2/4/2023
121.1.3數(shù)據(jù)庫(kù)的產(chǎn)生與發(fā)展人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段高級(jí)數(shù)據(jù)庫(kù)階段2/4/2023
131.2數(shù)據(jù)模型1.2.1數(shù)據(jù)模型的概念1.2.2常見的數(shù)據(jù)模型2/4/2023
141.2.1數(shù)據(jù)模型的概念數(shù)據(jù)模型(DataModel)是數(shù)據(jù)庫(kù)系統(tǒng)的核心與基礎(chǔ),是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,是站在計(jì)算機(jī)的角度,用模型的方法來描述數(shù)據(jù)、組織數(shù)據(jù)、處理數(shù)據(jù)的方法。數(shù)據(jù)模型由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)約束3部分組成。2/4/2023
151.2.2常見的數(shù)據(jù)模型常見的數(shù)據(jù)庫(kù)模型主要有層次模型、網(wǎng)狀模型和關(guān)系模型層次模型是指用一顆“有向樹”的數(shù)據(jù)結(jié)構(gòu)來表示表示各類實(shí)體以及實(shí)體間的聯(lián)系,樹中每一個(gè)節(jié)點(diǎn)代表一個(gè)記錄類型,樹狀結(jié)構(gòu)表示實(shí)體型之間的聯(lián)系。網(wǎng)狀模型是用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)結(jié)構(gòu)模型。關(guān)系模型是指用二維表的形式表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型。2/4/2023
161.3關(guān)系數(shù)據(jù)庫(kù)1.3.1關(guān)系數(shù)據(jù)庫(kù)的概念1.3.2關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語言SQL1.3.3常見的關(guān)系數(shù)據(jù)庫(kù)2/4/2023
171.3.1關(guān)系數(shù)據(jù)庫(kù)的概念關(guān)系數(shù)據(jù)庫(kù)是指建立在關(guān)系數(shù)據(jù)庫(kù)模型基礎(chǔ)上的數(shù)據(jù)庫(kù)。關(guān)系模型是在1970年由IBM公司有“關(guān)系數(shù)據(jù)庫(kù)之父”之稱的埃德加·弗蘭克·科德博士首先提出,一經(jīng)推出就受到了學(xué)術(shù)界和產(chǎn)業(yè)界的高度重視和廣泛響應(yīng),并在隨后的發(fā)展中得到了充分的發(fā)展并成為數(shù)據(jù)庫(kù)架構(gòu)的主流模型。2/4/2023
181.3.2關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語言SQL結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)語言是關(guān)系式數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。SQL語言包括以下3種:數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL):DROP、CREATE、ALTER等語句。數(shù)據(jù)操縱語言(DataManipulationLanguage,DML):SELECT、INSERT、UPDATE、DELETE等語句。數(shù)據(jù)控制語言(DataControlLanguage,DCL):GRANT、REVOKE、COMMIT、ROLLBACK等語句。2/4/2023
191.3.3常見的關(guān)系數(shù)據(jù)庫(kù)ACCESS數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)SQLServer數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)庫(kù)2/4/2023
20學(xué)習(xí)總結(jié)本章主要介紹了數(shù)據(jù)庫(kù)系統(tǒng)的組成及其體系結(jié)構(gòu),包括數(shù)據(jù)庫(kù)的基本概念、數(shù)據(jù)與信息的聯(lián)系、數(shù)據(jù)庫(kù)的三模式兩映射的體系結(jié)構(gòu);常見的數(shù)據(jù)模型,包括層次模型、網(wǎng)狀模型和關(guān)系模型;關(guān)系型數(shù)據(jù)庫(kù),關(guān)系模型的概念以及常見的關(guān)系數(shù)據(jù)2/4/2023
21Theend2/4/2023
22第2章初識(shí)SQLServer201204-2月-2323學(xué)習(xí)目標(biāo)了解SQLServer2012的性能和優(yōu)點(diǎn)掌握SQLServer2012的各個(gè)版本的特點(diǎn)以及安裝環(huán)境要求熟練掌握SQLServer2012的安裝方法能夠使用SQLServer2012連接數(shù)據(jù)庫(kù)服務(wù)器掌握SSMS的基本工作環(huán)境04-2月-2324學(xué)習(xí)內(nèi)容2.1SQLServer2012數(shù)據(jù)庫(kù)簡(jiǎn)介2.2SQLServer2012的安裝2.3SSMS的基本操作2/4/2023252.1SQLServer2012數(shù)據(jù)庫(kù)簡(jiǎn)介2.1.1SQLServer2012簡(jiǎn)介2.1.2SQLServer2012的新功能2.1.3SQLServer2012的版本2/4/2023262.1.1SQLServer2012簡(jiǎn)介SQLServer2012是微軟發(fā)布的重要數(shù)據(jù)平臺(tái)產(chǎn)品。SQLServer2012不僅延續(xù)現(xiàn)有數(shù)據(jù)平臺(tái)的強(qiáng)大能力,還支持云技術(shù)平臺(tái),提供了一個(gè)全面的、靈活的、可擴(kuò)展的數(shù)據(jù)庫(kù)管理平臺(tái),可以滿足成千上萬用戶的海量數(shù)據(jù)管理需求,能夠快速構(gòu)建相應(yīng)的解決方法,以實(shí)現(xiàn)私有云和共有云之間的數(shù)據(jù)擴(kuò)展和應(yīng)用的遷移。2/4/2023272.1.2SQLServer2012的新功能AlwaysOnColumnstore索引大數(shù)據(jù)支持DBA自定義服務(wù)器權(quán)限增強(qiáng)的審計(jì)功能BI語義模型SequenceObjects增強(qiáng)的PowerShell支持分布式回放(DistributedReplay)WindowsServerCore支持PowerViewSQLAzure增強(qiáng)2/4/2023
282.1.3SQLServer2012的版本根據(jù)數(shù)據(jù)庫(kù)應(yīng)用環(huán)境的不同,SQLServer2012發(fā)行了不同的版本以滿足不同的需求。SQLServer2012的版本有:企業(yè)版(SQLServer2012EnterpriseEdition)、標(biāo)準(zhǔn)版(SQLServer2012StandardEdition)、商業(yè)智能版(SQLServer2012BusinessIntelligenceEdition)、學(xué)習(xí)版(SQLServer2012ExpressEdition)、開發(fā)版(SQLServer2012DevelopEdition)和web版(SQLServer2012WebEdition)。2/4/2023
292.2SQLServer2012的安裝2.2.1SQLServer2012安裝環(huán)境要求2.2.2SQLServer2012安裝過程2.2.3SQLServer2012常用實(shí)用工具2/4/2023
302.2.1SQLServer2012安裝環(huán)境要求2/4/2023
312.2.2SQLServer2012安裝過程安裝SQLServer2012時(shí),可以根據(jù)自己的實(shí)際需求和計(jì)算機(jī)的軟硬件環(huán)境,選擇一個(gè)合適的版本進(jìn)行安裝。2/4/2023
322.2.3SQLServer2012常用實(shí)用工具SQLServer2012提供了大量的管理工具,包括SQLServer管理平臺(tái)(SQLServerManagementStudio)、商業(yè)智能開發(fā)平臺(tái)(BusinessIntelligenceDevelopmentStudio)、SQLServer管理平臺(tái)(SQLServerManagementStudio)、性能工具(SQLServerProfiler)、配置管理工具(SQLServerConfigurationManager)和數(shù)據(jù)庫(kù)引擎優(yōu)化顧問工具(DatabaseEngineTuningAdvisor)等等。2/4/2023
332.3SSMS的基本操作2.3.1SSMS的啟動(dòng)與連接2.3.2在SSMS中配置服務(wù)器屬性2.3.3查詢?cè)O(shè)計(jì)器2/4/2023
342.3.1SSMS的啟動(dòng)與連接2/4/2023
352.3.2在SSMS中配置服務(wù)器屬性2/4/2023
362.3.3查詢?cè)O(shè)計(jì)器2/4/2023
37學(xué)習(xí)總結(jié)本章主要介紹了SQLServer2012的特點(diǎn),新功能和常見版本;詳細(xì)講解了SQLServer2012企業(yè)版的安裝過程;講解SSMS(SQLServerManagementStudio)的基本操作,包括SSMS的啟動(dòng)和連接、服務(wù)器屬性的配置和查詢?cè)O(shè)計(jì)器的使用。2/4/2023
38Theend2/4/2023
39第3章數(shù)據(jù)庫(kù)的創(chuàng)建和管理04-2月-2340學(xué)習(xí)目標(biāo)初步認(rèn)識(shí)SQLServer數(shù)據(jù)庫(kù)對(duì)象了解SQLServer系統(tǒng)數(shù)據(jù)庫(kù)能夠使用SSMS創(chuàng)建、修改、重命名、刪除、收縮、分離與附加數(shù)據(jù)庫(kù)熟練掌握使用Transact-SQL創(chuàng)建、修改、重命名和刪除數(shù)據(jù)庫(kù)04-2月-2341學(xué)習(xí)內(nèi)容3.1數(shù)據(jù)庫(kù)概述3.2使用SSMS創(chuàng)建和管理數(shù)據(jù)庫(kù)3.3使用Transact-SQL創(chuàng)建和管理數(shù)據(jù)庫(kù)2/4/2023423.1數(shù)據(jù)庫(kù)概述3.1.1系統(tǒng)數(shù)據(jù)庫(kù)3.1.2數(shù)據(jù)庫(kù)對(duì)象3.1.3數(shù)據(jù)庫(kù)文件和文件組2/4/2023433.1.1系統(tǒng)數(shù)據(jù)庫(kù)SQLServer數(shù)據(jù)庫(kù)分成系統(tǒng)數(shù)據(jù)庫(kù)、示例數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)三類。其中系統(tǒng)數(shù)據(jù)庫(kù)和示例數(shù)據(jù)庫(kù)都是SQLServer安裝成功后默認(rèn)建立的,系統(tǒng)數(shù)據(jù)庫(kù)是記錄數(shù)據(jù)庫(kù)必須的信息,用戶不能直接更新其中系統(tǒng)對(duì)象(如系統(tǒng)表、系統(tǒng)存儲(chǔ)過程和目錄視圖)中的信息。示例數(shù)據(jù)庫(kù)是為了讓用戶學(xué)習(xí)SQLServer而設(shè)計(jì)的,例如ReportServer數(shù)據(jù)庫(kù),用戶可以在該數(shù)據(jù)庫(kù)上進(jìn)行任意操作。用戶數(shù)據(jù)庫(kù)是用戶根據(jù)實(shí)際需求創(chuàng)建的數(shù)據(jù)庫(kù)。SQLServer2012主要有4個(gè)系統(tǒng)數(shù)據(jù)庫(kù),master數(shù)據(jù)庫(kù)、model數(shù)據(jù)庫(kù)、msdb數(shù)據(jù)庫(kù)和tempdb數(shù)據(jù)庫(kù)。2/4/2023443.1.2數(shù)據(jù)庫(kù)對(duì)象數(shù)據(jù)庫(kù)對(duì)象是存儲(chǔ)、管理和使用數(shù)據(jù)庫(kù)的不同結(jié)構(gòu)形式,在SQLServer012的數(shù)據(jù)庫(kù)中,主要的數(shù)據(jù)庫(kù)對(duì)象包括表、視圖、索引、存儲(chǔ)過程、觸發(fā)器、用戶自定義函數(shù)、用戶和角色等等2/4/2023
453.1.3數(shù)據(jù)庫(kù)文件和文件組1.數(shù)據(jù)庫(kù)文件2/4/2023
463.1.3數(shù)據(jù)庫(kù)文件和文件組2.數(shù)據(jù)庫(kù)文件組2/4/2023
473.2使用SSMS創(chuàng)建和管理數(shù)據(jù)庫(kù)3.2.1使用SSMS創(chuàng)建數(shù)據(jù)庫(kù)3.2.2使用SSMS修改數(shù)據(jù)庫(kù)3.2.3使用SSMS重命名數(shù)據(jù)庫(kù)3.2.4使用SSMS收縮數(shù)據(jù)庫(kù)3.2.5使用SSMS分離和附加數(shù)據(jù)庫(kù)3.2.6使用SSMS刪除數(shù)據(jù)庫(kù)2/4/2023
483.2.1使用SSMS創(chuàng)建數(shù)據(jù)庫(kù)【例3.1】創(chuàng)建MX公司數(shù)據(jù)庫(kù)MXDB_New。其中主數(shù)據(jù)文件為MXDB_New.mdf.初始大小是5MB,最大文件大小為100MB,增長(zhǎng)大小是15MB,存放在D:\data文件夾。日志文件為MXDB_New_log.ldf,初始大小為2MB,最大文件大小為80MB,增長(zhǎng)大小為10%,存放在E:\log文件夾。2/4/2023
493.2.2使用SSMS修改數(shù)據(jù)庫(kù)【例3.2】修改MX公司的MXDB_New數(shù)據(jù)庫(kù)。首先將日志文件“MXDB_New_log”的最大文件大小修改為無限大,然后給數(shù)據(jù)庫(kù)增加次要數(shù)據(jù)文件MXDB_New1.ndf,初始大小是10MB,最大文件大小為100MB,增長(zhǎng)大小是5%,存放在D:\data文件夾。2/4/2023
503.2.3使用SSMS重命名數(shù)據(jù)庫(kù)【例3.3】將MX公司的MXDB_New數(shù)據(jù)庫(kù)重命名為“MXDB”。2/4/2023
513.2.4使用SSMS收縮數(shù)據(jù)庫(kù)【例3.4】為了避免存儲(chǔ)空間的浪費(fèi),現(xiàn)在對(duì)MX公司的MXDB數(shù)據(jù)庫(kù)進(jìn)行收縮操作,先進(jìn)行手動(dòng)收縮“MXDB”為60%,為了避免以后使用過程中的自動(dòng)增長(zhǎng)帶來的進(jìn)一步浪費(fèi),再設(shè)置“MXDB”數(shù)據(jù)庫(kù)為自動(dòng)收縮。2/4/2023
523.2.5使用SSMS分離和附加數(shù)據(jù)庫(kù)【例3.5】現(xiàn)在需要將該數(shù)據(jù)庫(kù)轉(zhuǎn)移到其他服務(wù)器中,必須進(jìn)行數(shù)據(jù)庫(kù)MXDB的分離與附加。2/4/2023
533.2.6使用SSMS刪除數(shù)據(jù)庫(kù)【例3.6】MX公司的數(shù)據(jù)庫(kù)服務(wù)器升級(jí)結(jié)束后,備份數(shù)據(jù)庫(kù)服務(wù)器上的MXDB數(shù)據(jù)庫(kù)已經(jīng)沒有用了,為了統(tǒng)一將其進(jìn)行刪除。1.在“對(duì)象資源管理器”中,連接到SQLServer數(shù)據(jù)庫(kù)引擎的實(shí)例,然后展開該實(shí)例。2.展開“數(shù)據(jù)庫(kù)”,右鍵單擊MXDB的數(shù)據(jù)庫(kù),在彈出的快捷菜單中選擇“刪除”,在打開的“刪除對(duì)象”對(duì)話框中,單擊“確定”按鈕,完成MXDB數(shù)據(jù)庫(kù)的刪除。2/4/2023
543.3使用Transact-SQL創(chuàng)建和管理數(shù)據(jù)庫(kù)3.3.1使用Transact-SQL創(chuàng)建數(shù)據(jù)庫(kù)3.3.2使用Transact-SQL修改數(shù)據(jù)庫(kù)3.3.3使用Transact-SQL重命名數(shù)據(jù)庫(kù)3.3.4使用Transact-SQL刪除數(shù)據(jù)庫(kù)2/4/2023
553.3.1使用Transact-SQL創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)的Transact-SQL語句是CREATEDATABASE語句,其基本語法如下:CREATEDATABASEdatabase_name[CONTAINMENT={NONE|PARTIAL}][ON[PRIMARY]<filespec>[,...n][,<filegroup>[,...n]][LOGON<filespec>[,...n]]][COLLATEcollation_name][WITH<option>[,...n]][;]<filespec>::={(NAME=logical_file_name,FILENAME={'os_file_name'|'filestream_path'}[,SIZE=size[KB|MB|GB|TB]][,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}][,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]])}2/4/2023
563.3.1使用Transact-SQL創(chuàng)建數(shù)據(jù)庫(kù)【例3.7】AIX學(xué)校要建立一個(gè)學(xué)籍管理數(shù)據(jù)庫(kù)“AIXstatus”。其中主數(shù)據(jù)文件為AIXstatus.mdf,初始大小是10MB,最大文件大小為10GB,增長(zhǎng)大小是10%,次要數(shù)據(jù)文件AIXstatus1.ndf和AIXstatus2.ndf,初始大小都是5MB,增長(zhǎng)大小是10MB,最大文件大小為無限大,所有數(shù)據(jù)文件存放在D:\data文件夾。日志文件為AIXstatus_log.ldf,初始大小為2MB,增長(zhǎng)大小為5MB,存放在E:\log文件夾。2/4/2023
573.3.1使用Transact-SQL創(chuàng)建數(shù)據(jù)庫(kù)具體操作步驟如下:1.在操作系統(tǒng)下分別創(chuàng)建“D:\data”和“E:\log”兩個(gè)文件夾。2.在SSMS中,單擊工具欄上的“新建查詢”按鈕,打開“查詢?cè)O(shè)計(jì)器”。輸入如下代碼:2/4/2023
583.3.1使用Transact-SQL創(chuàng)建數(shù)據(jù)庫(kù)2/4/2023
593.3.1使用Transact-SQL創(chuàng)建數(shù)據(jù)庫(kù)2/4/2023
603.3.2使用Transact-SQL修改數(shù)據(jù)庫(kù)2/4/2023
61創(chuàng)建數(shù)據(jù)庫(kù)的Transact-SQL語句是ALTERDATABASE語句,其基本語法如下:ALTERDATABASEdatabase_name{MODIFYNAME=new_database_name|ADDFILE<filespec>[,...n][TOFILEGROUP{filegroup_name}]|ADDLOGFILE<filespec>[,...n]|REMOVEFILElogical_file_name|MODIFYFILE<filespec>}[;]3.3.2使用Transact-SQL修改數(shù)據(jù)庫(kù)【例3.8】修改學(xué)籍管理數(shù)據(jù)庫(kù)“AIXstatus”。首先將日志文件AIXstatus_log.ldf的初始大小改為20MB;然后添加新的日志文件AIXstatus_log2.ldf,初始大小是10MB,增長(zhǎng)大小是15MB,存放在E:\log文件夾;最后將次要數(shù)據(jù)庫(kù)文件AIXstatus1.ndf刪除。具體操作步驟如下:2/4/2023
623.3.2使用Transact-SQL修改數(shù)據(jù)庫(kù)2/4/2023
633.3.3使用Transact-SQL重命名數(shù)據(jù)庫(kù)2/4/2023
64數(shù)據(jù)庫(kù)重命名除了可以用ALTERDATABASE語句外,還可以采用系統(tǒng)存儲(chǔ)過程sp_renamedb,其基本語法如下:sp_renamedb[@dbname=]'old_name',[@newname=]'new_name'3.2.3使用SSMS重命名數(shù)據(jù)庫(kù)【例3.9】AIX學(xué)校又創(chuàng)建了新的學(xué)籍管理數(shù)據(jù)庫(kù),為了不產(chǎn)生混淆,現(xiàn)在數(shù)據(jù)庫(kù)“AIXstatus”更名為“AIXstatus_old”。2/4/2023
653.3.4使用Transact-SQL刪除數(shù)據(jù)庫(kù)2/4/2023
66刪除數(shù)據(jù)庫(kù)的Transact-SQL語句是DROPDATABASE語句,其基本語法如下:DROPDATABASEdatabase_name3.3.4使用Transact-SQL刪除數(shù)據(jù)庫(kù)【例3.10】使用DROPDATABASE語句刪除“AIXstatus_old”數(shù)據(jù)庫(kù)。2/4/2023
67學(xué)習(xí)總結(jié)本章主要介紹了數(shù)據(jù)庫(kù)的創(chuàng)建和管理,包括主要的四個(gè)系統(tǒng)數(shù)據(jù)庫(kù):master數(shù)據(jù)庫(kù)、model數(shù)據(jù)庫(kù)、msdb數(shù)據(jù)庫(kù)和tempdb數(shù)據(jù)庫(kù);常見的數(shù)據(jù)庫(kù)對(duì)象,數(shù)據(jù)庫(kù)文件和文件組;重點(diǎn)講解了如何利用SSMS和Transact-SQL語句創(chuàng)建、修改、重命名、刪除數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)的分離與附加等。2/4/2023
68Theend2/4/2023
69第4章表的創(chuàng)建和管理04-2月-2370學(xué)習(xí)目標(biāo)了解SQLServer中表的基本結(jié)構(gòu)熟悉SQLServer中的各種數(shù)據(jù)類型的特點(diǎn)和用途理解主鍵約束、外鍵約束、檢查約束等等的作用熟練掌握表的創(chuàng)建和管理的方法熟練掌握表中字段的增加、修改和刪除的方法熟練掌握表中各種約束的設(shè)置和管理的方法熟練掌握創(chuàng)建和管理數(shù)據(jù)庫(kù)關(guān)系圖的方法04-2月-2371學(xué)習(xí)內(nèi)容4.1表的概述4.2使用SSMS創(chuàng)建和修改表4.3使用Transact-SQL創(chuàng)建和管理表4.4數(shù)據(jù)庫(kù)關(guān)系圖的創(chuàng)建和管理4.5使用SSMS進(jìn)行表中數(shù)據(jù)更新4.6使用Transact-SQL進(jìn)行表中數(shù)據(jù)更新2/4/2023724.1表的概述4.1.1表的基本結(jié)構(gòu)4.1.2表的類型4.1.3數(shù)據(jù)類型4.1.4表的完整性規(guī)則4.1.5表的約束2/4/2023734.1.1表的基本結(jié)構(gòu)表是組成數(shù)據(jù)庫(kù)的基本元素,是SQLServer中一個(gè)很重要的數(shù)據(jù)庫(kù)對(duì)象,用于存儲(chǔ)數(shù)據(jù)庫(kù)中所有數(shù)據(jù)。數(shù)據(jù)在表中的邏輯組織方式與在電子表格中相似,都是按行和列的格式組織的。行被稱為記錄,是組織數(shù)據(jù)的單位,列被稱為字段。每一列代表記錄的一個(gè)屬性。2/4/2023744.1.2表的類型1.系統(tǒng)表SQLServer
將定義服務(wù)器配置及其所有表的數(shù)據(jù)存儲(chǔ)在一組特殊的表中,這組表稱為系統(tǒng)表。2.臨時(shí)表臨時(shí)表有兩種類型:本地表和全局表。3.已分區(qū)表已分區(qū)表是將數(shù)據(jù)水平劃分為多個(gè)單元的表,這些單元可以分布到數(shù)據(jù)庫(kù)中的多個(gè)文件組中。
在維護(hù)整個(gè)集合的完整性時(shí),使用分區(qū)可以快速而有效地訪問或管理數(shù)據(jù)子集,從而使大型表或索引更易于管理。4.寬表
2/4/2023
754.1.3數(shù)據(jù)類型SQLServer中的數(shù)據(jù)類型分為兩種,基本數(shù)據(jù)類型(系統(tǒng)數(shù)據(jù)類型)和用戶定義數(shù)據(jù)類型。2/4/2023
76基本數(shù)據(jù)類型2/4/2023
77基本數(shù)據(jù)類型2/4/2023
78用戶定義數(shù)據(jù)類型SQLServer除了基本數(shù)據(jù)類型外,還允許用戶定義數(shù)據(jù)類型,用戶定義數(shù)據(jù)類型是數(shù)據(jù)庫(kù)開發(fā)人員建立在基本數(shù)據(jù)類型基礎(chǔ)上的,根據(jù)自己的實(shí)際需求定義符合自己開發(fā)需要的數(shù)據(jù)類型。在SQLServer中,用戶定義數(shù)據(jù)類型可以使用SSMS創(chuàng)建和Transact-SQL語句創(chuàng)建。2/4/2023
791.使用SSMS創(chuàng)建用戶定義數(shù)據(jù)類型【例4.1】在ReportServer數(shù)據(jù)庫(kù)中,創(chuàng)建用來存儲(chǔ)收集號(hào)碼信息的mobile-number用戶定義數(shù)據(jù)類型,數(shù)據(jù)類型為varchar,長(zhǎng)度為11,允許為空。2/4/2023
802.使用Transact-SQL創(chuàng)建用戶定義數(shù)據(jù)類型【例4.2】在ReportServer數(shù)據(jù)庫(kù)中,創(chuàng)建用來存儲(chǔ)郵政編碼信息的postcode用戶定義數(shù)據(jù)類型,數(shù)據(jù)類型為varchar,長(zhǎng)度為6,允許為空。2/4/2023
814.1.4表的完整性規(guī)則SQLServer數(shù)據(jù)庫(kù)提供了三種數(shù)據(jù)完整性規(guī)則:實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶自定義的完整性規(guī)則。實(shí)體完整性要求每一個(gè)表中的主鍵字段都不能為空或者重復(fù)的值。參照完整性要求參照的關(guān)系表中的屬性值必須能夠在被參照關(guān)系表找到或者取空值??梢栽诒粎⒄毡磉M(jìn)行更新、插入或刪除記錄時(shí),自動(dòng)在參照表中執(zhí)行對(duì)應(yīng)的操作。用戶定義完整性是是對(duì)數(shù)據(jù)表中字段屬性的約束,包括字段的值域、字段的類型和字段的有效規(guī)則(如小數(shù)位數(shù))等約束,是由確定關(guān)系結(jié)構(gòu)時(shí)所定義的字段的屬性決定的。2/4/2023
824.1.5表的約束約束定義了必須遵循的用戶維護(hù)數(shù)據(jù)一致性和正確性的規(guī)則,是實(shí)現(xiàn)數(shù)據(jù)完整性的重要手段,在SQLServer2012中的約束主要有:主鍵約束(PRIMARYKEYconstraint)唯一性約束(UNIQUEconstraint)檢查約束(CHECKconstraint)默認(rèn)約束(DEFAULTconstraint)外鍵約束(FOREIGNKEYconstraint)。2/4/2023
834.2使用SSMS創(chuàng)建和修改表4.2.1使用SSMS創(chuàng)建表4.2.2使用SSMS修改表字段4.2.3使用SSMS設(shè)置表約束4.2.4使用SSMS重命名表4.2.5使用SSMS刪除表2/4/2023844.2.1使用SSMS創(chuàng)建表【例4.3】ABI學(xué)校為了管理學(xué)生成績(jī),建立了一個(gè)成績(jī)管理數(shù)據(jù)庫(kù)AMDB,現(xiàn)在在該數(shù)據(jù)庫(kù)重要添加適當(dāng)?shù)谋?,并進(jìn)行優(yōu)化。首先,我們創(chuàng)建學(xué)生(student)表和班級(jí)(class)表。2/4/2023
854.2.1使用SSMS創(chuàng)建表具體操作步驟如下:1.在“對(duì)象資源管理器”中,連接到SQLServer數(shù)據(jù)庫(kù)引擎的實(shí)例,然后展開該實(shí)例。2.依次展開“數(shù)據(jù)庫(kù)”→“AMDB”,右鍵單擊數(shù)據(jù)庫(kù)的“表”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建表”。2/4/2023
864.2.2使用SSMS修改表字段【例4.4】現(xiàn)在要對(duì)成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的學(xué)生(student)表進(jìn)行字段修改,修改的內(nèi)容包括:將學(xué)生姓名stu_name字段的數(shù)據(jù)類型修改為varchar(10),然后刪除手機(jī)號(hào)碼phonenumber字段,最后為了建立參照完整性,增加班級(jí)編號(hào)Class_no字段。2/4/2023
874.2.3使用SSMS設(shè)置表約束【例4.5】現(xiàn)在要對(duì)成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的學(xué)生(student)表和班級(jí)(class)表進(jìn)行各種約束的設(shè)置,設(shè)置的內(nèi)容包括:設(shè)置學(xué)生(student)表的學(xué)號(hào)stu_no字段和班級(jí)(class)表的班級(jí)編號(hào)class_no字段為2個(gè)表的主鍵;給學(xué)生(student)表的學(xué)生性別Stu_sex字段設(shè)置檢查約束,設(shè)置只能輸入“男”或者“女”;給學(xué)生(student)表的年齡age字段設(shè)置默認(rèn)約束,默認(rèn)值為“18”;給班級(jí)(class)表的班級(jí)名稱Class_name字段設(shè)置不允許重復(fù)的唯一性約束;在兩個(gè)表之間建立外鍵約束,主鍵為班級(jí)(class)表的班級(jí)編號(hào)class_no字段,外鍵為學(xué)生(student)表的班級(jí)編號(hào)class_no字段。2/4/2023
884.2.4使用SSMS重命名表【例4.6】將ReportServer數(shù)據(jù)庫(kù)中的“Batch”表重命名為“Batch_new”。2/4/2023
894.2.5使用SSMS刪除表【例4.7】刪除ReportServer數(shù)據(jù)庫(kù)中的“Batch_new”表。具體操作步驟如下:1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→“ReportServer”→“表”→“Batch_new”2.右鍵單擊“Batch_new”表,在彈出的快捷菜單中選擇“刪除”,在打開的“刪除對(duì)象”對(duì)話框中,單擊“確定”按鈕,完成Batch_new表的刪除。2/4/2023
904.3使用Transact-SQL創(chuàng)建和管理表4.3.1使用Transact-SQL創(chuàng)建表4.3.2使用Transact-SQL修改表字段4.3.3使用Transact-SQL設(shè)置表約束4.3.4使用Transact-SQL重命名表4.3.5使用Transact-SQL刪除表2/4/2023914.3.1使用Transact-SQL創(chuàng)建表2/4/2023
92創(chuàng)建表的Transact-SQL語句是CREATETABLE語句,其基本語法如下:CREATETABLE[database_name.[schema_name].|schema_name.]table_name[column_name<data_type>[NULL|NOTNULL]|[DEFAULTconstraint_expression]|{PRIMARYKEY|UNIQUE}[CLUSTERED|NONCLUSTERED][ASC|DESC]][,...n]4.3.1使用Transact-SQL創(chuàng)建表【例4.8】成績(jī)管理數(shù)AMDB中要繼續(xù)增加新表,現(xiàn)在要增加的表是教師(teacher)表課程(course)表。2/4/2023
934.3.1使用Transact-SQL創(chuàng)建表2/4/2023
944.3.2使用Transact-SQL修改表字段2/4/2023
95修改表字段的Transact-SQL語句是ALTERTABLE語句,其基本語法如下:ALTERTABLE[database_name.[schema_name].|schema_name.]table_name{ALTERCOLUMNcolumn_name<data_type>|ADDnew_column_name<data_type>|DROPCOLUMNcolumn_name}4.3.2使用Transact-SQL修改表字段【例4.9】現(xiàn)在要對(duì)成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的教師(teacher)表進(jìn)行字段修改,修改的內(nèi)容包括:將職稱proTitle字段的數(shù)據(jù)類型修改為varchar(5);增加政治面貌polity字段,數(shù)據(jù)類型char(2),不允許為空。此外前面創(chuàng)建的學(xué)生(student)表中的年齡age字段可以由出生日期birthday字段計(jì)算獲得,因此將學(xué)生(student)表中的年齡age字段刪除。2/4/2023
964.3.3使用Transact-SQL設(shè)置表約束2/4/2023
97創(chuàng)建約束的Transact-SQL語句有兩種,一種是CREATETABLE語句,在創(chuàng)建表的時(shí)候就指定約束,另一種是ALTERTABLE語句在已建立表上進(jìn)行約束的設(shè)置,其基本語法如下:ALTERTABLE[database_name.[schema_name].|schema_name.]table_name{ADDCONSTRAINTconstraint_name<constraint_express>|DROPCONSTRAINTconstraint_name}4.3.3使用Transact-SQL設(shè)置表約束【例4.10】成績(jī)管理數(shù)據(jù)庫(kù)AMDB中要繼續(xù)增加新表,現(xiàn)在要增加的表是成績(jī)(grade)表,具體結(jié)構(gòu)如表4.9所示,然后繼續(xù)給greade表中的score字段追加檢查約束,設(shè)置條件為成績(jī)?nèi)≈禐?到100分之間。2/4/2023
984.3.4使用Transact-SQL重命名表2/4/2023
99重命名表的Transact-SQL是采用系統(tǒng)存儲(chǔ)過程sp_rename,它的功能是在當(dāng)前數(shù)據(jù)庫(kù)中更改用戶創(chuàng)建對(duì)象的名稱。此對(duì)象可以是表、索引、列、別名數(shù)據(jù)類型或Microsoft.NETFramework公共語言運(yùn)行時(shí)(CLR)用戶定義類型。其基本語法如下:sp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']4.3.4使用Transact-SQL重命名表【例4.11】將成績(jī)管理數(shù)據(jù)庫(kù)AMDB中g(shù)rade表更名為score。2/4/2023
1004.3.5使用Transact-SQL刪除表2/4/2023
101刪除表的Transact-SQL語句是DROPDATABASE語句,其基本語法如下:DROPTABLE[database_name.[schema_name].|schema_name.]table_name[,...n][;]4.3.4使用Transact-SQL重命名表【例4.12】使用DROPTABLE語句刪除ReportServer數(shù)據(jù)庫(kù)上的DataSets和ConfigurationInfo表。2/4/2023
1024.4數(shù)據(jù)庫(kù)關(guān)系圖的創(chuàng)建和管理4.4.1使用SSMS創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖4.4.2使用SSMS修改數(shù)據(jù)庫(kù)關(guān)系圖4.4.3使用SSMS刪除數(shù)據(jù)庫(kù)關(guān)系圖2/4/20231034.4.1使用SSMS創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖【例4.13】創(chuàng)建成績(jī)管理數(shù)據(jù)庫(kù)AMDB中student和class兩個(gè)參照表之間的數(shù)據(jù)庫(kù)關(guān)系圖。2/4/2023
1044.4.2使用SSMS修改數(shù)據(jù)庫(kù)關(guān)系圖【例4.14】修改成績(jī)管理數(shù)據(jù)庫(kù)AMDB中數(shù)據(jù)庫(kù)關(guān)系圖gx-1,將其他三個(gè)表也加入進(jìn)來,并添加合適的關(guān)聯(lián)。2/4/2023
1054.4.3使用SSMS刪除數(shù)據(jù)庫(kù)關(guān)系圖1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→進(jìn)行關(guān)系圖刪除的數(shù)據(jù)庫(kù)→“數(shù)據(jù)庫(kù)關(guān)系圖”。2.右鍵單擊要?jiǎng)h除的數(shù)據(jù)庫(kù)關(guān)系圖,在彈出的快捷菜單中選擇“刪除”。3.此時(shí)會(huì)顯示一條信息,提示用戶確認(rèn)刪除,選擇“是”,則刪除此數(shù)據(jù)庫(kù)關(guān)系圖。在刪除數(shù)據(jù)庫(kù)關(guān)系圖時(shí),關(guān)系圖中的數(shù)據(jù)表以及表之間的關(guān)聯(lián)并不會(huì)被刪除。2/4/2023
1064.5使用SSMS進(jìn)行表中數(shù)據(jù)更新4.5.1使用SSMS插入數(shù)據(jù)4.5.2使用SSMS更新數(shù)據(jù)4.5.3使用SSMS刪除數(shù)據(jù)2/4/20231074.5.1使用SSMS插入數(shù)據(jù)【例4.15】為成績(jī)管理數(shù)據(jù)庫(kù)AMDB中student表、class表和course表添加數(shù)據(jù)。2/4/2023
1084.5.1使用SSMS插入數(shù)據(jù)具體操作步驟如下:1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→“AMDB”→“表”。2.這三個(gè)表中student和class兩個(gè)表之間通過外鍵約束有參照完整性約束,主鍵字段是class表的class_no字段參,外鍵是student表的class_no字段,因此字輸入的時(shí)候,必須先輸入主鍵表class,然后再輸入外鍵表student,而且外鍵字段的取值范圍不能超過主鍵字段的取值范圍。因此我們決定先輸入class表的數(shù)據(jù),然后再輸入student表和course表的數(shù)據(jù)。3.右鍵單擊“class”表,在彈出的快捷菜單中選擇“編輯前200行”,,在打開的“表編輯器”中錄入數(shù)據(jù)即可。4.參照步驟3,向student表和course表添加對(duì)應(yīng)的數(shù)據(jù)。5.錄入完數(shù)據(jù)后,單擊工具欄上的“運(yùn)行”按鈕,然后關(guān)閉對(duì)應(yīng)窗口即可完成數(shù)據(jù)的添加。6.需要查看表中數(shù)據(jù)的時(shí)候,找到要查看的表,在右鍵快捷菜單中選擇“編輯前200行”即可在“表編輯器”中查看。2/4/2023
1094.5.2使用SSMS更新數(shù)據(jù)表中數(shù)據(jù)錄入后如果需要修改,可以在SSMS中進(jìn)行數(shù)據(jù)修改,具體方法如下:1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→修改表所在的數(shù)據(jù)庫(kù)→“表”。2.右鍵單擊需要進(jìn)行數(shù)據(jù)更新的表,在彈出的快捷菜單中選擇“編輯前200行”,在打開的“表編輯器”中選中要進(jìn)行更新的數(shù)據(jù)行,進(jìn)行修改即可。2/4/2023
1104.5.3使用SSMS刪除數(shù)據(jù)表中數(shù)據(jù)在使用一段時(shí)間后如果失效了就要及時(shí)刪除,可以在SSMS中進(jìn)行數(shù)據(jù)刪除,具體方法如下:1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→修改表所在的數(shù)據(jù)庫(kù)→“表”。2.右鍵單擊需要進(jìn)行數(shù)據(jù)更新的表,在彈出的快捷菜單中選擇“編輯前200行”。3.在打開的“表編輯器”中,右鍵單擊要進(jìn)行刪除的數(shù)據(jù)行,在彈出的快捷菜單中選擇“刪除”即可。2/4/2023
1114.6使用Transact-SQL進(jìn)行表中數(shù)據(jù)更新4.6.1使用Transact-SQL插入數(shù)據(jù)4.6.2使用Transact-SQL更新數(shù)據(jù)4.6.3使用Transact-SQL刪除數(shù)據(jù)2/4/20231124.6.1使用Transact-SQL插入數(shù)據(jù)2/4/2023
113向表中插入數(shù)據(jù)記錄Transact-SQL語句是INSERT語句,其基本語法如下:INSERT[INTO]table_name|view_name[(column_list)]VALUES({expression|DEFAULT|NULL}[,...n])4.6.1使用Transact-SQL插入數(shù)據(jù)【例4.16】為成績(jī)管理數(shù)據(jù)庫(kù)AMDB中teacher表添加數(shù)據(jù)。2/4/2023
1144.6.1使用Transact-SQL插入數(shù)據(jù)2/4/2023
1154.6.2使用Transact-SQL更新數(shù)據(jù)2/4/2023
116向表中更新數(shù)據(jù)記錄Transact-SQL語句是UPDATE語句,其基本語法如下:UPDATEtable_name|view_nameSETcolumn_name={expression|DEFAULT|NULL[,...n][WHERE<search_condition>]4.6.2使用Transact-SQL更新數(shù)據(jù)【例4.17】將教師teacher表中“趙琉球”教師的職稱更新為“教授”。2/4/2023
1174.6.3使用Transact-SQL刪除數(shù)據(jù)2/4/2023
118表中刪除數(shù)據(jù)記錄Transact-SQL語句是DELETE語句,其基本語法如下:DELETE[FROM]table_name|view_name[WHERE<search_condition>]4.6.3使用Transact-SQL刪除數(shù)據(jù)【例4.18】將教師teacher表中教師編號(hào)為6的記錄刪除。2/4/2023
119學(xué)習(xí)總結(jié)本章主要介紹了表的創(chuàng)建和管理,包括表的基本結(jié)構(gòu)、表的類型。數(shù)據(jù)類型、表的完整性和表的約束;使用SSMS和Transact-SQL語句創(chuàng)建表、修改表、重命名表和刪除表;創(chuàng)建和管理數(shù)據(jù)庫(kù)關(guān)系圖;在表中進(jìn)行數(shù)據(jù)更新等操作。2/4/2023
120Theend2/4/2023
121第5章索引的創(chuàng)建和管理04-2月-23122學(xué)習(xí)目標(biāo)了解索引的作用掌握索引的優(yōu)缺點(diǎn)能夠熟練利用SSMS創(chuàng)建和管理索引掌握利用Transact-SQL創(chuàng)建和管理索引04-2月-23123學(xué)習(xí)內(nèi)容5.1索引的概念5.2索引的分類5.3索引的設(shè)計(jì)原則5.4使用SSMS創(chuàng)建和管理索引2/4/20231245.1索引的概念索引是一種單獨(dú)的、存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)結(jié)構(gòu),它包含從表或視圖中一個(gè)或多個(gè)列生成的鍵,以及映射到指定數(shù)據(jù)的存儲(chǔ)位置的指針。通過創(chuàng)建設(shè)計(jì)良好的索引以支持查詢,可以顯著提高數(shù)據(jù)庫(kù)查詢和應(yīng)用程序的性能。索引可以減少為返回查詢結(jié)果集而必須讀取的數(shù)據(jù)量。索引可以強(qiáng)制表中的行具有唯一性,從而確保表數(shù)據(jù)的數(shù)據(jù)完整性。2/4/2023
1255.2索引的分類SQLServer2012提供的索引有10種,包括聚集索引、非聚集索引、唯一索引、列存儲(chǔ)索引、帶有包含列的索引、計(jì)算列上的索引、篩選索引、空間索引、XML索引和全文索引。聚集索引非聚集索引唯一索引篩選索引全文索引2/4/2023
1265.3索引的設(shè)計(jì)原則在創(chuàng)建索引之前應(yīng)仔細(xì)計(jì)劃,這樣才不會(huì)設(shè)計(jì)不佳索引影響數(shù)據(jù)庫(kù)性能,在索引設(shè)計(jì)前要完成以下任務(wù):1.了解數(shù)據(jù)庫(kù)本身的特征。2.了解最常用的查詢的特征。3.了解查詢中使用的列的特征。4.確定哪些索引選項(xiàng)可在創(chuàng)建或維護(hù)索引時(shí)提高性能。5.確定索引的最佳存儲(chǔ)位置。2/4/2023
1275.3索引的設(shè)計(jì)原則在設(shè)計(jì)索引時(shí),應(yīng)考慮以下原則:1.索引并非越多越好。2.避免對(duì)經(jīng)常更新的表進(jìn)行過多的索引,并且索引中的列盡可能少。3.數(shù)據(jù)量小的表最好不要使用索引。4.在條件表達(dá)式中經(jīng)常用到的不同值較多的列上建立索引。5.當(dāng)唯一性是某種數(shù)據(jù)本身的特性時(shí),指定唯一索引。6.在頻繁進(jìn)行排序或分組的列上建立索引。2/4/2023
1285.4使用SSMS創(chuàng)建和管理索引5.4.1使用SSMS創(chuàng)建索引5.4.2使用SSMS查看和修改索引5.4.3使用SSMS重命名索引5.4.4使用SSMS刪除索引2/4/2023
1295.4.1使用SSMS創(chuàng)建索引【例5.1】現(xiàn)在要對(duì)成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的學(xué)生(student)表進(jìn)行繼續(xù)完善,考慮到查詢學(xué)生信息的時(shí)候,要經(jīng)常通過姓名來查詢,所以在姓名stu_name字段上建立索引。2/4/2023
1305.4.2使用SSMS查看和修改索引索引創(chuàng)建之后可以根據(jù)需要對(duì)進(jìn)行查看和修改,具體過程如下:1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→索引所在數(shù)據(jù)庫(kù)→表→索引所在的表→“索引”,在“索引”節(jié)點(diǎn)下可以看到要查看或者修改的索引。2.右鍵單擊要查看或修改的索引,在彈出的快捷菜單中選擇“屬性”,也可以直接雙擊該索引,打開“索引屬性”對(duì)話框,在該對(duì)話框可以查看到表中的所有索引,也可以增加、刪除或者修改索引字段。2/4/2023
1315.4.3使用SSMS重命名索引1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→索引所在數(shù)據(jù)庫(kù)→表→索引所在的表→“索引”,在“索引”節(jié)點(diǎn)下可以看到要查看或者修改的索引。2.右鍵單擊要查看或修改的索引,在彈出的快捷菜單中選擇“重命名”,輸入新的索引名字即可。2/4/2023
1325.4.4使用SSMS刪除索引1.在“對(duì)象資源管理器”中,依次展開“服務(wù)器實(shí)例”→“數(shù)據(jù)庫(kù)”→索引所在數(shù)據(jù)庫(kù)→表→索引所在的表→“索引”,在“索引”節(jié)點(diǎn)下可以看到要查看或者修改的索引。2.右鍵單擊要查看或修改的索引,在彈出的快捷菜單中選擇“刪除”,在打開的“刪除對(duì)象”對(duì)話框中,單擊“確定”,即可完成索引的刪除。2/4/2023
1335.5使用Transact-SQL創(chuàng)建和管理索引5.5.1使用Transact-SQL創(chuàng)建索引5.5.2使用Transact-SQL查看索引5.5.3使用Transact-SQL修改索引5.5.4使用Transact-SQL重命名索引5.5.5使用Transact-SQL刪除索引2/4/20231345.5.1使用Transact-SQL創(chuàng)建索引2/4/2023
135創(chuàng)建索引的Transact-SQL語句是CREATEINDEX語句,其基本語法如下:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameON<object>(column[ASC|DESC][,...n])[INCLUDE(column_name[,...n])][WHERE<filter_predicate>][WITH(<relational_index_option>[,...n])][ON{partition_scheme_name(column_name)|filegroup_name|default}][;]5.5.1使用Transact-SQL創(chuàng)建索引【例5.2】為成績(jī)管理數(shù)據(jù)庫(kù)AMDB的course表中的course_name設(shè)置唯一性非聚集索引。2/4/2023
1365.5.2使用Transact-SQL查看索引2/4/2023
137查看索引的Transact-SQL是采用的是系統(tǒng)存儲(chǔ)過程sp_helptext,其基本語法如下:sp_helptext[@objname=]'name'[,[@columnname=]computed_column_name]5.5.2使用Transact-SQL查看索引【例5.3】用系統(tǒng)存儲(chǔ)過程sp_helpindex,查看成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的course表的索引信息。2/4/2023
1385.5.3使用Transact-SQL修改索引2/4/2023
139修改索引的Transact-SQL語句是ALTERINDEX語句,其基本語法如下:ALTERINDEX{index_name|ALL}ON<object>{REBUILD[PARTITION=ALL][WITH(<rebuild_index_option>[,...n])]|[PARTITION=partition_number[WITH(<single_partition_rebuild_index_option>)[,...n]]]|DISABLE|REORGANIZE[PARTITION=partition_number][WITH(LOB_COMPACTION={ON|OFF})]|SET(<set_index_option>[,...n])}[;]5.5.3使用Transact-SQL修改索引【例5.4】修改成績(jī)管理數(shù)據(jù)庫(kù)AMDB的course表中的索引idx_course_1,將其重新生成單個(gè)索引。2/4/2023
1405.5.4使用Transact-SQL重命名索引2/4/2023
141重命名索引的Transact-SQL采用的是系統(tǒng)存儲(chǔ)過程sp_rename,其基本語法如下:sp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']【例5.5】用系統(tǒng)存儲(chǔ)過程sp_reanme,將成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的course表的索引“idx_course_1”更名為“idx_course_wy”。2/4/2023
1425.5.5使用Transact-SQL刪除索引2/4/2023
143刪除索引的Transact-SQL語句是DROPINDEX語句,其基本語法如下:DROPINDEX[database_name.[schema_name].|schema_name.]table_or_view_name.index[,...n][;]或者DROPINDEXindexONtable_or_view_name5.5.5使用Transact-SQL刪除索引【例5.6】用Transact-SQL語句刪除成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的course表的索引“idx_course_wy”。2/4/2023
144學(xué)習(xí)總結(jié)本章主要介紹了索引的創(chuàng)建和管理,包括索引的概念、索引的分類、索引的設(shè)計(jì)原則;使用SSMS和Transact-SQL語句創(chuàng)建索引、查看和修改索引、重命名索引以及刪除索引等。2/4/2023
145Theend2/4/2023
146第6章表中數(shù)據(jù)的查詢04-2月-23147學(xué)習(xí)目標(biāo)了解SELECT語句的基本結(jié)構(gòu)熟練使用SELECT語句中各子句來檢索數(shù)據(jù)熟練使用子查詢來檢索數(shù)據(jù)掌握使用連接查詢來檢索數(shù)據(jù)04-2月-23148學(xué)習(xí)內(nèi)容6.1SELECT檢索數(shù)據(jù)6.2子查詢6.3連接查詢2/4/20231496.1SELECT檢索數(shù)據(jù)6.1.1SELECT語句的基本結(jié)構(gòu)6.1.2WITH子句6.1.3SELECT子句6.1.4FROM子句6.1.5INTO子句6.1.6WHERE子句6.1.7GROUPBY子句6.1.8HAVING子句6.1.9ORDERBY子句2/4/20231506.1.1SELECT語句的基本結(jié)構(gòu)2/4/2023
151SELECT語句主要是從數(shù)據(jù)庫(kù)中檢索行,并允許從SQLServer2012中的一個(gè)或多個(gè)表中選擇一個(gè)或多個(gè)行或列。基本結(jié)構(gòu)可歸納如下:[WITH<common_table_expression>]SELECTselect_list[INTOnew_table][FROMtable_source][WHEREsearch_condition][GROUPBYgroup_by_expression][HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]]6.1.2WITH子句WITH子句指定臨時(shí)命名的結(jié)果集,這些結(jié)果集稱為公用表表達(dá)式(CTE)。該表達(dá)式源自簡(jiǎn)單查詢,并且在單條SELECT、INSERT、UPDATE或DELETE語句的執(zhí)行范圍內(nèi)定義。該子句也可用在CREATEVIEW語句中,作為該語句的SELECT定義語句的一部分。2/4/20231526.1.2WITH子句2/4/2023
153WITH語句基本語法格式如下:[WITH<common_table_expression>[,...n]]<common_table_expression>::=expression_name[(column_name[,...n])]AS(CTE_query_definition)6.1.2WITH子句【例6.1】利用成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的teacher表的教師職稱和對(duì)應(yīng)人數(shù)來創(chuàng)建公用表表達(dá)式COUNTNUM。2/4/2023
1546.1.3SELECT子句2/4/2023
155SELECT子句指定查詢返回的列。其基本語法格式如下:SELECT[ALL|DISTINCT][TOP(expression)[PERCENT][WITHTIES]]<select_list><select_list>::={*|{table_name|view_name|table_alias}.*|{[{table_name|view_name|table_alias}.]{column_name|$IDENTITY|$ROWGUID}|udt_column_name[{.|::}{{property_name|field_name}|method_name(argument[,...n])}]|expression[[AS]column_alias]}|column_alias=expression}[,...n]6.1.3SELECT子句1.使用*和列名通配符“*”:所有字段名。查詢特定字段時(shí),要給出要查找的字段的名稱,不同字段名稱之間用“,”分隔開,最后一個(gè)字段后面不需要加逗號(hào)?!纠?.2】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表的所有數(shù)據(jù)。2/4/2023
1566.1.3SELECT子句【例6.3】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中學(xué)生的學(xué)號(hào),姓名,性別和政治面貌。2/4/2023
1576.1.3SELECT子句2.使用TOP關(guān)鍵字返回前n行使用TOPn關(guān)鍵字,n為返回的行數(shù),如果指定了TOPnPERCENT,則返回表中的前n%行?!纠?.4】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中前三行記錄的學(xué)號(hào),姓名,性別和政治面貌。2/4/2023
1586.1.3SELECT子句【例6.5】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中前50%行記錄的學(xué)號(hào),姓名,性別和政治面貌。2/4/2023
1596.1.3SELECT子句3.使用DISTINCT關(guān)鍵字取消重復(fù)SELECT語句默認(rèn)是返回所有匹配的行,即使重復(fù)數(shù)據(jù)也會(huì)被返回,為了避免重復(fù),可以使用DISTINCT關(guān)鍵字消除重復(fù)的記錄?!纠?.6】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中有幾種性別。2/4/2023
1606.1.3SELECT子句4.使用列別名SELECT語句默認(rèn)是返回的字段名稱,如果是表中原有字段則按照定義的名稱,如果是計(jì)算列,則顯示為無列名,可以給字段取一個(gè)別名來解決。別名的定義方式有以下三種: 列別名=列名 列名列別名 列名AS列別名【例6.7】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中前五行記錄的學(xué)號(hào),姓名,性別和政治面貌,并且以中文別名顯示各字段。2/4/2023
1616.1.4FROM子句2/4/2023
162FROM子句是指定使用的表、視圖、派生表和聯(lián)接表。其基本語法格式如下:[FROM{<table_source>}[,...n]]<table_source>::={table_or_view_name[[AS]table_alias][<tablesample_clause>][WITH(<table_hint>[[,]...n])]|rowset_function[[AS]table_alias][(bulk_column_alias[,...n])]|user_defined_function[[AS]table_alias]]|OPENXML<openxml_clause>}6.1.4FROM子句【例6.8】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的學(xué)生的學(xué)號(hào)、姓名、性別、班級(jí)名稱和政治面貌,其中姓名、班級(jí)、性別和政治面貌保存在學(xué)生表,班級(jí)名稱保持在班級(jí)表,兩個(gè)表都有班級(jí)編號(hào)字段。2/4/2023
1636.1.5INTO子句2/4/2023
164INTO子句是創(chuàng)建新表并將并將來自查詢的結(jié)果行插入該表中。其基本語法格式如下:[INTOnew_table]6.1.5INTO子句【例6.9】使用INTO子句創(chuàng)建一個(gè)新表,student_new,表中包含student表中所有女生的學(xué)號(hào)、姓名、性別和政治面貌。2/4/2023
1656.1.6WHERE子句2/4/2023
166WHERE子句是指定查詢返回的行的搜索條件。其基本語法格式如下:[WHERE<search_condition>]<search_condition>::={[NOT]<predicate>|(<search_condition>)}[{AND|OR}[NOT]{<predicate>|(<search_condition>)}][,...n]<predicate>::={expression{=|<>|!=|>|>=|!>|<|<=|!<}expression|string_expression[NOT]LIKEstring_expression[ESCAPE'escape_character']|expression[NOT]BETWEENexpressionANDexpression|expressionIS[NOT]NULL|CONTAINS({column|*},'<contains_search_condition>')|FREETEXT({column|*},'freetext_string')|expression[NOT]IN(subquery|expression[,...n])|expression{=|<>|!=|>|>=|!>|<|<=|!<}{ALL|SOME|ANY}(subquery)|EXISTS(subquery)}6.1.6WHERE子句1.使用關(guān)系表達(dá)式WHERE子句中,關(guān)系表達(dá)式由運(yùn)算符和列組成,可用于列值的大小關(guān)系的判斷?!纠?.10】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中班號(hào)是5602的同學(xué)記錄。2/4/2023
1676.1.6WHERE子句2.使用邏輯運(yùn)算符WHERE子句中,如果想把幾個(gè)單一條件組成一個(gè)復(fù)合條件,這就需要使用邏輯運(yùn)算符AND、OR和NOT?!纠?.11】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中男團(tuán)員同學(xué)記錄。2/4/2023
1686.1.6WHERE子句【例6.12】查詢成績(jī)管理數(shù)據(jù)庫(kù)AMDB中的student表中男生和團(tuán)員同學(xué)記錄。2/4/2023
1696.1.6WHERE子句3.使用BETWEEN關(guān)鍵字WHERE子句中,BETWEEN…AND和NOT…BETWEEN…AND來指定范圍條件。使用BETWEENAND檢索條件時(shí),指定的第一個(gè)值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育機(jī)構(gòu)校園裝修工程協(xié)議書2篇
- 二零二五年度個(gè)人教育培訓(xùn)資金延期使用合同4篇
- 二零二五年度高端建筑涂料工程分包合同標(biāo)準(zhǔn)版3篇
- 二零二五年度個(gè)人肖像權(quán)授權(quán)使用合同音樂MV個(gè)人形象使用4篇
- 清潔能源技術(shù)轉(zhuǎn)讓合同
- 快遞合作合同
- 二零二五年度集體土地承包經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同范本3篇
- 2025版水電節(jié)能改造與咨詢服務(wù)協(xié)議3篇
- 代收款協(xié)議書范本
- 決策咨詢常年顧問服務(wù)合同
- 煤礦反三違培訓(xùn)課件
- 向流程設(shè)計(jì)要效率
- 安全文明施工的管理要點(diǎn)
- 2024年中國(guó)航空發(fā)動(dòng)機(jī)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 當(dāng)代中外公司治理典型案例剖析(中科院研究生課件)
- GMP-基礎(chǔ)知識(shí)培訓(xùn)
- 動(dòng)力管道設(shè)計(jì)手冊(cè)-第2版
- 2022年重慶市中考物理試卷A卷(附答案)
- Python繪圖庫(kù)Turtle詳解(含豐富示例)
- 煤礦機(jī)電設(shè)備檢修技術(shù)規(guī)范完整版
- 榆林200MWp并網(wǎng)光伏發(fā)電項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論