第3章關(guān)系數(shù)據(jù)庫的創(chuàng)建與維護(hù)_第1頁
第3章關(guān)系數(shù)據(jù)庫的創(chuàng)建與維護(hù)_第2頁
第3章關(guān)系數(shù)據(jù)庫的創(chuàng)建與維護(hù)_第3頁
第3章關(guān)系數(shù)據(jù)庫的創(chuàng)建與維護(hù)_第4頁
第3章關(guān)系數(shù)據(jù)庫的創(chuàng)建與維護(hù)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章 關(guān)系數(shù)據(jù)庫的創(chuàng)建與維護(hù) uSQl Server 2005概述uSQL Server數(shù)據(jù)庫組成 u數(shù)據(jù)庫的創(chuàng)建和維護(hù)數(shù)據(jù)庫的創(chuàng)建和維護(hù)數(shù)據(jù)表約數(shù)和數(shù)據(jù)完整性控制索引的創(chuàng)建和維護(hù)3.1Microsoft SQL Server 2005概述概述 Microsoft SQL 是Microsoft公司在Windows平臺上開發(fā)一個高性能關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它支持關(guān)系數(shù)據(jù)庫的創(chuàng)建和管理。可以應(yīng)用在網(wǎng)絡(luò)環(huán)境下客戶機(jī)/服務(wù)器、瀏覽器/服務(wù)器結(jié)構(gòu)的信息系統(tǒng)中,作為支持聯(lián)機(jī)事務(wù)處理系統(tǒng)、聯(lián)機(jī)分析處理系統(tǒng)的數(shù)據(jù)庫服務(wù)器。 類似地,還有很多商用數(shù)據(jù)庫管理系統(tǒng),例如Oracle公司的Oracle,IBM公司的D

2、B2等也經(jīng)常用于建設(shè)大規(guī)模的信息系統(tǒng)。還有,桌面型數(shù)據(jù)庫管理系統(tǒng),例如Microsoft 公司的Foxpro, Access等,可用于構(gòu)建小型信息系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System, DBMS)是數(shù)據(jù)庫系統(tǒng)的一個重要組成部分,是位于應(yīng)用程序與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫應(yīng)用程序提出數(shù)據(jù)操作要求,通過DBMS,才能訪問數(shù)據(jù)庫。數(shù)據(jù)庫管理員也是通過DBMS對數(shù)據(jù)庫實施管理。 DBMS是創(chuàng)建和使用數(shù)據(jù)庫必不可少的軟件!什么是數(shù)據(jù)庫管理系統(tǒng)?什么是數(shù)據(jù)庫管理系統(tǒng)?(1)數(shù)據(jù)定義(2)數(shù)據(jù)操縱(3)數(shù)據(jù)庫運行管理(4)數(shù)據(jù)庫維護(hù)(5)支持?jǐn)?shù)據(jù)庫語言數(shù)據(jù)庫

3、管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng) 的主要功能的主要功能建立數(shù)據(jù)庫,定義數(shù)據(jù)庫的模式結(jié)構(gòu)、數(shù)據(jù)庫的完整性約束規(guī)則和安全性控制方式實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的檢索以及更新(包括插入、刪除和修改)包括并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行、數(shù)據(jù)庫的內(nèi)部管理和維護(hù)數(shù)據(jù)庫的備份和恢復(fù)、導(dǎo)入和導(dǎo)出功能,數(shù)據(jù)庫的重組功能和性能監(jiān)視、分析功能等支持使用數(shù)據(jù)庫語言來使用和管理數(shù)據(jù)庫,關(guān)系型DBMS支持SQL語言(1)圖形化的操作環(huán)境 Windows風(fēng)格的可視化操作環(huán)境,易于學(xué)習(xí)和使用。(2) 高性能的數(shù)據(jù)庫管理和使用功能 支持高性能應(yīng)用,支持分布式查詢訪問多數(shù)據(jù)源、充分的數(shù)據(jù)庫完整性保護(hù)等。 (3) 可伸縮性和高度可用

