《SQL Server數(shù)據(jù)庫(kù)應(yīng)用》課件全套 項(xiàng)目1-8 構(gòu)建 SQL Server 環(huán)境 -設(shè)計(jì)與實(shí)現(xiàn)政務(wù)平臺(tái)數(shù)據(jù)庫(kù)_第1頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用》課件全套 項(xiàng)目1-8 構(gòu)建 SQL Server 環(huán)境 -設(shè)計(jì)與實(shí)現(xiàn)政務(wù)平臺(tái)數(shù)據(jù)庫(kù)_第2頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用》課件全套 項(xiàng)目1-8 構(gòu)建 SQL Server 環(huán)境 -設(shè)計(jì)與實(shí)現(xiàn)政務(wù)平臺(tái)數(shù)據(jù)庫(kù)_第3頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用》課件全套 項(xiàng)目1-8 構(gòu)建 SQL Server 環(huán)境 -設(shè)計(jì)與實(shí)現(xiàn)政務(wù)平臺(tái)數(shù)據(jù)庫(kù)_第4頁(yè)
《SQL Server數(shù)據(jù)庫(kù)應(yīng)用》課件全套 項(xiàng)目1-8 構(gòu)建 SQL Server 環(huán)境 -設(shè)計(jì)與實(shí)現(xiàn)政務(wù)平臺(tái)數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩384頁(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)介

項(xiàng)目一構(gòu)建SQLServer環(huán)境1任務(wù)1認(rèn)識(shí)SQLServer任務(wù)2安裝SQLServer2022任務(wù)3連接數(shù)據(jù)庫(kù)服務(wù)器和啟動(dòng)SSMS2認(rèn)識(shí)SQLServer任務(wù)1

31.?能獨(dú)立搜索官方SQL?Server下載網(wǎng)站。2.?能獨(dú)立完成計(jì)算機(jī)軟件與硬件配置的檢查,列出與SQL?Server軟件相關(guān)的檢

測(cè)單。3.?能依據(jù)檢測(cè)單要求,選擇SQL?Server軟件的版本。4本學(xué)期學(xué)院信息中心配置了一臺(tái)臺(tái)式計(jì)算機(jī),作為教學(xué)資料的服務(wù)器,需要安裝SQLServer2022。根據(jù)安裝SQLServer2022的計(jì)算機(jī)硬件、軟件檢測(cè)單,檢測(cè)當(dāng)前計(jì)算機(jī)的硬件、軟件情況,判定是否符合安裝SQLServer2022的標(biāo)準(zhǔn),填寫檢測(cè)結(jié)果。5安裝SQL?Server?2022的計(jì)算機(jī)硬件、軟件檢測(cè)單6一、數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)1.?數(shù)據(jù)數(shù)據(jù)(data)是描述事物的符號(hào)記錄。在計(jì)算機(jī)中,各種字母、數(shù)字、語(yǔ)音、圖形、圖像等統(tǒng)稱為數(shù)據(jù),經(jīng)過(guò)數(shù)字化處理后存儲(chǔ)在計(jì)算機(jī)中。數(shù)據(jù)是數(shù)據(jù)庫(kù)存儲(chǔ)的對(duì)象,也是數(shù)據(jù)庫(kù)管理系統(tǒng)處理的對(duì)象。2.?數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(database,DB)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的結(jié)構(gòu)化數(shù)據(jù)集合。73.?數(shù)據(jù)庫(kù)管理工具數(shù)據(jù)庫(kù)管理工具(SQLservermanagementstudio,SSMS)是一種集成環(huán)境,是用于配置、監(jiān)視和管理SQLServer和數(shù)據(jù)庫(kù)實(shí)例的工具。在SSMS中,可以實(shí)現(xiàn)以下操作。(1)數(shù)據(jù)庫(kù)操作,如創(chuàng)建數(shù)據(jù)庫(kù)、分離和附加數(shù)據(jù)庫(kù)、備份和還原數(shù)據(jù)庫(kù)等。(2)表操作,如新建數(shù)據(jù)表、修改數(shù)據(jù)表、查看數(shù)據(jù)表等。(3)安全性操作,如登錄名管理、服務(wù)器角色管理、數(shù)據(jù)庫(kù)角色管理等。(4)資源管理操作,如策略管理、數(shù)據(jù)收集、維護(hù)計(jì)劃等。84.?數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(databasemanagementsystem,DBMS)是位于用戶和操作系統(tǒng)之間的用于建立、使用、維護(hù)數(shù)據(jù)庫(kù)的系統(tǒng)軟件,DBMS為用戶或應(yīng)用程序提供訪問(wèn)數(shù)據(jù)庫(kù)的方法,包括數(shù)據(jù)庫(kù)的建立、查詢、更新及各種數(shù)據(jù)控制方法。數(shù)據(jù)庫(kù)管理系統(tǒng)的主要類型包括層次數(shù)據(jù)庫(kù)管理系統(tǒng)、網(wǎng)狀數(shù)據(jù)庫(kù)管理系統(tǒng)、關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。9(1)數(shù)據(jù)庫(kù)管理系統(tǒng)的功能1)數(shù)據(jù)庫(kù)定義功能數(shù)據(jù)庫(kù)定義功能是數(shù)據(jù)庫(kù)管理系統(tǒng)面向用戶的功能,它通過(guò)數(shù)據(jù)定義語(yǔ)言(datadefinitionlanguage,DDL),對(duì)數(shù)據(jù)庫(kù)中的各種數(shù)據(jù)對(duì)象進(jìn)行定義,從而保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的完整性規(guī)則。2)數(shù)據(jù)操作功能數(shù)據(jù)操作功能也是數(shù)據(jù)庫(kù)管理系統(tǒng)面向用戶的功能,數(shù)據(jù)庫(kù)管理系統(tǒng)通過(guò)數(shù)據(jù)操縱語(yǔ)言(datamanipulationlanguage,DML),對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象進(jìn)行各種操作,如數(shù)據(jù)的查詢、插入、修改和刪除等。103)數(shù)據(jù)庫(kù)運(yùn)行管理功能數(shù)據(jù)庫(kù)運(yùn)行管理功能是指數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的保護(hù)功能,此功能是數(shù)據(jù)庫(kù)管理系統(tǒng)的核心部分,包括并發(fā)控制、安全性控制、完整性約束、數(shù)據(jù)庫(kù)內(nèi)容維護(hù)與恢復(fù)等,所有數(shù)據(jù)庫(kù)操作都要在控制程序的統(tǒng)一管理和控制下執(zhí)行。4)數(shù)據(jù)庫(kù)維護(hù)功能數(shù)據(jù)庫(kù)維護(hù)功能包括數(shù)據(jù)庫(kù)數(shù)據(jù)的導(dǎo)入、轉(zhuǎn)儲(chǔ)、恢復(fù)、重新組織、性能監(jiān)視和分析功能等,這些功能通常由數(shù)據(jù)庫(kù)管理系統(tǒng)的應(yīng)用程序提供給數(shù)據(jù)庫(kù)管理員。11(2)數(shù)據(jù)庫(kù)管理系統(tǒng)的組成1)數(shù)據(jù)定義語(yǔ)言,它用來(lái)定義數(shù)據(jù)庫(kù)的結(jié)構(gòu)。2)數(shù)據(jù)操縱語(yǔ)言,它用來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的基本操作。3)數(shù)據(jù)控制功能模塊,它通過(guò)對(duì)數(shù)據(jù)的安全性、完整性和并發(fā)控制等,對(duì)數(shù)據(jù)庫(kù)運(yùn)行進(jìn)行控制和管理,以確保數(shù)據(jù)正確、有效。4)應(yīng)用程序如數(shù)據(jù)轉(zhuǎn)儲(chǔ)程序、數(shù)據(jù)恢復(fù)程序、數(shù)據(jù)轉(zhuǎn)換程序等,數(shù)據(jù)庫(kù)管理員可以利用應(yīng)用程序完成數(shù)據(jù)庫(kù)的維護(hù)與管理。125.?數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)(databasesystem,DBS)是指引入數(shù)據(jù)庫(kù)技術(shù)后的整個(gè)計(jì)算機(jī)系統(tǒng),由數(shù)據(jù)庫(kù)(數(shù)據(jù))、數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)、計(jì)算機(jī)硬件、操作系統(tǒng)、數(shù)據(jù)庫(kù)管理員組成。數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)包括數(shù)據(jù)結(jié)構(gòu)化,數(shù)據(jù)的共享性高、冗余少、易擴(kuò)充,數(shù)據(jù)的獨(dú)立性高,數(shù)據(jù)由數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)一管理和控制等。13二、SQLServer的基礎(chǔ)知識(shí)SQLServer是一種用于存儲(chǔ)和管理結(jié)構(gòu)化數(shù)據(jù)的軟件,可用于處理大型數(shù)據(jù)集和復(fù)雜的數(shù)據(jù)操作。1.?SQL?Server?2022?的功能(1)云連接功能SQLServer2022具有云連接功能,可與Azure(微軟的云服務(wù)平臺(tái))云端服務(wù)連接,提供托管式災(zāi)難恢復(fù)、接近實(shí)時(shí)的數(shù)據(jù)分析、增強(qiáng)的數(shù)據(jù)安全保障,以及更新的許可政策。14(2)智能查詢功能SQLServer2022具有智能查詢功能,無(wú)須修改代碼即可優(yōu)化查詢速度,通過(guò)下一代查詢處理技術(shù),可以顯著增強(qiáng)系統(tǒng)的查詢性能。(3)防篡改功能SQLServer2022具有防篡改功能,它利用區(qū)塊鏈技術(shù)來(lái)保護(hù)數(shù)據(jù)的完整性,其核心是使用區(qū)塊鏈技術(shù)來(lái)確保數(shù)據(jù)庫(kù)中的數(shù)據(jù)不可篡改,適用于管理財(cái)務(wù)、醫(yī)療或其他敏感數(shù)據(jù)。152.?SQL?Server?2022的版本SQLServer2022的版本與特點(diǎn)見下表。16SQL?Server?2022的版本與特點(diǎn)三、SQLServer2022配置管理器SQLServer2022配置管理器用于管理與SQLServer關(guān)聯(lián)的服務(wù)、配置SQLServer2022使用的網(wǎng)絡(luò)協(xié)議及從客戶端計(jì)算機(jī)管理網(wǎng)絡(luò)連接配置。SQLServer2022配置管理器隨SQLServer2022一起安裝,它是一種可以通過(guò)“開始”菜單訪問(wèn)的Microsoft管理控制臺(tái)單元。Microsoft管理控制臺(tái)(mmc.exe)使用SQLServerManager<version.msc>文件[對(duì)于SQLServer2016(16.x),則使用sqlServerManager16.msc文件]打開ConfigurationManager。SQLServer各版本與配置管理器的對(duì)應(yīng)關(guān)系見下表。1718SQL?Server各版本與配置管理器的對(duì)應(yīng)關(guān)系安裝SQLServer2022任務(wù)2

