《SQL Server數(shù)據(jù)庫應(yīng)用》課件 項目1、2 構(gòu)建 SQL Server 環(huán)境;創(chuàng)建數(shù)據(jù)庫_第1頁
《SQL Server數(shù)據(jù)庫應(yīng)用》課件 項目1、2 構(gòu)建 SQL Server 環(huán)境;創(chuàng)建數(shù)據(jù)庫_第2頁
《SQL Server數(shù)據(jù)庫應(yīng)用》課件 項目1、2 構(gòu)建 SQL Server 環(huán)境;創(chuàng)建數(shù)據(jù)庫_第3頁
《SQL Server數(shù)據(jù)庫應(yīng)用》課件 項目1、2 構(gòu)建 SQL Server 環(huán)境;創(chuàng)建數(shù)據(jù)庫_第4頁
《SQL Server數(shù)據(jù)庫應(yīng)用》課件 項目1、2 構(gòu)建 SQL Server 環(huán)境;創(chuàng)建數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

“SQLServer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論