4、性 根據(jù)訪問量動態(tài)使用軟、硬件資源;支持從 KB 到TB 數(shù)量級的數(shù)據(jù)庫;7*24可用性。(4)與Internet應(yīng)用的集成 提供了豐富的XML支持,可以輕松地存儲和檢索數(shù)據(jù),并將查詢結(jié)果直接用于各種網(wǎng)頁程序。 (5) 對數(shù)據(jù)倉庫的支持 提供數(shù)據(jù)倉庫組建和數(shù)據(jù)分析工具,有效支持決策分析處理。 SQL Server的主要特性的主要特性 SQL Server主要管理工具主要管理工具 SQL Server提供了一整套數(shù)據(jù)庫系統(tǒng)管理工具和實用程序,打開“開始/程序/Microsoft SQL Server2005 ”菜單即可看到如下所示的SQL Server程序組 : 1SQL Server Mana

5、gement Studio SQL Server Management Studio 是一個管理平臺,集成了多個圖形工具和豐富的腳本支持。用于建立、訪問、配置、控制、管理和開發(fā)數(shù)據(jù)庫。啟動SQL Server Management Studio 選擇“開始/程序/Microsoft SQL Server2005/ SQL Server Management Studio”菜單出現(xiàn)“連接到服務(wù)器”窗口。服務(wù)器類型:指明要連接的服務(wù)。如服務(wù)器類型:指明要連接的服務(wù)。如果是管理和訪問數(shù)據(jù)庫服務(wù)器,選擇果是管理和訪問數(shù)據(jù)庫服務(wù)器,選擇“數(shù)據(jù)庫引擎數(shù)據(jù)庫引擎”。服務(wù)器名稱:選擇或輸入該服務(wù)器的服務(wù)器名稱

6、:選擇或輸入該服務(wù)器的計算機(jī)名稱或計算機(jī)名稱或IPIP地址,也可輸入地址,也可輸入“. .”或或“(locallocal)”,表示本機(jī)服務(wù)器。,表示本機(jī)服務(wù)器。身份驗證:指明驗證方身份驗證:指明驗證方式。注意式。注意SQL ServerSQL Server身身份驗證需用戶名和密碼,份驗證需用戶名和密碼,默認(rèn)用戶為默認(rèn)用戶為“sasa” 。SQL Server Management Studio已在本SQL Server Management Studio下注冊的服務(wù)器,可啟動或停止服務(wù)器,更改連接選項所有數(shù)據(jù)庫對象的樹型視圖??梢詾g覽、管理、維護(hù)所有數(shù)據(jù)庫對象。當(dāng)選擇某一數(shù)據(jù)庫對象后,中間的“

7、摘要”窗口自動顯示該對象所包含的下一級對象或該對象的詳細(xì)內(nèi)容。創(chuàng)建數(shù)據(jù)庫對象所需要使用的基本SQL語句段的文件,對復(fù)雜腳本定義提供一種快捷支持,可方便地利用模板創(chuàng)建各種數(shù)據(jù)庫對象 方便對腳本的集中編輯、保存和管理??山⒁粋€項目對多個腳本進(jìn)行管理,多個項目又可作為一個解決方案。SQL Server Management Studio“新建查詢”可打開查詢編輯器窗口,用于編輯SQL語句,執(zhí)行和查看結(jié)果。例如,查詢學(xué)生表的信息:2SQL Server Configuration Manager 管理與SQL Server相關(guān)聯(lián)的服務(wù)。啟動: “開始/程序/Microsoft SQL Server2

8、005/配置工具/SQL Server Configuration Manager” 。點擊左邊的“SQL Server 2005服務(wù)”,右邊窗格顯示所有SQL Server服務(wù),包括已注冊的不同數(shù)據(jù)庫服務(wù)器實例的服務(wù)。這些服務(wù)是SQL Server提供各項管理和服務(wù)功能的基礎(chǔ),如果服務(wù)停止,相關(guān)功能就無法使用。服務(wù)有3種狀態(tài):停止(紅色)、啟動(綠色)、暫停(藍(lán)色)。SQL Server的核心服務(wù)組件,是實際的數(shù)據(jù)庫服務(wù)器,該服務(wù)啟動后,客戶端才可以連接到服務(wù)器。一般的數(shù)據(jù)庫功能都由它提供。作業(yè)調(diào)度和管理,支持?jǐn)?shù)據(jù)庫定時、自動備份、維護(hù),監(jiān)視數(shù)據(jù)庫、異常告警等功能,必需和SQL Server