191.?能獨(dú)立找到SQL?Server?2022的官方下載鏈接,并正確下載安裝包。2.?能獨(dú)立安裝SQL?Server?2022的數(shù)據(jù)庫(kù)引擎,并登錄數(shù)據(jù)庫(kù)服務(wù)器。3.?能獨(dú)立安裝SSMS,并敘述窗口各部分的名稱。20在上一任務(wù)中,經(jīng)過(guò)檢測(cè),確認(rèn)該計(jì)算機(jī)可以安裝SQLServer2022。本任務(wù)要求在微軟官網(wǎng)上找到下載鏈接,下載SQLServer2022Developer,安裝SQLServer2022數(shù)據(jù)庫(kù)引擎和SSMS,并連接到數(shù)據(jù)庫(kù)服務(wù)器,“連接到服務(wù)器”對(duì)話框如圖所示。21“連接到服務(wù)器”對(duì)話框一、軟件下載頁(yè)面SQLServer2022Developer的官網(wǎng)下載頁(yè)面如圖所示。SQLServer2022Developer是一個(gè)全功能免費(fèi)版本,用于在非生產(chǎn)環(huán)境下開發(fā)和測(cè)試數(shù)據(jù)庫(kù),SQLServer2022Express是SQLServer2022的另一個(gè)免費(fèi)版本,適用于桌面、Web和小型服務(wù)器應(yīng)用程序的開發(fā)和生產(chǎn)。22SQL?Server?2022?Developer

的官網(wǎng)下載頁(yè)面

二、SQLServer2022安裝的基礎(chǔ)知識(shí)1.?安裝類型如圖所示,SQLServer2022的安裝有基本、自定義、下載介質(zhì)3種類型?!盎尽笨梢园惭b帶默認(rèn)配置的SQLServer數(shù)據(jù)庫(kù)引擎功能;“自定義”可以根據(jù)向?qū)瓿砂惭b;“下載介質(zhì)”是先下載完整的SQLServer安裝包,再進(jìn)行安裝。23選擇安裝類型如圖所示為SQLServer媒體下載目標(biāo)位置,即默認(rèn)安裝位置。24SQL?Server媒體下載目標(biāo)位置2.?SQL?Server安裝中心在安裝SQLServer2022的過(guò)程中,可以使用如圖所示的SQLServer安裝中心窗口進(jìn)行安裝的有關(guān)工作,并可以查閱相應(yīng)的資料說(shuō)明。25SQL?Server?安裝中心窗口

連接數(shù)據(jù)庫(kù)服務(wù)器和啟動(dòng)SSMS任務(wù)3

261.?能正確連接SQL?Server數(shù)據(jù)庫(kù)服務(wù)器,并查看其啟動(dòng)過(guò)程和相關(guān)配置。2.?能使用連接字符串、用戶名和密碼等信息,成功連接到SQL?Server數(shù)據(jù)庫(kù)服務(wù)器。3.?能查閱連接數(shù)據(jù)庫(kù)服務(wù)器的安全性要求,列出安全措施清單。4.?能正確啟動(dòng)SSMS,解決連接問(wèn)題、排除故障,保證數(shù)據(jù)庫(kù)服務(wù)器穩(wěn)定、正常運(yùn)行。27在前面的任務(wù)中,已經(jīng)安裝了SQLServer2022數(shù)據(jù)庫(kù)引擎與SQLServer管理工具,為了能創(chuàng)建教學(xué)數(shù)據(jù)庫(kù),需要連接數(shù)據(jù)庫(kù)服務(wù)器?,F(xiàn)要求首先啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器上的服務(wù),然后打開SSMS,

在“MicrosoftSQLServerManagementStudio”窗口中,輸入正確的服務(wù)器名稱、身份驗(yàn)證方式、用戶名和密碼等信息。連接數(shù)據(jù)庫(kù)服務(wù)器時(shí),觀察連接過(guò)程中是否有錯(cuò)誤或警告消息,如果沒有說(shuō)明連接成功,如圖所示。28數(shù)據(jù)庫(kù)服務(wù)器連接成功29一、mssqlserver服務(wù)1.?數(shù)據(jù)庫(kù)服務(wù)器的功能(1)管理功能,包括系統(tǒng)配置與管理、數(shù)據(jù)存取與更新管理、數(shù)據(jù)完整性管理和數(shù)據(jù)安全性管理。(2)查詢和操縱功能,包括數(shù)據(jù)庫(kù)檢索和修改。(3)維護(hù)功能,包括數(shù)據(jù)導(dǎo)入導(dǎo)出管理、數(shù)據(jù)庫(kù)結(jié)構(gòu)維護(hù)、數(shù)據(jù)恢復(fù)和性能監(jiān)測(cè)。(4)數(shù)據(jù)庫(kù)并行運(yùn)行功能,即能處理多個(gè)事件同時(shí)發(fā)生的功能。302.?數(shù)據(jù)庫(kù)服務(wù)器啟動(dòng)服務(wù)的方法(1)通過(guò)命令行啟動(dòng)在桌面上右擊“開始”菜單,選擇“以管理員身份運(yùn)行”選項(xiàng),打開命令提示符窗口,輸入“netstartmssqlserver”命令,并按Enter鍵執(zhí)行。若提示“請(qǐng)求的服務(wù)已經(jīng)啟動(dòng)”,則表示服務(wù)啟動(dòng)成功。在默認(rèn)情況下,請(qǐng)求服務(wù)計(jì)算機(jī)自動(dòng)啟動(dòng),無(wú)須手動(dòng)啟動(dòng)。31(2)通過(guò)用戶界面啟動(dòng)如果操作系統(tǒng)不提供“SQLServerConfigurationManager”的配置管理器菜單,需要單擊

按鈕,在文本框中輸入“SQLServerManager16.msc”,然后單擊“打開”按鈕,彈出如圖所示的“SqlServerConfigurationManager”窗口。32“Sql?Server?Configuration?Manager”窗口在上圖中,單擊左側(cè)的“SQLServer服務(wù)”選項(xiàng),在右側(cè)的窗格中,可以看到SQLServer(MSSQLSERVER)的服務(wù)狀態(tài)為“正在運(yùn)行”。

如果是其他狀態(tài),右擊

“SQLServer

(MSSQLSERVER)”選項(xiàng),在彈出的快捷菜單中可以選擇“停止”“暫停”“重新啟動(dòng)”等選項(xiàng),若選擇“重新啟動(dòng)”選項(xiàng),mssqlserver服務(wù)會(huì)重新啟動(dòng),啟動(dòng)后可以觀察到其“狀態(tài)”為“正在運(yùn)行”。33二、檢測(cè)mssqlserver服務(wù)檢查mssqlserver服務(wù)是否啟動(dòng)有以下幾種方法。第1種方法是打開SQLServer配置管理窗口,在圖形界面中查看服務(wù),SQLServer配置管理窗口如上圖所示。第2種方法是在打開的命令行窗口中輸入“netstart|find"SQLServer(MSSQLSERVER)"”命令后按Enter鍵,如果MSSQLSERVER服務(wù)正在運(yùn)行,將看到相關(guān)的信息。

34第3種方法是在打開的命令行窗口中輸入“scqueryMSSQLSERVER”命令后按Enter鍵,命令行窗口如圖所示,提示服務(wù)正在運(yùn)行。如果要在網(wǎng)絡(luò)上使用服務(wù),可使用命令“netstat-a-n|find"1433"”查看TCP端口1433是否打開。TCP/IP啟用后,才能允許通過(guò)網(wǎng)絡(luò)訪問(wèn)該數(shù)據(jù)庫(kù)。命令netstat表示查看網(wǎng)絡(luò)連接,參數(shù)

-a表示顯示所有連接,參數(shù)

-n表示以數(shù)字形式顯示地址和端口號(hào)。35命令行窗口項(xiàng)目二創(chuàng)建數(shù)據(jù)庫(kù)36任務(wù)1創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)任務(wù)2通過(guò)SSMS窗口創(chuàng)建數(shù)據(jù)表任務(wù)3通過(guò)T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)表37任務(wù)4設(shè)置約束創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)任務(wù)1

381.?了解數(shù)據(jù)庫(kù)的基本概念和結(jié)構(gòu)。2.?能通過(guò)SSMS窗口創(chuàng)建、修改、刪除數(shù)據(jù)庫(kù)。3.?了解T-SQL語(yǔ)句的基本語(yǔ)法和特性、數(shù)據(jù)類型、操作符等。4.?能使用CREATE?DATABASE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù),能使用ALTER?DATABASE語(yǔ)句修改數(shù)據(jù)庫(kù),能使用DROP?DATABASE語(yǔ)句刪除數(shù)據(jù)庫(kù)。39在前面的任務(wù)中已經(jīng)安裝了SSMS,現(xiàn)要求使用SSMS窗口和T-SQL語(yǔ)句兩種方式創(chuàng)建如圖所示的教學(xué)數(shù)據(jù)庫(kù)ssts,并進(jìn)行簡(jiǎn)單的修改和刪除操作。40教學(xué)數(shù)據(jù)庫(kù)ssts一、SQLServer2022數(shù)據(jù)庫(kù)的結(jié)構(gòu)SQLServer2022數(shù)據(jù)庫(kù)可按表結(jié)構(gòu)、視圖結(jié)構(gòu)和索引結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù)。表結(jié)構(gòu)中的表是由行和列構(gòu)成的二維表。為了標(biāo)識(shí)表,SQLServer2022數(shù)據(jù)庫(kù)中的每個(gè)表都有一個(gè)名字,稱為表名。視圖結(jié)構(gòu)是一個(gè)虛表,對(duì)視圖的數(shù)據(jù)不進(jìn)行實(shí)際存儲(chǔ),數(shù)據(jù)庫(kù)中只存儲(chǔ)視圖的定義。在對(duì)視圖的數(shù)據(jù)進(jìn)行操作時(shí),系統(tǒng)根據(jù)視圖的定義操作與視圖相關(guān)聯(lián)的基本表。索引結(jié)構(gòu)是對(duì)數(shù)據(jù)表中一個(gè)或多個(gè)列的值進(jìn)行排序的結(jié)構(gòu)。411.?創(chuàng)建數(shù)據(jù)庫(kù)的注意事項(xiàng)若要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù),必須至少擁有CREATEDATABASE、CREATEANYDATABASE或ALTERANYDATABASE的權(quán)限。創(chuàng)建數(shù)據(jù)庫(kù)的用戶將成為該數(shù)據(jù)庫(kù)的所有者,應(yīng)合理安排數(shù)據(jù)庫(kù)文件和日志文件的存放目錄,準(zhǔn)確估計(jì)數(shù)據(jù)庫(kù)文件的大小和增長(zhǎng)限度。數(shù)據(jù)庫(kù)命名必須遵循標(biāo)識(shí)符指定的規(guī)則。422.?數(shù)據(jù)庫(kù)的三要素(1)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用于描述數(shù)據(jù)的靜態(tài)特性,它是所研究的對(duì)象類型的集合。(2)數(shù)據(jù)操作數(shù)據(jù)操作是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象的實(shí)例允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。43(3)完整性約束完整性約束是指一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和存儲(chǔ)規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。在關(guān)系模型中,一般關(guān)系必須滿足實(shí)體完整性和參照完整性兩個(gè)條件。44二、創(chuàng)建數(shù)據(jù)庫(kù)的方法在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),可以使用SSMS窗口創(chuàng)建(即通過(guò)界面方式創(chuàng)建),也可以使用T-SQL語(yǔ)句創(chuàng)建(即通過(guò)命令方式創(chuàng)建)。如果有備份的數(shù)據(jù)庫(kù),可以通過(guò)還原數(shù)據(jù)庫(kù)的方法來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。如果有數(shù)據(jù)庫(kù)的創(chuàng)建腳本,可以通過(guò)執(zhí)行腳本的方法來(lái)實(shí)現(xiàn)。如果有現(xiàn)成的被分離的數(shù)據(jù)庫(kù),可以通過(guò)附加數(shù)據(jù)庫(kù)的方法來(lái)實(shí)現(xiàn)。如果是創(chuàng)建與其他服務(wù)器相同數(shù)據(jù)庫(kù)類型而版本不同的數(shù)據(jù)庫(kù),可以通過(guò)先將其轉(zhuǎn)成腳本,再?gòu)?fù)制到本機(jī),修改腳本后,再執(zhí)行腳本的方法來(lái)實(shí)現(xiàn)。45三、SQLServer2022系統(tǒng)數(shù)據(jù)庫(kù)在SQLServer2022中有4個(gè)系統(tǒng)數(shù)據(jù)庫(kù),如圖所示。464個(gè)系統(tǒng)數(shù)據(jù)庫(kù)1.?master數(shù)據(jù)庫(kù)master數(shù)據(jù)庫(kù)是SQLServer2022系統(tǒng)最重要的數(shù)據(jù)庫(kù),它記錄了SQLServer2022系統(tǒng)的所有系統(tǒng)信息。這些系統(tǒng)信息包括所有的登錄信息、系統(tǒng)設(shè)置信息、SQLServer2022系統(tǒng)的初始化信息和其他系統(tǒng)數(shù)據(jù)庫(kù)及用戶數(shù)據(jù)庫(kù)的相關(guān)信息。472.?model數(shù)據(jù)庫(kù)model數(shù)據(jù)庫(kù)用于在SQLServer2022實(shí)例上創(chuàng)建所有數(shù)據(jù)庫(kù)的模板。因?yàn)槊看螁?dòng)SQLServer2022時(shí),都會(huì)創(chuàng)建tempdb,所以model數(shù)據(jù)庫(kù)必須始終存在于SQLServer2022系統(tǒng)中。當(dāng)使用CREATEDATABASE命令創(chuàng)建數(shù)據(jù)庫(kù)時(shí),將通過(guò)復(fù)制model數(shù)據(jù)庫(kù)中的內(nèi)容來(lái)創(chuàng)建數(shù)據(jù)庫(kù)的第一部分,然后用空頁(yè)填充新數(shù)據(jù)庫(kù)的剩余部分。483.?msdb數(shù)據(jù)庫(kù)msdb數(shù)據(jù)庫(kù)由SQLServer2022代理,用于計(jì)劃警報(bào)和作業(yè)及其他功能。SQLServer2022會(huì)自動(dòng)在msdb數(shù)據(jù)庫(kù)的表中維護(hù)完整的聯(lián)機(jī)備份和還原歷史記錄,這些信息包括執(zhí)行備份一方的名稱、備份時(shí)間和用來(lái)存儲(chǔ)備份的設(shè)備或文件。494.?tempdb數(shù)據(jù)庫(kù)tempdb數(shù)據(jù)庫(kù)是一個(gè)臨時(shí)數(shù)據(jù)庫(kù),它為所有的臨時(shí)表、臨時(shí)存儲(chǔ)過(guò)程及其他臨時(shí)操作提供存儲(chǔ)空間。tempdb數(shù)據(jù)庫(kù)由整個(gè)系統(tǒng)的所有數(shù)據(jù)庫(kù)使用,不管用戶使用哪個(gè)數(shù)據(jù)庫(kù),所建立的所有臨時(shí)表和存儲(chǔ)過(guò)程都存儲(chǔ)在tempdb數(shù)據(jù)庫(kù)中。每次啟動(dòng)SQLServer2022時(shí),tempdb數(shù)據(jù)庫(kù)被重新建立。當(dāng)用戶與SQLServer2022斷開連接時(shí),其臨時(shí)表和存儲(chǔ)過(guò)程將被自動(dòng)刪除。50四、使用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)除使用SSMS窗口外,另一種方法是使用T-SQL語(yǔ)句CREATEDATABASE創(chuàng)建數(shù)據(jù)庫(kù)。使用CREATEDATABASE創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的語(yǔ)法如下。5152database_name是新數(shù)據(jù)庫(kù)的名稱,數(shù)據(jù)庫(kù)名稱在SQLServer2022實(shí)例中必須是唯一的,并且符合標(biāo)識(shí)符規(guī)則。上述語(yǔ)句中各選項(xiàng)的含義見下表。53T-SQL語(yǔ)句中各選項(xiàng)的含義54T-SQL語(yǔ)句中各選項(xiàng)的含義在使用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)時(shí),上述的語(yǔ)法中括號(hào)[…]中的內(nèi)容是可以不編寫的,只需要編寫最簡(jiǎn)單的CREATEDATABASEdatabase_name語(yǔ)句就可以創(chuàng)建數(shù)據(jù)庫(kù)了。數(shù)據(jù)庫(kù)文件的存放默認(rèn)路徑是從注冊(cè)表中獲取的??梢栽赟QLServerManagementStudio的服務(wù)器屬性(數(shù)據(jù)庫(kù)設(shè)置頁(yè)面)中更改默認(rèn)路徑。更改默認(rèn)路徑需要重新啟動(dòng)SQLServer2022。55五、修改數(shù)據(jù)庫(kù)1.?通過(guò)SSMS窗口修改數(shù)據(jù)庫(kù)(1)啟動(dòng)SSMS,成功連接服務(wù)器,展開操作的服務(wù)器節(jié)點(diǎn)下的“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),右擊選中對(duì)應(yīng)的數(shù)據(jù)庫(kù),在彈出的快捷菜單中,選擇“屬性”選項(xiàng),如圖所示。56選擇“屬性”選項(xiàng)(2)在彈出的如圖所示的“數(shù)據(jù)庫(kù)屬性”對(duì)話框中,可以查看數(shù)據(jù)庫(kù)的文件和文件組等信息。在左邊的“選擇頁(yè)”中選擇要修改的數(shù)據(jù)庫(kù)信息,在對(duì)應(yīng)的選項(xiàng)下修改后,單擊“確定”按鈕,即可完成對(duì)數(shù)據(jù)庫(kù)屬性的修改。57

“數(shù)據(jù)庫(kù)屬性”對(duì)話框2.?通過(guò)T-SQL語(yǔ)句修改數(shù)據(jù)庫(kù)使用T-SQL語(yǔ)句ALTERDATABASE,可以修改數(shù)據(jù)庫(kù)的屬性和文件設(shè)置,完整的語(yǔ)法格式如下。其中,COLLATEcollation_name表示指定數(shù)據(jù)庫(kù)的排序規(guī)則;collation_name既可以是Windows排序規(guī)則名稱,又可以是SQL排序規(guī)則名稱。58六、刪除數(shù)據(jù)庫(kù)1.?通過(guò)SSMS窗口刪除數(shù)據(jù)庫(kù)(1)啟動(dòng)SSMS,成功連接服務(wù)器,展開操作的服務(wù)器節(jié)點(diǎn)下的“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),右擊選中對(duì)應(yīng)的數(shù)據(jù)庫(kù),在彈出的快捷菜單中,選擇“刪除”選項(xiàng),如圖所示。59選擇“刪除”選項(xiàng)(2)在彈出的如圖所示的“刪除對(duì)象”對(duì)話框中,選中要?jiǎng)h除的數(shù)據(jù)庫(kù),單擊“確定”按鈕,即可完成對(duì)數(shù)據(jù)庫(kù)的刪除操作。60“刪除對(duì)象”對(duì)話框2.?通過(guò)T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)使用DROPDATABASE語(yǔ)句刪除數(shù)據(jù)庫(kù),其語(yǔ)法格式如下。61