9、服務(wù)一起使用。対數(shù)據(jù)倉庫、商務(wù)智能和line-of-business解決方案提供分析支持偵聽對SQL Server 資源的傳入請求,提供計算機(jī)上安裝的 SQL Server 實例的有關(guān)信息支持基于全文索引的數(shù)據(jù)庫表的全文搜索服務(wù)可用于數(shù)據(jù)質(zhì)量管理和數(shù)據(jù)清洗。通過數(shù)據(jù)分析和數(shù)據(jù)挖掘,實現(xiàn)數(shù)據(jù)提取、轉(zhuǎn)換和加載。 SQL Server2005網(wǎng)絡(luò)配置,支持完成本計算機(jī)上的 SQL Server服務(wù)器的網(wǎng)絡(luò)協(xié)議管理,如Shared Memory、TCP/IP、Named Pipes等,主要任務(wù)包括:啟動或停止某個網(wǎng)絡(luò)協(xié)議,配置網(wǎng)絡(luò)協(xié)議,例如修改協(xié)議所用端口、加密方法等。SQL Native Clien

10、t 配置,支持配置本服務(wù)器上運行的客戶機(jī)程序的網(wǎng)絡(luò)協(xié)議。其他客戶機(jī)上需要安裝并配置SQL Native Client來支持客戶機(jī)程序與SQL Server連接。主要功能:指定連接到 SQL Server 時的協(xié)議順序,配置客戶端連接協(xié)議,創(chuàng)建 SQL Server 的別名,使客戶端能用自定義連接字符串進(jìn)行連接。 數(shù)據(jù)庫在信息系統(tǒng)中用于實現(xiàn)數(shù)據(jù)的存儲和管理,它是SQL Server的主要管理對象。3.2 SQL Server數(shù)據(jù)庫基礎(chǔ)數(shù)據(jù)庫基礎(chǔ) 數(shù)據(jù)庫不僅存儲數(shù)據(jù),所有與數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理操作有關(guān)的信息也都存儲其中。 因此,數(shù)據(jù)庫并不是簡單的數(shù)據(jù)集合!SQL Server數(shù)據(jù)庫管理的數(shù)據(jù)庫對象有

11、兩類:系統(tǒng)數(shù)據(jù)庫和用戶自定義數(shù)據(jù)庫。 SQL Server數(shù)據(jù)庫分類數(shù)據(jù)庫分類 (1)系統(tǒng)數(shù)據(jù)庫:存放SQL Server工作時所需要的系統(tǒng)級信息,系統(tǒng)自動維護(hù)和管理。數(shù)據(jù)庫數(shù)據(jù)庫主要作用主要作用master從整體上控制SQL Server系統(tǒng)和用戶數(shù)據(jù)庫的運行。保存登錄標(biāo)識、系統(tǒng)配置、用戶數(shù)據(jù)庫基本信息等。該庫非常重要,應(yīng)設(shè)置權(quán)限禁止一般用戶訪問,另外要及時備份model是新建數(shù)據(jù)庫的模板,包含了每個用戶數(shù)據(jù)庫都需要的一些系統(tǒng)表,SQL Server以它為基礎(chǔ)創(chuàng)建新的數(shù)據(jù)庫msdb支持SQL Server Agent服務(wù),它記錄有關(guān)作業(yè)、警報、操作員等信息tempdb是一個臨時數(shù)據(jù)庫,它為S

12、QL Server的查詢、存儲過程等的執(zhí)行提供臨時存儲SQL Server數(shù)據(jù)庫分類數(shù)據(jù)庫分類 (2)用戶自定義數(shù)據(jù)庫:用戶根據(jù)數(shù)據(jù)管理的需要建立的數(shù)據(jù)庫,由用戶創(chuàng)建和維護(hù)。 例如,為了管理教務(wù)信息,可建立教務(wù)系統(tǒng)數(shù)據(jù)庫,為了實現(xiàn)網(wǎng)上書店,建立圖書銷售數(shù)據(jù)庫等。 SQL Server自帶了3個樣本數(shù)據(jù)庫,供用戶學(xué)習(xí)使用:AdventureWorks是個OLTP數(shù)據(jù)庫示例AdventureWorksDW是個OLAP數(shù)據(jù)庫倉庫示例AdventureWorksAS是個分析服務(wù)數(shù)據(jù)庫示例表:存儲數(shù)據(jù)的二維關(guān)系表表:存儲數(shù)據(jù)的二維關(guān)系表視圖:通過查詢從一個或多個數(shù)據(jù)視圖:通過查詢從一個或多個數(shù)據(jù)表獲得的

13、虛擬表,可簡化用戶數(shù)據(jù)表獲得的虛擬表,可簡化用戶數(shù)據(jù)顯示、增強(qiáng)數(shù)據(jù)庫安全性顯示、增強(qiáng)數(shù)據(jù)庫安全性可編程性:包括存儲過程、觸發(fā)器、規(guī)可編程性:包括存儲過程、觸發(fā)器、規(guī)則、函數(shù)、默認(rèn)值等則、函數(shù)、默認(rèn)值等安全性:包括用戶、角色、密鑰、證書等安全性:包括用戶、角色、密鑰、證書等 數(shù)據(jù)庫由一組存儲、管理和使用數(shù)據(jù)的對象構(gòu)成。這些對象及相互關(guān)系構(gòu)成了數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)。觀察master數(shù)據(jù)庫,可看到數(shù)據(jù)庫所包含的主要對象:SQL Server數(shù)據(jù)庫組成數(shù)據(jù)庫組成數(shù)據(jù)庫文件在磁盤上存儲的數(shù)據(jù)庫文件有三種:數(shù)據(jù)庫的物理存儲結(jié)構(gòu)數(shù)據(jù)庫的物理存儲結(jié)構(gòu) 主數(shù)據(jù)文件主數(shù)據(jù)文件:用來存儲數(shù)據(jù)庫的系統(tǒng)表和所有對象啟動信

14、息,并且存儲數(shù)據(jù)庫的數(shù)據(jù)。每個數(shù)據(jù)庫都有且只有1個主數(shù)據(jù)文件。主數(shù)據(jù)文件使用.MDF為擴(kuò)展名。次數(shù)據(jù)文件次數(shù)據(jù)文件:用來存儲不能置于主數(shù)據(jù)文件中的其他數(shù)據(jù)。每個數(shù)據(jù)庫可以包含0個或多個次數(shù)據(jù)文件。擴(kuò)展名為.NDF。事務(wù)日志文件事務(wù)日志文件:記錄SQL Server執(zhí)行的所有事務(wù)以及由這些事務(wù)操作引起的數(shù)據(jù)庫的變化,可用于恢復(fù)數(shù)據(jù)庫。 每個數(shù)據(jù)庫至少包含1個事務(wù)日志文件,擴(kuò)展名為.LDF。每個數(shù)據(jù)庫至少包含2個文件:主數(shù)據(jù)文件主數(shù)據(jù)文件和事務(wù)日志文件事務(wù)日志文件。(2) 數(shù)據(jù)文件組l用戶自定義文件組(User_defined):指在創(chuàng)建或更改數(shù)據(jù)庫時,用戶明確創(chuàng)建的任何文件組。 l主文件組(Pr

15、imary):包含主數(shù)據(jù)文件和其它文件。所有系統(tǒng)表都包含在主文件組中 例如:將兩個不同物理磁盤上的數(shù)據(jù)庫文件組成一個文件組,在該組上建立的數(shù)據(jù)表中的數(shù)據(jù)會存儲在不同的物理設(shè)備上,查詢操作可能并行。 文件組是用戶對數(shù)據(jù)庫文件(不包括事務(wù)日志文件)進(jìn)行分組而形成的。合理使用文件組對數(shù)據(jù)進(jìn)行分布存儲,可以提高表中數(shù)據(jù)的操作性能。 若不指定用戶定義文件組,則所有數(shù)據(jù)文件都包含在主文件組中。一個文件只能是一個文件組的成員,一個文件或文件組只能被一個數(shù)據(jù)庫使用!3.3數(shù)據(jù)庫的創(chuàng)建與維護(hù)數(shù)據(jù)庫的創(chuàng)建與維護(hù) 1. 數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫創(chuàng)建 數(shù)據(jù)庫創(chuàng)建就是在磁盤上建立數(shù)據(jù)庫文件的過程。下面通過一個實例介紹使用Man