通過(guò)SSMS窗口創(chuàng)建數(shù)據(jù)表任務(wù)2621.?能通過(guò)SSMS窗口創(chuàng)建、修改、刪除數(shù)據(jù)表。2.?能依據(jù)所需要?jiǎng)?chuàng)建的表,推舉合理的列名、選用合適的數(shù)據(jù)類型,并設(shè)置主鍵約束。63數(shù)據(jù)庫(kù)中的數(shù)據(jù)表是用來(lái)存儲(chǔ)和組織數(shù)據(jù)的。通過(guò)定義表結(jié)構(gòu),可以明確指定每個(gè)字段的數(shù)據(jù)類型、長(zhǎng)度和約束條件,從而保證數(shù)據(jù)的完整性和一致性。在前面的任務(wù)中已經(jīng)創(chuàng)建了一個(gè)空的數(shù)據(jù)庫(kù)ssts,現(xiàn)在需要在這個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)數(shù)據(jù)表users。64數(shù)據(jù)表users見下表,在數(shù)據(jù)表創(chuàng)建完成后,追加hobby(興趣)列,數(shù)據(jù)類型為varchar(20),約束說(shuō)明為NOTNULL;修改已有表的address列的數(shù)據(jù)類型為text;刪除表中的郵政編碼zip列。65數(shù)據(jù)表users最后,數(shù)據(jù)表users的設(shè)計(jì)如圖所示。66數(shù)據(jù)表users的設(shè)計(jì)一、數(shù)據(jù)表的概念數(shù)據(jù)表是SQLServer2022中最主要的數(shù)據(jù)庫(kù)對(duì)象,它是用來(lái)存儲(chǔ)和操作數(shù)據(jù)的一種邏輯結(jié)構(gòu),由行和列組成,因此也被稱為二維表。67每個(gè)表都有一個(gè)名字,以標(biāo)識(shí)該表。學(xué)生情況表見下表,表的名字是“學(xué)生情況表”,共有5個(gè)字段,分別是學(xué)號(hào)、姓名、性別、出生時(shí)間和專業(yè)。有兩條學(xué)生記錄,一個(gè)是張亮,另一個(gè)是王麗。一般來(lái)說(shuō),學(xué)號(hào)是主關(guān)鍵字,不能重復(fù),班級(jí)中可能會(huì)出現(xiàn)姓名一樣的學(xué)生,但是學(xué)號(hào)不能一樣,因此,姓名一般不用作關(guān)鍵字。若一個(gè)表中有多個(gè)候選關(guān)鍵字,則選擇其中一個(gè)為主關(guān)鍵字,也被稱為主鍵。若一個(gè)表中只有一個(gè)侯選關(guān)鍵字,則該候選關(guān)鍵字就是主關(guān)鍵字。68表的第一行為各列的標(biāo)題欄,其他各行稱為記錄,表是記錄的有限集合。在計(jì)算機(jī)專業(yè)數(shù)據(jù)庫(kù)理論課程中,用字母的組合來(lái)表示表結(jié)構(gòu)的相關(guān)信息。69學(xué)生情況表二、數(shù)據(jù)類型在創(chuàng)建數(shù)據(jù)表時(shí),需要指明字段的數(shù)據(jù)類型。數(shù)據(jù)類型是一種屬性,表示某列可以存儲(chǔ)數(shù)據(jù)的類型。在SQLServer2022中,數(shù)據(jù)類型可分為整數(shù)類型、浮點(diǎn)類型、字符類型、日期類型、時(shí)間類型、文本類型、圖像類型、貨幣類型、位數(shù)據(jù)類型、二進(jìn)制數(shù)據(jù)類型等。701.?整數(shù)類型整數(shù)類型數(shù)據(jù)是常用的數(shù)據(jù)類型之一,主要用于存儲(chǔ)數(shù)值,可以直接進(jìn)行數(shù)據(jù)運(yùn)算而不必使用函數(shù)轉(zhuǎn)換。(1)bigint每個(gè)bigint類型的數(shù)據(jù)占用8個(gè)字節(jié)的存儲(chǔ)空間,其中1個(gè)二進(jìn)制位表示符號(hào)位,其他63個(gè)二進(jìn)制位表示長(zhǎng)度和大小,可以表示

-263~263-1范圍內(nèi)的所有整數(shù)。71(2)int每個(gè)int類型的數(shù)據(jù)占用4個(gè)字節(jié)的存儲(chǔ)空間,其中1個(gè)二進(jìn)制位表示符號(hào)位,其他31個(gè)二進(jìn)制位表示長(zhǎng)度和大小,可以表示

-231~231-1范圍內(nèi)的所有整數(shù)。(3)smallint每個(gè)smallint類型的數(shù)據(jù)占用2個(gè)字節(jié)的存儲(chǔ)空間,其中1個(gè)二進(jìn)制位表示符號(hào)位,其他15個(gè)二進(jìn)制位表示長(zhǎng)度和大小,可以表示-215~215-1范圍內(nèi)的所有整數(shù)。(4)tinyint每個(gè)tinyint類型的數(shù)據(jù)占用1個(gè)字節(jié)的存儲(chǔ)空間,可以表示0~255范圍內(nèi)的所有整數(shù)。722.?浮點(diǎn)類型(1)realreal類型數(shù)據(jù)的存儲(chǔ)范圍為

-3.40E+38~-1.18E-38、0,以及1.18E-38~3.40E+38,每個(gè)real類型的數(shù)據(jù)占用4個(gè)字節(jié)的存儲(chǔ)空間。(2)floatfloat類型數(shù)據(jù)的存儲(chǔ)范圍為

-1.79E+308~-2.23E-308、0,以及2.23E-308~1.79E+308,如果不指定數(shù)據(jù)類型float的長(zhǎng)度,它占用8個(gè)字節(jié)的存儲(chǔ)空間。(3)numeric和decimalreal與float屬于近似數(shù)字?jǐn)?shù)字類型,而numeric和decimal屬于精確數(shù)字?jǐn)?shù)字類型,它們是帶固定精度和小數(shù)位數(shù)的數(shù)值數(shù)據(jù)類型。733.?字符類型(1)char(n)該類型的數(shù)據(jù)每個(gè)字符占用1個(gè)字節(jié)存儲(chǔ)空間,n表示所有字符所占的存儲(chǔ)空間,如不指定n的值,系統(tǒng)默認(rèn)n的值為1。若輸入數(shù)據(jù)的字符串長(zhǎng)度小于n,則系統(tǒng)自動(dòng)在其后添加空格來(lái)填滿設(shè)定好的空間;若輸入的數(shù)據(jù)過(guò)長(zhǎng),則系統(tǒng)會(huì)截掉其超出部分。(2)varchar(n)n為存儲(chǔ)字符的最大長(zhǎng)度,但可根據(jù)實(shí)際存儲(chǔ)的字符數(shù)改變存儲(chǔ)空間。存儲(chǔ)大小是輸入數(shù)據(jù)的實(shí)際長(zhǎng)度加2個(gè)字節(jié)。所輸入數(shù)據(jù)的長(zhǎng)度可以為0個(gè)字符。74(3)nchar(n)該數(shù)據(jù)類型用于存儲(chǔ)n個(gè)字符的固定長(zhǎng)度Unicode數(shù)據(jù)。(4)nvarchar(n)該數(shù)據(jù)類型與varchar類似,存儲(chǔ)可變長(zhǎng)度Unicode字符數(shù)據(jù)。754.?日期類型日期類型date用于存儲(chǔ)用字符串表示的日期數(shù)據(jù),數(shù)據(jù)格式為“YYYY-MM-DD”。該類型數(shù)據(jù)占用3個(gè)字節(jié)的存儲(chǔ)空間。5.?時(shí)間類型(1)time該數(shù)據(jù)類型以字符串形式記錄一天的某個(gè)時(shí)間,格式為“hh:mm:ss[.nnnnnnn]”,

該類型數(shù)據(jù)占用5個(gè)字節(jié)的存儲(chǔ)空間。(2)datetime該數(shù)據(jù)類型用于存儲(chǔ)時(shí)間和日期數(shù)據(jù)。766.?文本類型(1)ntext該數(shù)據(jù)類型用于存儲(chǔ)長(zhǎng)度可變的Unicode數(shù)據(jù)。(2)text該數(shù)據(jù)類型用于存儲(chǔ)長(zhǎng)度可變的非Unicode數(shù)據(jù)。7.?圖像類型圖像類型image用于存儲(chǔ)照片、目錄圖片或圖畫,存儲(chǔ)該字段的數(shù)據(jù)一般不能使用insert語(yǔ)句直接輸入,實(shí)際存儲(chǔ)長(zhǎng)度為0~231-1個(gè)字節(jié)。778.?貨幣類型(1)moneymoney類型的數(shù)據(jù)可以精確到貨幣單位的萬(wàn)分之一,范圍比smallmoney更大。該類型數(shù)據(jù)占用8個(gè)字節(jié)的存儲(chǔ)空間。(2)smallmoneysmallmoney類型的數(shù)據(jù)可以精確到貨幣單位的萬(wàn)分之一,為

-214748.3648~214748.3647。該類型數(shù)據(jù)占用4個(gè)字節(jié)的存儲(chǔ)空間。貨幣數(shù)據(jù)不需要用英文狀態(tài)下的單引號(hào)引起來(lái)。注意,雖然可以指定前面帶有貨幣符號(hào)的貨幣值,但SQLServer2022不存儲(chǔ)任何與符號(hào)關(guān)聯(lián)的貨幣信息,它只存儲(chǔ)數(shù)值。789.?位數(shù)據(jù)類型位數(shù)據(jù)類型bit的取值只有0或1,長(zhǎng)度為1個(gè)字節(jié)。bit值可以當(dāng)作邏輯值,用于判斷true(1)或false(0)。輸入非0值時(shí),系統(tǒng)將其替換為1。10.?二進(jìn)制數(shù)據(jù)類型(1)binary(n)該數(shù)據(jù)類型用于存儲(chǔ)固定長(zhǎng)度二進(jìn)制數(shù)據(jù),其中n的取值范圍為1~8000,存儲(chǔ)大小為n字節(jié)。(2)varbinary[(n|max)]該數(shù)據(jù)類型用于存儲(chǔ)可變長(zhǎng)度二進(jìn)制數(shù)據(jù)。其中n的取值范圍為1~8000,max是指最大存儲(chǔ)大小為231-1字節(jié),存儲(chǔ)大小為所輸入數(shù)據(jù)的實(shí)際長(zhǎng)度再加上2個(gè)字節(jié)。79通過(guò)T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)表任務(wù)3

801.?能通過(guò)T-SQL語(yǔ)句(CREATE?TABLE)創(chuàng)建表,檢查創(chuàng)建結(jié)果。2.?能通過(guò)T-SQL語(yǔ)句(ALTER?TABLE)修改表,驗(yàn)證修改結(jié)果。3.?能通過(guò)T-SQL語(yǔ)句(DROP?TABLE)刪除表。81前面的任務(wù)中已經(jīng)創(chuàng)建了一個(gè)空的數(shù)據(jù)庫(kù)ssts,現(xiàn)在要求使用T-SQL語(yǔ)句在數(shù)據(jù)庫(kù)ssts中創(chuàng)建學(xué)生表student、教師表teacher、課程表course、選課表sc。學(xué)生表student需要的字段有學(xué)號(hào)sno、姓名name、性別sex、年齡age、系別dept;教師表teacher需要的字段有工號(hào)tno、姓名name、性別sex、年齡age、系別dept;課程表course需要的字段有課程號(hào)cno、課程名name、先修的課程號(hào)pno、學(xué)分credit;選課表sc需要的字段有學(xué)號(hào)sno、課程號(hào)cno、成績(jī)grade。82使用T-SQL語(yǔ)句修改學(xué)生表student,增加民族nation列;對(duì)性別sex列的數(shù)據(jù)類型進(jìn)行修改,由bit改為char(2),最終建成的4張數(shù)據(jù)表如圖所示,刪除教師表teacher。83最終建成的4張數(shù)據(jù)表一、通過(guò)T-SQL語(yǔ)句創(chuàng)建表CREATETABLE語(yǔ)句的語(yǔ)法格式如下。其中列屬性的格式如下。列約束的格式如下。84其中,[NULL|NOTNULL]表示是否允許為空;[IDENTITY(初始值,步長(zhǎng))]表示列值的自動(dòng)增長(zhǎng)方式;[]號(hào)中的內(nèi)容為可選內(nèi)容,可以省略;[,…n]表示可以有多列;[CONSTRAINT約束名]PRIMARYKEY[(列名)]表示設(shè)置主鍵約束。85二、通過(guò)T-SQL語(yǔ)句修改表1.?添加新字段通過(guò)在ALTERTABLE語(yǔ)句中使用ADD子句,可以在表中增加一個(gè)或多個(gè)字段,語(yǔ)法格式如下。2.?修改字段的屬性通過(guò)在ALTERTABLE語(yǔ)句中使用ALTERCOLUMN子句,可以修改列的數(shù)據(jù)類型、長(zhǎng)度等屬性,語(yǔ)法格式如下。863.?修改列名使用存儲(chǔ)過(guò)程sp_rename可修改列名,語(yǔ)法格式如下。4.?刪除字段通過(guò)在ALTERTABLE語(yǔ)句中使用DROPCOLUMN子句,可以刪除表中的字段,語(yǔ)法格式如下。87三、通過(guò)T-SQL語(yǔ)句重命名表重命名表的語(yǔ)法格式如下。四、通過(guò)T-SQL語(yǔ)句刪除表刪除表的語(yǔ)法格式如下。88設(shè)置約束任務(wù)4