16、agement Studio創(chuàng)建數(shù)據(jù)庫的步驟和方法 。【例3.2】 創(chuàng) 建 數(shù) 據(jù)庫School,它包含主數(shù)據(jù)文件SchoolDB.MDF,初始大小為5MB,事務(wù)日志文件SchoolDB_log.LDF,并將這 兩 個 文 件 建 立 在C:DBExample文件夾下,其他按照默認(rèn)設(shè)置不變?!纠?.2】操作步驟:操作步驟: 在桌面上選擇“我的電腦”,在C:下新建文件夾,命名為“DBExample”。 在對象資源管理器窗口右擊“數(shù)據(jù)庫”,從快捷菜單中選擇“新建數(shù)據(jù)庫”命令,將彈出 “新建數(shù)據(jù)庫”對話框。 提示:提示:SQL Server以model數(shù)據(jù)庫為模板創(chuàng)建一個新的數(shù)據(jù)庫,其數(shù)據(jù)文件的默認(rèn)

17、值為:初始大小3MB,以1MB自動增長,不限制增長;事務(wù)日志文件的默認(rèn)值為:初始大小1MB,按10%的比例自動增長,不限制增長。 將數(shù)據(jù)文件的邏輯名稱修改為“SchoolDB”,在路徑下的文本框輸入或點擊其后“”按鈕選擇修改數(shù)據(jù)庫文件的位置為“C:DBExample”。在初始大小后的文本框中把3改為5。 將日志文件的邏輯名稱修改為“SchoolDB_log”,“路徑”設(shè)置為“C:DBExample”。 單擊“確定”按鈕,數(shù)據(jù)庫創(chuàng)建完成。 “選擇頁”默認(rèn)為“常規(guī)”,在“數(shù)據(jù)庫名稱”文本框中輸入“School”。 使用“我的電腦”查看“C:DBExample”文件夾,可以看到文件SchoolDB和

18、SchoolDB_log。建好的School數(shù)據(jù)庫在對象資源管理器展開的“數(shù)據(jù)庫”下可以看到,并且系統(tǒng)在School下自動創(chuàng)建了其包含的相關(guān)對象。 2. 數(shù)據(jù)庫維護(hù)數(shù)據(jù)庫維護(hù) 數(shù)據(jù)庫創(chuàng)建后,磁盤上的數(shù)據(jù)文件和日志文件名就不能改變了。對已存在的數(shù)據(jù)庫可以進(jìn)行如下的修改:增加或刪除數(shù)據(jù)文件改變數(shù)據(jù)文件的大小和增長方式改變?nèi)罩疚募拇笮『驮鲩L方式增加或刪除日志文件增加或刪除文件組重命名數(shù)據(jù)文件,書庫文件和日志文件邏輯名。(1)修改數(shù)據(jù)庫)修改數(shù)據(jù)庫右單擊需要修改的數(shù)據(jù)庫,在快捷菜單中選擇“屬性”命令,彈出“數(shù)據(jù)庫屬性”窗口。其中包含8個選項,每個選項下可對數(shù)據(jù)庫的相關(guān)屬性進(jìn)行修改。(2)刪除數(shù)據(jù)庫)

19、刪除數(shù)據(jù)庫操作步驟如下:操作步驟如下: 右擊要刪除的數(shù)據(jù)庫,在彈出的快捷菜單中選擇“刪除”命令。 在彈出的“刪除對象”對話框中單擊“確定”按鈕,即可刪除要刪除的數(shù)據(jù)庫。 提示:提示:注意數(shù)據(jù)庫一旦被刪除,數(shù)據(jù)庫文件及其數(shù)據(jù)都被從服務(wù)器上的磁盤中刪除,該數(shù)據(jù)庫中所有的對象均被刪除,即永久性刪除,不能恢復(fù),所以刪除操作要慎重!新建一個數(shù)據(jù)庫操作完成后,只是建立了數(shù)據(jù)庫框架和相關(guān)的系統(tǒng)對象, 接下來的任務(wù)是建立具體的數(shù)據(jù)表。例如:建立如下教務(wù)系統(tǒng)的數(shù)據(jù)庫,要建立6個數(shù)據(jù)表,并建立表之間的關(guān)系。具體定義見教材P37頁。3.4 數(shù)據(jù)表的創(chuàng)建和維護(hù)數(shù)據(jù)表的創(chuàng)建和維護(hù) 1)設(shè)計表結(jié)構(gòu))設(shè)計表結(jié)構(gòu),包括: 定