891.?能通過(guò)SSMS窗口添加、修改、刪除約束,驗(yàn)證所使用的約束。2.?能使用T-SQL語(yǔ)句創(chuàng)建表時(shí)設(shè)置約束,并能刪除約束。3.?能根據(jù)任務(wù)要求,使用T-SQL語(yǔ)句修改表,并添加新的約束。90SQLServer2022是一種功能強(qiáng)大的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了多種方式來(lái)設(shè)置數(shù)據(jù)完整性,數(shù)據(jù)完整性可以使用約束、默認(rèn)和規(guī)則等來(lái)實(shí)現(xiàn)。一種常用的方式是通過(guò)SSMS窗口來(lái)設(shè)置約束條件,另一種常用的方式是通過(guò)T-SQL語(yǔ)句來(lái)設(shè)置約束條件。91在前面任務(wù)的基礎(chǔ)上,在數(shù)據(jù)庫(kù)ssts中對(duì)學(xué)生表student的age列添加notnull約束,不允許年齡為空。增加telephone(手機(jī)號(hào))列,并設(shè)置telephone列取值唯一。設(shè)置dept列的默認(rèn)值為“信息工程系”。為sex列添加檢查約束,只有“男”和“女”兩個(gè)選項(xiàng)可供選擇。以上任務(wù)可以通過(guò)SSMS窗口完成,仔細(xì)驗(yàn)證約束條件,確保數(shù)據(jù)完整性和一致性。92接下來(lái),使用T-SQL語(yǔ)句在數(shù)據(jù)庫(kù)ssts中,刪除原有的課程表course,在重新創(chuàng)建課程表course的同時(shí)添加約束,設(shè)置課程號(hào)cno為主鍵。在選課表sc中,修改課程號(hào)cno為外鍵約束,參照課程表course中的主鍵cno。在選課表sc中,更改grade列名為score,將學(xué)生成績(jī)字段score設(shè)置為CHECK約束,要求學(xué)生的成績(jī)?yōu)?~100。student、course、sc表結(jié)構(gòu)與約束如圖所示。對(duì)數(shù)據(jù)表設(shè)置約束,可為后繼項(xiàng)目的錄入數(shù)據(jù)提供保障。9394student、course、sc表結(jié)構(gòu)與約束一、數(shù)據(jù)完整性通常情況下,多個(gè)用戶在同一時(shí)間訪問(wèn)某個(gè)數(shù)據(jù)時(shí),可能導(dǎo)致一部分用戶獲取的數(shù)據(jù)是無(wú)效的,而數(shù)據(jù)庫(kù)中的數(shù)據(jù)必須是有效的。數(shù)據(jù)完整性用于保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、一致性和可靠性。數(shù)據(jù)完整性有實(shí)體完整性、域完整性、參照完整性、用戶定義完整性

4種類型。951.?實(shí)體完整性實(shí)體完整性體現(xiàn)了實(shí)體的唯一性,保證數(shù)據(jù)表中的每個(gè)實(shí)體的唯一性。針對(duì)表中的行數(shù)據(jù),要求主鍵字段不能為空,也不能為重復(fù)的值。2.?域完整性域完整性保證指定列的數(shù)據(jù)具有正確的數(shù)據(jù)類型、格式和有效的數(shù)據(jù)范圍,可以通過(guò)數(shù)據(jù)類型、FOREIGNKEY約束、CHECK約束、DEFAULT定義、NOTNULL和規(guī)則實(shí)現(xiàn)限制數(shù)據(jù)范圍,保證只有在有效范圍內(nèi)的值才能存儲(chǔ)到列中。963.?參照完整性參照完整性保證數(shù)據(jù)庫(kù)中相關(guān)聯(lián)表的數(shù)據(jù)正確性,可以使用FOREIGNKEY約束。確保數(shù)據(jù)表的參照完整性,可以避免錯(cuò)誤地刪除和增加數(shù)據(jù)。4.?用戶定義完整性用戶定義完整性是根據(jù)實(shí)際應(yīng)用情況來(lái)制定的,不應(yīng)由應(yīng)用程序提供,而應(yīng)由關(guān)系模型定義并檢驗(yàn),是由用戶自己定義的,所有的完整性類型都支持用戶定義完整性。數(shù)據(jù)完整性可以通過(guò)聲明數(shù)據(jù)完整性或過(guò)程完整性來(lái)實(shí)現(xiàn),聲明數(shù)據(jù)完整性可以使用約束、默認(rèn)和規(guī)則等來(lái)實(shí)現(xiàn),過(guò)程完整性可以通過(guò)在腳本語(yǔ)言中定義,如通過(guò)觸發(fā)器和存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)。97二、約束的類型1.?主鍵(PRIMARY?KEY)約束主鍵約束在每個(gè)數(shù)據(jù)表中只有一個(gè),但是一個(gè)主鍵約束可以由多個(gè)列組成。主鍵約束可以保證主鍵列的數(shù)據(jù)沒有重復(fù)且值不為空。在SSMS窗口中設(shè)置主鍵約束,如果主鍵由多列組成,要按住Ctrl鍵選中多個(gè)列并右擊,在彈出的快捷菜單中,選擇“設(shè)置主鍵”選項(xiàng)。當(dāng)創(chuàng)建主鍵時(shí),系統(tǒng)將自動(dòng)生成一個(gè)以PK_為前綴,后跟表名的主鍵索引,系統(tǒng)自動(dòng)按聚集索引方式組織。98使用T-SQL語(yǔ)句創(chuàng)建表時(shí),還可以設(shè)置主鍵約束,語(yǔ)法格式如下。其中,[CONSTRAIN約束名]為可選項(xiàng),給主鍵約束取個(gè)名字,可省略;PRIMARYKEY為定義主鍵的關(guān)鍵字。992.?外鍵(FOREIGN?KEY)約束外鍵約束也稱參照約束,用于將兩個(gè)表中的數(shù)據(jù)進(jìn)行關(guān)聯(lián),當(dāng)對(duì)兩個(gè)相關(guān)聯(lián)的表進(jìn)行數(shù)據(jù)插入或刪除時(shí),保證數(shù)據(jù)的參照完整性。在SSMS窗口中選擇“表設(shè)計(jì)器”→“關(guān)系”菜單,在外鍵關(guān)系設(shè)置對(duì)話框中,添加一個(gè)以FK_為前綴,后跟兩個(gè)表的名稱的外鍵約束名稱。100101表的主鍵和3個(gè)表之間的外鍵約束使用T-SQL語(yǔ)句創(chuàng)建表時(shí),還可以設(shè)置外鍵約束,語(yǔ)法格式如下。其中,[CONSTRAIN約束名]為可選項(xiàng),給外鍵約束取個(gè)名字,可省略;FOREIGNKEY為定義外鍵的關(guān)鍵字;REFERENCES是關(guān)鍵字,后面跟被引用主鍵列“表名(列名)”;ONDELETECASCADE表示級(jí)聯(lián)刪除,即父表中刪除被引用行時(shí),也將從引用表中刪除引用行;ONUPDATECASCADE表示級(jí)聯(lián)更新,即父表中更新被引用行時(shí),也將從引用表中更新引用行。1023.?唯一(UNIQUE)約束唯一約束和主鍵約束一樣,都用于設(shè)置表中的列不能重復(fù)的約束,區(qū)別是一個(gè)表中只能有一個(gè)主鍵約束,卻可以有多個(gè)唯一約束。如果某列有空值,不能設(shè)置其為主鍵約束,但可以設(shè)置其為唯一約束。一般在創(chuàng)建主鍵約束時(shí),系統(tǒng)會(huì)自動(dòng)生成索引,索引的默認(rèn)類型為聚簇索引。而創(chuàng)建唯一約束時(shí),系統(tǒng)會(huì)自動(dòng)生成一個(gè)UNIQUE索引,索引的默認(rèn)類型為非聚簇索引。若用T-SQL語(yǔ)句把學(xué)生表student中的身份證號(hào)碼IdentityCardNo字段設(shè)置為唯一約束,可以寫成ALTERTABLEstudentADDCONSTRAINTUK_ICUNIQUENONCLUSTERED(IdentityCardNo)。103在SSMS中創(chuàng)建唯一約束時(shí),選擇“索引/鍵”選項(xiàng),在常規(guī)選項(xiàng)中,設(shè)置類型為“唯一鍵”。若要?jiǎng)h除唯一約束,可在“索引/鍵”選項(xiàng)中選中選定的索引名,單擊“刪除”按鈕。使用T-SQL語(yǔ)句創(chuàng)建表時(shí),還可以設(shè)置唯一約束,語(yǔ)法格式如下。其中,[CONSTRAIN約束名]為可選項(xiàng),給唯一約束取個(gè)名字,可省略;UNIQUE為定義唯一約束的關(guān)鍵字。1044.?檢查(CHECK)約束檢查約束是用來(lái)指定表中列的值的取值范圍的,當(dāng)輸入的值不在有效范圍內(nèi)時(shí),彈出錯(cuò)誤提示信息。檢查約束實(shí)際上是字段輸入內(nèi)容的驗(yàn)證規(guī)則,表示一個(gè)字段的輸入內(nèi)容必須滿足檢查約束的條件。對(duì)于timestamp類型字段,不能定義檢查約束。使用T-SQL語(yǔ)句創(chuàng)建表時(shí),還可以設(shè)置檢查約束,語(yǔ)法格式如下。其中,[CONSTRAIN約束名]為可選項(xiàng),給檢查約束取個(gè)名字,可省略;CHECK為定義檢查約束的關(guān)鍵字,后面跟邏輯表達(dá)式,如性別in('男','女')。1055.?非空(NOT?NULL)約束非空約束可以在表中定義允許為空值或不允許為空值,如果允許某列可以不輸入數(shù)據(jù),那么應(yīng)在該列加上空約束。如果某列必須輸入數(shù)據(jù),那么應(yīng)在該列加上非空約束。默認(rèn)情況下,創(chuàng)建表列允許空值。數(shù)據(jù)庫(kù)中NULL是特殊值,空格字符串“”不等于NULL,0也不等于NULL,NULL只表明該列是未知的。106使用T-SQL語(yǔ)句創(chuàng)建表時(shí),還可以設(shè)置非空約束,語(yǔ)法格式如下。其中,[CONSTRAIN約束名]為可選項(xiàng),給非空約束取個(gè)名字,可省略;NULL|NOTNULL允許空或不允許空,默認(rèn)為允許空。1076.?默認(rèn)(DEFAULT)約束默認(rèn)約束是指在用戶未提供某些列的數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)系統(tǒng)為用戶提供的默認(rèn)值。如果插入的新行在定義了默認(rèn)值的列上沒有給出值,那么這個(gè)列上的數(shù)據(jù)就是定義的默認(rèn)值。如果插入的記錄給出了這個(gè)列的值,那么該列的數(shù)據(jù)就是插入的數(shù)據(jù)。默認(rèn)值必須與所約束的列的數(shù)據(jù)類型保持一致,每一列只能定義一個(gè)默認(rèn)值。對(duì)于Timestamp和Identity兩種類型的字段,不能定義默認(rèn)值約束。108使用T-SQL語(yǔ)句創(chuàng)建表時(shí),還可以設(shè)置默認(rèn)約束,語(yǔ)法格式如下。其中,[CONSTRAIN約束名]為可選項(xiàng),給默認(rèn)約束取個(gè)名字,可省略;DEFAULT為定義默認(rèn)約束的關(guān)鍵字。109三、在已有表上添加約束在已有表上添加約束的語(yǔ)法格式如下。110四、使用SSMS窗口在表中修改和刪除約束1111.?主鍵約束的修改和刪除刪除學(xué)生表student中的學(xué)號(hào)sno主鍵,在學(xué)生表student設(shè)計(jì)器窗口中右擊sno字段,在彈出的快捷菜單中,選擇“刪除主鍵”選項(xiàng),如圖所示。修改主鍵的方法是先刪除主鍵,再設(shè)置新的主鍵。選擇“刪除主鍵”選項(xiàng)2.?外鍵的修改與刪除在SSMS窗口中選中sc表并右擊,在彈出的快捷菜單中,選擇“設(shè)計(jì)”選項(xiàng),打開表設(shè)計(jì)器窗口,在表設(shè)計(jì)器窗口的任意位置右擊,在彈出的快捷菜單中,選擇“關(guān)系”選項(xiàng),彈出如圖所示的“外鍵關(guān)系”對(duì)話框,在左側(cè)選中一個(gè)關(guān)系的名稱,再單擊“刪除”按鈕即可刪除外鍵,單擊“關(guān)閉”按鈕退出當(dāng)前窗口。112“外鍵關(guān)系”對(duì)話框若要修改外鍵,在上圖所示的“常規(guī)”選項(xiàng)下單擊“表和列規(guī)范”后面的