20、義字段(1)創(chuàng)建列名、數(shù)據(jù)類型 (2)設(shè)置列屬性也稱列約束。包括:PRIMARY KEY:主關(guān)鍵字約束UNIQUE:唯一性約束CHECK:檢查約束DEFAULT:默認(rèn)值約束NOT NULL:非空約束 保存表3)表創(chuàng)建后,可輸入一些記錄數(shù)據(jù)來檢驗表結(jié)構(gòu)。創(chuàng)建數(shù)據(jù)表的一般過程:2)建立表之間的關(guān)系:)建立表之間的關(guān)系:依次建立各個表,再建立關(guān)系。1SQL Server數(shù)據(jù)類型數(shù)據(jù)表中每一列都需要定義明確的數(shù)據(jù)類型,數(shù)據(jù)類型決定了該字段的數(shù)據(jù)取值類型、范圍和存儲格式。數(shù)據(jù)類型數(shù)據(jù)類型主要類型符號標(biāo)識主要類型符號標(biāo)識整型bigint、int、smallint 、tinyint浮點型float、real

21、、decimal、numeric字符型char、varchar、nchar、nvarchar日期時間型datetime、smalldatetime文本型text、ntext圖像型image貨幣型money、smallmoney位型bit二進(jìn)制型binary、varbinary其他uniqueidentifierSQL Server的系統(tǒng)數(shù)據(jù)類型(1)整型 整型用于存儲整數(shù),有4種整型分別用于存儲不同范圍的整數(shù)。數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)范圍數(shù)據(jù)范圍占用存儲空間占用存儲空間bigint-263 263-18 個字節(jié)int-231 231-14 個字節(jié)smallint-215 215-12 個字節(jié)tin

22、yint0 2551 個字節(jié)float和real是近似數(shù)值型,以科學(xué)計數(shù)法表示數(shù)據(jù);decimal 和numeric是精確數(shù)值類型,以明確、完整的精度(固定精度和小數(shù)位數(shù))存儲數(shù)據(jù)。 (2)浮點型 浮點型用于存儲含小數(shù)的十進(jìn)制數(shù)。 數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)范圍數(shù)據(jù)范圍精確度精確度占用存儲空間占用存儲空間float-1.79E+3081.79E+308 可精確到第15位小數(shù)8 個字節(jié)real-3.40E+383.40E+38 可精確到第7位小數(shù)4 個字節(jié)decimal-1038+11038-1完整精度217 個字節(jié)numeric-1038+11038-1完整精度217 個字節(jié) 例如:指定某字段為精確

23、數(shù)值型,精度為5,小數(shù)位數(shù)為2,即decimal(5,2)或numeric(5,2) , 可表示數(shù)據(jù)范圍為:-999.99-999.99。decimal decimal 和和numericnumeric格式如下:格式如下:decimal |numeric(p,s)其中:p為精度,s為小數(shù)位數(shù),s的默認(rèn)值為0。 decimal 和numeric的區(qū)別在于decimal不能應(yīng)用于帶有Identity的列。(3)字符型和文本型 用于存儲由字母、符號和數(shù)字組成的字符串。字符串常量要用單引號作為起止界限 。例如:No1。SQL Server SQL Server 字符數(shù)據(jù)類型和文本數(shù)據(jù)類型字符數(shù)據(jù)類型和

24、文本數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型定義格式定義格式占用存儲空間占用存儲空間charchar(n),存儲,存儲ANSI字符,字符,n表示字符串的長表示字符串的長度,度,1=n =8000定長,最大定長,最大8KBvarcharvarchar (n) ,存儲,存儲ANSI字符,字符,n表示字符串表示字符串可達(dá)到的最大長度可達(dá)到的最大長度1=n =8000變長,最大變長,最大8KBncharnchar(n),存儲,存儲Unicode字符,字符,n表示字符串表示字符串的長度,的長度,1=n =4000定長,最大定長,最大8KBnvarcharnvarchar (n) ,存儲,存儲Unicode字符,字符,n

25、表示字符表示字符串可達(dá)到的最大長度串可達(dá)到的最大長度1=n ”或“” 鍵可以移向下一個字段。 當(dāng)一條記錄最后一個字段輸入完畢按“回車”鍵后,光標(biāo)將自動轉(zhuǎn)到下一行的第一個字段處,便可插入下一條記錄。 輸入完數(shù)據(jù),單擊“ ”按鈕或“文件/保存”菜單。或者單擊“表-dbo.Student”窗口的“關(guān)閉”按鈕,添加的記錄就保存到數(shù)據(jù)表中。插入記錄:插入記錄:5. 數(shù)據(jù)表記錄維護(hù)數(shù)據(jù)表記錄維護(hù) 定位將要刪除的記錄,右擊后在彈出的快捷菜單中選擇“刪除”命令。2)刪除記錄1)修改記錄定位將要修改的記錄字段,對該字段值進(jìn)行編輯修改。 彈出刪除確認(rèn)對話框,單擊“是”按鈕即刪除選擇的記錄。數(shù)據(jù)的完整性控制:指保護(hù)