按鈕,彈出如圖所示的“表和列”對(duì)話框,可以修改對(duì)應(yīng)的表和列。113“表和列”對(duì)話框3.?唯一約束的修改與刪除打開表設(shè)計(jì)器窗口,在表設(shè)計(jì)器窗口的任意位置右擊,在彈出的快捷菜單中,選擇“索引/鍵”選項(xiàng),彈出索引/鍵窗口,在左側(cè)選中一個(gè)關(guān)系的名稱,再單擊“刪除”按鈕,刪除唯一約束,單擊“關(guān)閉”按鈕退出當(dāng)前窗口。4.?非空約束的修改打開表設(shè)計(jì)器窗口,找到并單擊要修改的列名,在“允許Null值”列,可以直接修改是否為空。勾選該復(fù)選框表示可以為空;不勾選該復(fù)選框表示不能為空,在錄入或插入記錄時(shí),必須要有對(duì)應(yīng)的數(shù)據(jù)。1145.?默認(rèn)約束的修改與刪除打開表設(shè)計(jì)器窗口,找到并單擊要修改的列名,在列屬性的“常規(guī)”選項(xiàng)中,在“默認(rèn)值或綁定”后面的單元格中可以修改或刪除已經(jīng)定義的值。6.?檢查約束的修改與刪除打開表設(shè)計(jì)器窗口,在表設(shè)計(jì)器窗口的任意位置右擊,在彈出的快捷菜單中,選擇“CHECK約束”選項(xiàng)。選中左側(cè)的約束名稱,單擊“刪除”按鈕則可以刪除檢查約束。若要修改約束,在右側(cè)的“常規(guī)”選項(xiàng)中單擊“表達(dá)式”后面的

按鈕,在彈出的“CHECK約束表達(dá)式”對(duì)話框中修改約束條件即可。115項(xiàng)目三操作數(shù)據(jù)表116任務(wù)1通過(guò)SSMS窗口操作數(shù)據(jù)表任務(wù)2插入數(shù)據(jù)

任務(wù)3修改和刪除數(shù)據(jù)117通過(guò)SSMS窗口操作數(shù)據(jù)表任務(wù)1

118能通過(guò)SSMS窗口插入、修改、刪除數(shù)據(jù)。119在前面的任務(wù)中,已經(jīng)創(chuàng)建了學(xué)生表student,并且設(shè)置了約束。本任務(wù)要求錄入新生的相關(guān)信息。120可以使用SSMS窗口向?qū)W生表student插入一條記錄,記錄為“學(xué)號(hào):2022010901,姓名:李十雨,性別:女,年齡:18,系別:創(chuàng)意服務(wù)系”。再插入一條記錄“學(xué)號(hào):2022010902,姓名:沈十一,性別:女

,年齡:17”,再修改其系別為“創(chuàng)意服務(wù)系”。插入記錄后,要求刪除學(xué)生表student中姓名為“沈十一”的記錄。學(xué)生表的記錄如圖所示。121學(xué)生表的記錄一、通過(guò)SSMS窗口插入數(shù)據(jù)插入記錄是將新記錄添加在表尾,可在表中插入多條記錄,也可以邊插入邊修改。如果某列不允許為空,那么必須輸入值。連接到服務(wù)器后,展開已經(jīng)建立的數(shù)據(jù)庫(kù)ssts,再展開表結(jié)點(diǎn),右擊學(xué)生表student,在彈出的快捷菜單中,選擇“編輯前200行”選項(xiàng),如圖所示。122選擇“編輯前200行”選項(xiàng)將光標(biāo)定位在表格中,逐行逐列輸入數(shù)據(jù)信息。在各個(gè)字段下輸入所有學(xué)生的信息內(nèi)容,如果輸入錯(cuò)誤,可以直接修改。編輯學(xué)生表student,如圖所示,學(xué)號(hào)的數(shù)據(jù)類型為char(10),若輸入“xxgc20220401”,則超過(guò)了10位,會(huì)提示“未更新任何行”,需要截?cái)鄶?shù)據(jù),所以在輸入學(xué)號(hào)時(shí)要考慮數(shù)據(jù)類型。123124編輯學(xué)生表student二、通過(guò)SSMS窗口修改數(shù)據(jù)如果輸入的某條記錄有錯(cuò)誤,可以進(jìn)行修改。將插入點(diǎn)定位到要修改的地方,直接修改即可。在修改數(shù)據(jù)時(shí),應(yīng)注意數(shù)據(jù)類型、長(zhǎng)度、約束等要符合要求,否則修改可能不成功。若要修改學(xué)生表student中的數(shù)據(jù),在連接到服務(wù)器后,展開已經(jīng)建立的數(shù)據(jù)庫(kù)ssts,再展開表結(jié)點(diǎn),右擊學(xué)生表student,在彈出的快捷菜單中,選擇“編輯前200行”選項(xiàng),將插入點(diǎn)定位到要修改的位置,直接修改即可。125三、通過(guò)SSMS窗口刪除數(shù)據(jù)將光標(biāo)定位在表格中,可以直接刪除數(shù)據(jù)信息。在插入、修改、刪除數(shù)據(jù)后,單擊工具欄上的“保存”按鈕,保存操作結(jié)果。126

選擇“刪除”選項(xiàng)插入數(shù)據(jù)任務(wù)21271.?能使用INSERT?INTO?VALUES語(yǔ)句向表中插入一條或多條記錄。2.?能使用INSERT?SELECT語(yǔ)句,將子查詢結(jié)果插入表中。3.?能使用SELECT?INTO語(yǔ)句創(chuàng)建新表。128新學(xué)期開始,教務(wù)處要輸入信息工程系和電氣工程系新生的信息,要求清空數(shù)據(jù)庫(kù)ssts中學(xué)生表student的所有記錄,存儲(chǔ)新生的信息,但表結(jié)構(gòu)不變。新生信息表見下表,課程表見下表。129130

新生信息表

課程表學(xué)期結(jié)束,學(xué)生選修課成績(jī)表見下表。3張表之間的關(guān)系是學(xué)生選修課成績(jī)表中的學(xué)號(hào)來(lái)源于新生信息表中的學(xué)號(hào),成績(jī)表中的課程號(hào)來(lái)源于課程表中的課程號(hào)。131學(xué)生選修課成績(jī)表教務(wù)處為了評(píng)定獎(jiǎng)學(xué)金,要求單獨(dú)創(chuàng)建一張表sc90,用于存放90分以上的學(xué)生成績(jī);還要得到一張所有學(xué)生選課的成績(jī)表,學(xué)生課程成績(jī)表studentCourseScore如圖所示??梢允褂肐NSERTINTOVALUES語(yǔ)句向?qū)W生表student和課程表course中插入記錄。

使用SELECTINTO語(yǔ)句創(chuàng)建sc90表,

用于存放90分以上的學(xué)生成績(jī);使用INSERTSELECT語(yǔ)句插入查詢結(jié)果到sc90表中;使用SELECTINTO語(yǔ)句創(chuàng)建學(xué)生課程成績(jī)表studentCourseScore。132學(xué)生課程成績(jī)表studentCourseScore一、CRUD操作CRUD是一個(gè)數(shù)據(jù)庫(kù)技術(shù)的縮寫詞,表示對(duì)數(shù)據(jù)的創(chuàng)建(create)、讀?。╮ead)、更新(update)和刪除(delete)操作,這些操作屬于處理數(shù)據(jù)的基本原子操作。原子操作是不可分割的,表示這種操作一旦開始,就會(huì)一直運(yùn)行到結(jié)束,中間不會(huì)被任何其他任務(wù)或事件中斷,不會(huì)切換到另一個(gè)線程。133二、INSERT語(yǔ)句INSERT語(yǔ)句用于向數(shù)據(jù)表或視圖中添加數(shù)據(jù),INSERT語(yǔ)句的語(yǔ)法格式如下。INSERT語(yǔ)句將VALUES子句中的值按照INTO子句中指定列名的順序插入表中。其中,table_or_view是指要插入新記錄的表名或視圖名;column_list是可選項(xiàng),指定待添加數(shù)據(jù)的字段列名,要用圓括號(hào)將所有的字段列名括起來(lái),列與列之間用逗號(hào)分隔;VALUES子句指定待添加數(shù)據(jù)的具體值。列名的排列順序不一定要與表定義時(shí)的順序一致。134在進(jìn)行數(shù)據(jù)插入操作時(shí),需注意以下幾點(diǎn)。1.在VALUES子句中,必須用英文狀態(tài)下的逗號(hào)將各個(gè)數(shù)據(jù)分開,字符型數(shù)據(jù)和日期類型數(shù)據(jù)要用英文狀態(tài)下的單引號(hào)引起來(lái),數(shù)值型數(shù)據(jù)不需要加單引號(hào)。2.有時(shí)并不需要向表中插入完整的行,而需要將數(shù)據(jù)只插入到幾個(gè)指定的字段內(nèi),在表名后加上字段列表,且VALUES子句中值的排列順序要與表中各屬性列的排列順序一致。1353.在列屬性為IDENTITY的字段上,插入數(shù)據(jù)可分為兩種情況:若插入顯示值,則必須指定字段和值,而且SETIDENTITY_INSERT選項(xiàng)為ON;若不插入顯示值,可以不必指定字段和值,系統(tǒng)自動(dòng)根據(jù)seed和increment值計(jì)算得到。4.在設(shè)有默認(rèn)值字段上添加數(shù)據(jù)時(shí),可以使用列的默認(rèn)值,字段值可以不寫到T-SQL語(yǔ)句中。5.對(duì)于INTO子句中沒有出現(xiàn)的列,插入的新記錄在這些列上字段可能為空,可能會(huì)被設(shè)置為默認(rèn)值。但在表定義時(shí),有NOTNULL約束的屬性列不能取空值,必須要插入值。136三、SELECTINTO復(fù)制數(shù)據(jù)表如果要復(fù)制其他數(shù)據(jù)庫(kù)中的數(shù)據(jù)表到數(shù)據(jù)庫(kù)ssts中,表名tableName不變,表格的設(shè)計(jì)結(jié)構(gòu)和內(nèi)容全部復(fù)制,假定數(shù)據(jù)庫(kù)的名稱為databaseName。注意,寫法為“數(shù)據(jù)庫(kù)名.dbo.表名”。若只復(fù)制表格的設(shè)計(jì)結(jié)構(gòu),而不復(fù)制內(nèi)容,可在上述語(yǔ)句基礎(chǔ)上加上不成立的條件即可。137

修改和刪除數(shù)據(jù)任務(wù)3

1381.?能使用UPDATE?SET語(yǔ)句修改記錄,對(duì)符合條件的數(shù)據(jù)進(jìn)行修改。2.?能使用DELETE語(yǔ)句刪除數(shù)據(jù)表中符合條件的數(shù)據(jù)。3.?能使用TRUNCATE?TABLE語(yǔ)句快速刪除數(shù)據(jù)。4.?能使用DROP?TABLE語(yǔ)句刪除表。139一年過(guò)去了,同學(xué)們的年齡也增長(zhǎng)了1歲,需要在學(xué)生表student中將所有學(xué)生的年齡增加1歲。將“信息工程系”更名為“電子信息系”,需要對(duì)學(xué)生表student中系別dept做相應(yīng)的更改,修改后的學(xué)生表student如圖所示。接到教務(wù)處通知,需要?jiǎng)h除數(shù)據(jù)表studentCourseScore中姓名為“劉莉”的全部記錄。一段時(shí)間后學(xué)生成績(jī)有了新的樣式表格,發(fā)現(xiàn)studentCourseScore過(guò)于簡(jiǎn)單,需要?jiǎng)h除studentCourseScore表,包括刪除數(shù)據(jù)和結(jié)構(gòu)的全部信息。140修改后的學(xué)生表student一、UPDATE語(yǔ)句UPDATE語(yǔ)句用于修改數(shù)據(jù)表或視圖中特定記錄或字段的數(shù)據(jù),其語(yǔ)法格式如下。141其中,table_or_view是指要修改的表或視圖;SET子句給出要修改的列及其修改后的值,column為要修改的列名,expression為其修改后的值;WHERE子句用于指定待修改的記錄應(yīng)滿足的條件,WHERE子句省略時(shí),則修改表中的所有記錄。1421431.?修改所有記錄ROUND函數(shù)返回一個(gè)數(shù)值,該值是按照指定的小數(shù)位數(shù)進(jìn)行四舍五入運(yùn)算的結(jié)果。CAST函數(shù)用于將某種數(shù)據(jù)類型的顯式表達(dá)式轉(zhuǎn)換為另一種數(shù)據(jù)類型。2.?修改符合條件的記錄修改符合條件的記錄,一般使用“UPDATE…SETWHERE…”語(yǔ)句。二、DELETE語(yǔ)句DELETE語(yǔ)句用于刪除數(shù)據(jù)表或視圖中一行或多行數(shù)據(jù),其語(yǔ)法格式如下。其中,table_or_view是指要修改的表或視圖;WHERE子句用于指定待刪除的記錄應(yīng)滿足的條件,WHERE子句省略時(shí),則刪除表中的所有記錄。1441451.?刪除所有記錄(1)沒有WHERE的DELETE語(yǔ)句【例】將學(xué)生成績(jī)表studentScore的記錄全部刪除。(2)使用TRUNCATETABLE刪除表數(shù)據(jù)使用TRUNCATE刪除表中所有的行,與沒有WHERE的DELETE語(yǔ)句類似,但TRUNCATE速度更快。1462.?刪除指定記錄【例】刪除學(xué)生表student中的姓名為“劉美”的記錄。三、使用DROPTABLE刪除表sc90表的結(jié)構(gòu)和數(shù)據(jù)將被全部刪除。147項(xiàng)目四管理數(shù)據(jù)庫(kù)148任務(wù)1導(dǎo)入與導(dǎo)出數(shù)據(jù)表任務(wù)2分離與附加數(shù)據(jù)庫(kù)任務(wù)3備份與還原數(shù)據(jù)庫(kù)149導(dǎo)入與導(dǎo)出數(shù)據(jù)表任務(wù)1

1501.?能導(dǎo)入Access數(shù)據(jù)庫(kù)中的數(shù)據(jù)表。2.?能導(dǎo)入其他類型的數(shù)據(jù)源。3.?能導(dǎo)出SQL?Server數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,并導(dǎo)出為Excel文件。4.?能導(dǎo)出為其他類型的數(shù)據(jù)源,并驗(yàn)證導(dǎo)出結(jié)果。151本任務(wù)要求刪除數(shù)據(jù)庫(kù)ssts中舊的users表,將已有的Access數(shù)據(jù)庫(kù)中的books表和user表導(dǎo)入數(shù)據(jù)庫(kù)ssts中,然后再將數(shù)據(jù)庫(kù)ssts中的student和course兩張表導(dǎo)出為Excel格式文件。可以使用SQLServer導(dǎo)入和導(dǎo)出向?qū)瓿缮鲜鰞身?xiàng)操作,導(dǎo)入和導(dǎo)出的結(jié)果如圖所示。152153導(dǎo)入和導(dǎo)出的結(jié)果一、Access數(shù)據(jù)源MicrosoftAccess數(shù)據(jù)源版本較多,選擇最新安裝的版本,或與創(chuàng)建數(shù)據(jù)庫(kù)文件的Access版本相對(duì)應(yīng)的版本,Access數(shù)據(jù)源與Office版本的對(duì)應(yīng)關(guān)系見下表。在SQLServer中,數(shù)據(jù)庫(kù)文件的后綴名為mdf;2003版本的Access數(shù)據(jù)庫(kù)文件的后綴名為mdb,2007版本以后的Access數(shù)據(jù)庫(kù)文件的后綴名為accdb;2003版本的Excel文件的后綴名為xls,2007版本以后的Excel文件的后綴名為xlsx。154155Access數(shù)據(jù)源與Office版本的對(duì)應(yīng)關(guān)系如果尚未安裝MicrosoftOffice數(shù)據(jù)源(包括Access和Excel)的連接組件,需要下載并完成安裝。Excel也是Office軟件之一,Excel2013數(shù)據(jù)源的引擎與Access2013一致,Excel2016數(shù)據(jù)源的引擎與Access2016一致。二、使用SQLServer導(dǎo)入和導(dǎo)出向?qū)У臄?shù)據(jù)源使用SQLServer可以導(dǎo)入和導(dǎo)出的數(shù)據(jù)源,包括SQLServer、Oracle、平面文件(文本文件)、Excel、Access、AzureBlobStorage、ODBC、PostgreSQL、MySQL等。1561.?首行包含列名稱首行包含列名稱是指數(shù)據(jù)的首行是否包含列名稱。(1)如果數(shù)據(jù)不包含列名稱,但啟用了此選項(xiàng),那么向?qū)?huì)將源數(shù)據(jù)的首行作為列名稱。(2)如果數(shù)據(jù)包含列名稱,但禁用了此選項(xiàng),那么向?qū)?huì)將列名稱一行作為數(shù)據(jù)的首行。(3)如果指定數(shù)據(jù)不具有列名稱,那么向?qū)?huì)使用F1、F2等作為列名稱。1572.“選擇源表和視圖頁(yè)”上的操作(1)通過(guò)選擇“編輯映射”選項(xiàng)可以查看源和目標(biāo)之間的列映射。(2)通過(guò)選擇“預(yù)覽”選項(xiàng)可以預(yù)覽示例數(shù)據(jù)以確認(rèn)是否需要。158三、導(dǎo)出為Excel1.要使用“工作表”或“命名區(qū)域”,在“選擇源表和視圖”頁(yè)的“目標(biāo)”列中,選擇目標(biāo)工作表和命名區(qū)域。2.要使用其地址指定的“未命名區(qū)域”,在“選擇源表和視圖”頁(yè)的“目標(biāo)”列中輸入?yún)^(qū)域,格式如“Sheet1$A1:B5”(不含分隔符),向?qū)?huì)添加分隔符。159分離與附加數(shù)據(jù)庫(kù)任務(wù)21601.?能正確分離與附加數(shù)據(jù)庫(kù)。2.?能解決附加數(shù)據(jù)庫(kù)時(shí)出現(xiàn)的“拒絕訪問(wèn)”錯(cuò)誤。161本任務(wù)要求在SSMS對(duì)象資源管理器中,連接到SQLServer數(shù)據(jù)庫(kù)引擎,附加上數(shù)據(jù)庫(kù)FlightDatabase,再將已經(jīng)附加上的數(shù)據(jù)庫(kù)重新分離出來(lái)。附加與分離的結(jié)果如圖所示。162