26、數(shù)據(jù)庫中的數(shù)據(jù)的正確性、有效性和相容性,防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯誤信息進(jìn)入數(shù)據(jù)庫,并且使數(shù)據(jù)符合所描述的業(yè)務(wù)規(guī)則。SQL Server使提供了定義約束、檢查和保持?jǐn)?shù)據(jù)符合約束的完整性控制機(jī)制。通過限制表的字段、記錄以及表之間的數(shù)據(jù)一致來保證數(shù)據(jù)完整性。3.5 數(shù)據(jù)表約束和數(shù)據(jù)完整性控制數(shù)據(jù)表約束和數(shù)據(jù)完整性控制 SQL Server常用完整性約束機(jī)制完整性完整性約束約束作用作用實體實體完整性完整性主關(guān)鍵字約束(Primary Key) 保證表中記錄行的唯一性唯一性約束(Unique)保證在非關(guān)鍵字字段不出現(xiàn)重復(fù)值域域完整性完整性 默認(rèn)值約束(Default)對沒有插入值的列自動

27、添加表定義時對該列設(shè)置的默認(rèn)值非空值約束(Not Null)限定某一列必須有值,即不允許空值檢查約束(Check)限定某一列中可接受的值或數(shù)據(jù)格式參照參照完整性完整性外關(guān)鍵字(Foreign Key) 通過表間關(guān)系約束字段值的有效性【例例3.43.4】在數(shù)據(jù)庫School中定義學(xué)生表T_Student的主鍵為“StudentCode”?!纠?.53.5】在數(shù)據(jù)庫School的學(xué)生表Student中不允許出現(xiàn)姓名且生日相同的記錄,并按姓名升序和生日降序排列,即對“StudentName”和“Birthday”字段組合定義唯一性約束。 實體完整性 主關(guān)鍵字約束(Primary Key)唯一性約束

28、(Unique) 主關(guān)鍵字是表中能保證表中記錄唯一性的一個或多個字段的組合。主鍵的值不能重復(fù),且不能為空。一個表只能有一個主鍵。 唯一性約束可保證非主鍵列不輸入重復(fù)值。對非主鍵字段或字段的組合強(qiáng)制唯一性。 對允許空值的字段強(qiáng)制唯一性。 1. 實體完整性主要體現(xiàn)在表中記錄的唯一性。【例例3.43.4】在數(shù)據(jù)庫School中定義學(xué)生表T_Student的主鍵為“StudentCode”。 打開Student表的“表設(shè)計”窗口,右擊任一字段行,從快捷菜單中選擇“索引/鍵”命令,進(jìn)入“索引/鍵”窗口。 選擇“添加”命令,將名稱修改為“IX_StudentNameBirth”。點擊“列”后“”按鈕,打開

29、索引列窗口,分別在兩行中選擇“StudentName”、“Birthday”,并選擇排序順序,點擊“確定”返回“索引/鍵”頁。在 “是唯一的”其后下拉列表框中選擇“是”。【例例3.53.5】在數(shù)據(jù)庫School的學(xué)生表Student中不允許出現(xiàn)姓名且生日相同的記錄,并按姓名升序和生日降序排列,即對“StudentName”和“Birthday”字段組合定義唯一性約束。 域完整性 默認(rèn)值約束(Default) 非空值約束(Not Null) 檢查約束(Check) 默認(rèn)值約束使用戶能夠定義一個值,每當(dāng)用戶沒有在某一列中輸入值時,則系統(tǒng)將所定義的值提供給這一列 非空值約束要求記錄中的每一列必須有值

30、,即使是空(NULL)檢查約束限制某一列中可接受的值或格式 2. 域完整性主要體現(xiàn)在表中字段值的有效性?!纠?.63.6】在數(shù)據(jù)庫School的學(xué)生表T_Student中,設(shè)置性別Sex字段的默認(rèn)值為“男”。 【例例3.73.7】在數(shù)據(jù)庫School的學(xué)生表T_Student中,設(shè)置StudentCode、StudentName、ClassCode、Sex字段為非空值,其他字段允許為空。 【例例3.83.8】在數(shù)據(jù)庫School的學(xué)生表T_Student中,設(shè)置Sex列的值只允許是“男”或“女”。 【例例3.63.6】在數(shù)據(jù)庫School的學(xué)生表T_Student中,設(shè)置性別Sex字段的默認(rèn)

31、值為“男”。 打開Student表的“表設(shè)計”頁面,選擇“Sex”字段在 “列屬性”窗格中的“默認(rèn)值或綁定”處填寫男。注意因為Sex字段是字符類型,男采用西文單引號擴(kuò)起來。當(dāng)保存表時,該約束設(shè)置即保存在數(shù)據(jù)庫中?!纠?.73.7】在數(shù)據(jù)庫School的學(xué)生表T_Student中,設(shè)置StudentCode、StudentName、ClassCode、Sex字段為非空值,其他字段允許為空。 打開Student表的“表設(shè)計”窗口,一個字段在新建立時默認(rèn)允許空(),如果要設(shè)置為非空,只需要點擊該字段在允許空位置的單元格將“”去掉即可,再次點擊又可以設(shè)置允許空“”。當(dāng)保存表時,該約束設(shè)置即保存在數(shù)據(jù)

32、庫中?!纠?.83.8】在數(shù)據(jù)庫School的學(xué)生表T_Student中,設(shè)置Sex列的值只允許是“男”或“女”。 打開Student表的“表設(shè)計”窗口,右擊任一字段行,從快捷菜單中選擇“CHECK約束”命令,進(jìn)入“CHECK約束” 選擇“添加”命令,將名稱修改為 “CK_Student_Sex”。 點擊“表達(dá)式”后的按鈕出現(xiàn) “CHECK約束表達(dá)式”對話框,輸入:Sex = 男 or Sex = 女 將“表設(shè)計器”列表中的“強(qiáng)制用于INSERT 和 UPDATE”、“強(qiáng)制用于復(fù)制”、“在創(chuàng)建或重新啟用時檢查現(xiàn)存數(shù)據(jù)” 都改為“是”。參照完整性 : 外關(guān)鍵字(Foreign Key) 3.

33、參照完整性主要體現(xiàn)在通過表間關(guān)系約束字段的值的有效性。 兩個建立關(guān)聯(lián)關(guān)系的表中,在主表中相關(guān)字段定義了主鍵或唯一性約束,在從表中將相關(guān)字段定義為外外鍵。這樣,外鍵的取值必須是主鍵中存在的值或空值?!纠?.93.9】在數(shù)據(jù)庫School的學(xué)生表Student和Class表間建立關(guān)系,實施參照完整性約束。在該關(guān)系中,將Class的ClassCode字段設(shè)置為主鍵,將Student 的ClassCode設(shè)置為外鍵,并實施參照完整性。 【例例3.93.9】在數(shù)據(jù)庫School的學(xué)生表Student和Class表間建立關(guān)系,實施參照完整性約束。 打開外表Student表的“表設(shè)計”窗口,右擊并選擇“關(guān)

34、系”命令,出現(xiàn) “外鍵關(guān)系”對話框。 單擊“添加”按鈕,點擊“表和列規(guī)范”后的按鈕,出現(xiàn)“表和列”對話框,將主鍵表改為“Class”,關(guān)系的主鍵字段為ClassCode,在“外鍵表”Student下選擇外鍵字段ClassCode。 關(guān)系名自動變?yōu)椤癋K_Student_Class,該名可修改。 在“外鍵關(guān)系”窗口的 “表和列規(guī)范”、“INSERT 和 UPDATE 規(guī)范”進(jìn)行設(shè)置,實施參照完整性。 選擇“關(guān)閉”按鈕完成關(guān)系創(chuàng)建。在數(shù)據(jù)庫管理系統(tǒng)中,關(guān)系表中的數(shù)據(jù)按記錄存儲。為了提高對數(shù)據(jù)記錄的查詢效率,通常采用索引方法來建立數(shù)據(jù)記錄的存取順序。索引與書的目錄或字典檢字索引的原理是一樣的。數(shù)據(jù)庫管理系統(tǒng)一般集成了多種復(fù)雜的快速查找算法,但這些算法基本上都是以數(shù)據(jù)記錄排序為前提的。 索引的

溫馨提示

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

評論

0/150

提交評論