附加與分離的結(jié)果一、附加數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)是指把已有的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件(mdf文件)和日志文件(ldf文件)直接附加到當(dāng)前的數(shù)據(jù)庫(kù)服務(wù)器中。待附加的數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)文件必須是可用的。如果任何數(shù)據(jù)文件的路徑不同于首次創(chuàng)建數(shù)據(jù)庫(kù)或上次附加數(shù)據(jù)庫(kù)時(shí)的路徑,那么必須指定文件的當(dāng)前路徑。163復(fù)制數(shù)據(jù)庫(kù)文件(包括數(shù)據(jù)文件和日志文件)到本機(jī)時(shí),是不能直接雙擊打開使用的,這時(shí)使用附加數(shù)據(jù)庫(kù)的方法,將其附加到當(dāng)前的數(shù)據(jù)庫(kù)服務(wù)器中,才可以正常使用。在附加數(shù)據(jù)庫(kù)的過(guò)程中,經(jīng)常出現(xiàn)如圖所示的錯(cuò)誤提示信息,其主要原因是權(quán)限不足。164錯(cuò)誤提示信息二、分離數(shù)據(jù)庫(kù)分離數(shù)據(jù)庫(kù)是指從SQLServer實(shí)例中刪除連接,但不是刪除數(shù)據(jù)庫(kù)文件,使數(shù)據(jù)庫(kù)的數(shù)據(jù)文件和日志文件保持不變,之后就能使用這些文件將數(shù)據(jù)庫(kù)附加到任何SQLServer實(shí)例,包括分離該數(shù)據(jù)庫(kù)的服務(wù)器。165

備份與還原數(shù)據(jù)庫(kù)任務(wù)3

1661.能根據(jù)任務(wù)要求在SQLServer中創(chuàng)建備份設(shè)備。2.能描述備份數(shù)據(jù)庫(kù)的重要性,合理選擇時(shí)間和備份類型進(jìn)行備份。3.能獨(dú)立還原數(shù)據(jù)庫(kù),并敘述完整恢復(fù)和部分恢復(fù)數(shù)據(jù)庫(kù)的方法。167現(xiàn)要求使用SSMS備份和還原數(shù)據(jù)庫(kù),具體可分為以下2個(gè)任務(wù)。1.?創(chuàng)建一個(gè)名為“Device”的備份設(shè)備,將數(shù)據(jù)庫(kù)ssts使用完整備份方式備份到“Device”中,并查看備份結(jié)果。2.?從數(shù)據(jù)庫(kù)中還原已經(jīng)備份的數(shù)據(jù)庫(kù)文件,檢查數(shù)據(jù)庫(kù)ssts文件是否得到還原。168備份與還原的結(jié)果如圖所示。169備份與還原的結(jié)果一、數(shù)據(jù)庫(kù)的備份1.?備份的類型(1)完整備份完整備份即備份數(shù)據(jù)庫(kù)的所有數(shù)據(jù)文件、日志文件和在備份過(guò)程中發(fā)生的任何活動(dòng)(將這些活動(dòng)記錄在事務(wù)日志中,一起寫入備份設(shè)備)。差異備份、事務(wù)日志備份的恢復(fù)完全依賴于在其前面進(jìn)行的完整備份。170171(2)差異備份差異備份只備份自最近一次完整備份以來(lái)被修改的數(shù)據(jù)。(3)事務(wù)日志備份事務(wù)日志備份只備份最后一次日志備份后所有的事務(wù)日志記錄。(4)文件和文件組備份文件和文件組備份主要用于備份數(shù)據(jù)庫(kù)文件或數(shù)據(jù)庫(kù)文件組。1722.?備份的操作角色具有以下角色的成員可以進(jìn)行備份操作,也可以通過(guò)授權(quán)允許其他角色進(jìn)行數(shù)據(jù)庫(kù)備份。(1)固定的服務(wù)器角色系統(tǒng)管理員sysadmin。(2)固定的數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)所有者db_owner。(3)固定的數(shù)據(jù)庫(kù)角色允許進(jìn)行數(shù)據(jù)庫(kù)備份的用戶db_backupoperator。3.?備份數(shù)據(jù)庫(kù)選項(xiàng)說(shuō)明(1)“常規(guī)”選項(xiàng)卡在SSMS中,“常規(guī)”選項(xiàng)卡如圖所示。173“常規(guī)”選項(xiàng)卡(2)“介質(zhì)選項(xiàng)”選項(xiàng)卡在SSMS中,“介質(zhì)選項(xiàng)”選項(xiàng)卡如圖所示。174“介質(zhì)選項(xiàng)”選項(xiàng)卡(3)“備份選項(xiàng)”選項(xiàng)卡在SSMS中,“備份選項(xiàng)”選項(xiàng)卡如圖所示。175“備份選項(xiàng)”選項(xiàng)卡1764.?查看備份集中的數(shù)據(jù)文件和日志文件在連接到相應(yīng)的SQLServer數(shù)據(jù)庫(kù)引擎實(shí)例后,在對(duì)象資源管理器窗口中,展開數(shù)據(jù)庫(kù)目錄?!皵?shù)據(jù)庫(kù)屬性”對(duì)話框二、數(shù)據(jù)庫(kù)的還原數(shù)據(jù)庫(kù)的還原又稱為數(shù)據(jù)庫(kù)的恢復(fù),當(dāng)數(shù)據(jù)庫(kù)發(fā)生故障時(shí),可以從一個(gè)或多個(gè)備份中還原數(shù)據(jù)庫(kù),其有簡(jiǎn)單還原、完全還原、大容量日志還原3種模式。當(dāng)使用簡(jiǎn)單還原模式時(shí),只能還原到備份時(shí)刻的數(shù)據(jù),因?yàn)樵谠撃J较拢粫?huì)備份事務(wù)日志,但是在完全還原模式下卻可以。1771781.?還原模式和支持的還原操作可用于數(shù)據(jù)庫(kù)的還原操作取決于所采用的還原模式。還原模式支持的還原方案及適用范圍見下表。

還原模式支持的還原方案及適用范圍1792.還原模式的使用(1)簡(jiǎn)單還原模式簡(jiǎn)單還原模式不備份事務(wù)日志,故恢復(fù)能力有限。在簡(jiǎn)單還原模式下,備份間隔應(yīng)盡可能短,以防止大量丟失數(shù)據(jù)。(2)大容量日志還原模式大容量日志還原模式專為需要執(zhí)行大量數(shù)據(jù)復(fù)制操作的數(shù)據(jù)庫(kù)設(shè)計(jì)。此模式通過(guò)減少對(duì)這些大容量操作事務(wù)的日志記錄來(lái)節(jié)省空間,同時(shí)保持對(duì)其他事務(wù)的完整日志記錄。在大容量操作期間發(fā)生的數(shù)據(jù)丟失或損壞,通常只能恢復(fù)到大容量操作之前或之后的狀態(tài),而不是操作過(guò)程中的某個(gè)特定點(diǎn)。180(3)完整還原模式完整還原模式提供了數(shù)據(jù)庫(kù)備份和恢復(fù)的最高級(jí)別保護(hù)。在此模式下,數(shù)據(jù)庫(kù)系統(tǒng)會(huì)記錄所有事務(wù)的詳細(xì)信息到日志記錄中,以便能夠恢復(fù)到任意時(shí)間點(diǎn),包括數(shù)據(jù)丟失或損壞的確切時(shí)刻。這種還原模式要求定期備份日志記錄,以確保數(shù)據(jù)的完整性和可恢復(fù)性。雖然完整還原模式提供了強(qiáng)大的數(shù)據(jù)保護(hù)能力,但它也要求更多的存儲(chǔ)空間來(lái)保存日志記錄,并可能增加備份和還原的復(fù)雜性。在完整還原模式和大容量日志還原模式下,必須進(jìn)行日志備份。如果不想進(jìn)行日志備份,那么可使用簡(jiǎn)單還原模式。三、T-SQL數(shù)據(jù)庫(kù)的備份與還原1.?創(chuàng)建備份設(shè)備如果要使用備份設(shè)備的邏輯名來(lái)引用備份設(shè)備,就必須在使用它之前創(chuàng)建備份設(shè)備??墒褂孟到y(tǒng)存儲(chǔ)過(guò)程sp_addumpdevice來(lái)創(chuàng)建備份設(shè)備。2.?備份BACKUPBACKUP可以備份整個(gè)數(shù)據(jù)庫(kù)、差異備份數(shù)據(jù)庫(kù)、備份數(shù)據(jù)庫(kù)文件或文件組及事務(wù)日志文件。3.?恢復(fù)RESTORERESTORE可以恢復(fù)整個(gè)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)的部分內(nèi)容、特定的數(shù)據(jù)庫(kù)文件或文件組及事務(wù)日志文件。181項(xiàng)目五查詢數(shù)據(jù)庫(kù)182183任務(wù)1基本查詢?nèi)蝿?wù)2條件查詢?nèi)蝿?wù)3查詢結(jié)果排序任務(wù)4分組查詢?nèi)蝿?wù)5連接查詢?nèi)蝿?wù)6集合查詢?nèi)蝿?wù)7子查詢基本查詢?nèi)蝿?wù)11841.?能根據(jù)任務(wù)要求,使用SELECT語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢。2.?能使用關(guān)鍵字DISTINCT、AS和TOP子句進(jìn)行數(shù)據(jù)庫(kù)查詢。185本任務(wù)要求根據(jù)導(dǎo)入數(shù)據(jù)庫(kù)ssts中的學(xué)生成績(jī)表stuScore.xls,完成以下查詢。1.查詢stuScore表中的所有記錄。2.查詢總成績(jī)排名前10的學(xué)生,其中,總成績(jī)=平時(shí)成績(jī)

×40%+考試成績(jī)

×60%,保留兩位小數(shù)。186一、SELECT語(yǔ)法查詢語(yǔ)句SELECT是從數(shù)據(jù)庫(kù)中檢索行,并允許從SQLServer中的一個(gè)或多個(gè)表中選擇一個(gè)或多個(gè)行或列。雖然SELECT語(yǔ)句的完整語(yǔ)法較為復(fù)雜,但其主要子句可歸納如下。187可在查詢之間使用UNION、EXCEPT和INTERSECT運(yùn)算符,以便將各個(gè)查詢的結(jié)果合并到一個(gè)結(jié)果集中或進(jìn)行比較。SELECT后面列出要查詢的字段名(列名),多個(gè)字段名之間要用英文逗號(hào)隔開。FROM后面一般為表名(table_name)

或視圖名(view_name);WH

溫馨提示

  • 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論