D3-關(guān)系數(shù)據(jù)庫(kù)的創(chuàng)建與維護(hù)_第1頁(yè)
D3-關(guān)系數(shù)據(jù)庫(kù)的創(chuàng)建與維護(hù)_第2頁(yè)
D3-關(guān)系數(shù)據(jù)庫(kù)的創(chuàng)建與維護(hù)_第3頁(yè)
D3-關(guān)系數(shù)據(jù)庫(kù)的創(chuàng)建與維護(hù)_第4頁(yè)
D3-關(guān)系數(shù)據(jù)庫(kù)的創(chuàng)建與維護(hù)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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)介

第3章關(guān)系數(shù)據(jù)庫(kù)的創(chuàng)建與維護(hù)SQlServer2005概述SQLServer數(shù)據(jù)庫(kù)組成數(shù)據(jù)庫(kù)的創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)的創(chuàng)建和維護(hù)數(shù)據(jù)表的創(chuàng)建和維護(hù)數(shù)據(jù)表約數(shù)和數(shù)據(jù)完整性控制索引的創(chuàng)建和維護(hù)3.1MicrosoftSQLServer2005概述

MicrosoftSQL是Microsoft公司在Windows平臺(tái)上開(kāi)發(fā)一個(gè)高性能關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它支持關(guān)系數(shù)據(jù)庫(kù)的創(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ù)庫(kù)服務(wù)器。類(lèi)似地,還有很多商用數(shù)據(jù)庫(kù)管理系統(tǒng),例如Oracle公司的Oracle,IBM公司的DB2等也經(jīng)常用于建設(shè)大規(guī)模的信息系統(tǒng)。還有,桌面型數(shù)據(jù)庫(kù)管理系統(tǒng),例如Microsoft公司的Foxpro,Access等,可用于構(gòu)建小型信息系統(tǒng)。數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)是數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)重要組成部分,是位于應(yīng)用程序與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫(kù)應(yīng)用程序提出數(shù)據(jù)操作要求,通過(guò)DBMS,才能訪問(wèn)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理員也是通過(guò)DBMS對(duì)數(shù)據(jù)庫(kù)實(shí)施管理。DBMS是創(chuàng)建和使用數(shù)據(jù)庫(kù)必不可少的軟件!什么是數(shù)據(jù)庫(kù)管理系統(tǒng)?(1)數(shù)據(jù)定義(2)數(shù)據(jù)操縱(3)數(shù)據(jù)庫(kù)運(yùn)行管理(4)數(shù)據(jù)庫(kù)維護(hù)(5)支持?jǐn)?shù)據(jù)庫(kù)語(yǔ)言數(shù)據(jù)庫(kù)管理系統(tǒng)的主要功能建立數(shù)據(jù)庫(kù),定義數(shù)據(jù)庫(kù)的模式結(jié)構(gòu)、數(shù)據(jù)庫(kù)的完整性約束規(guī)則和安全性控制方式實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的檢索以及更新(包括插入、刪除和修改)包括并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行、數(shù)據(jù)庫(kù)的內(nèi)部管理和維護(hù)數(shù)據(jù)庫(kù)的備份和恢復(fù)、導(dǎo)入和導(dǎo)出功能,數(shù)據(jù)庫(kù)的重組功能和性能監(jiān)視、分析功能等支持使用數(shù)據(jù)庫(kù)語(yǔ)言來(lái)使用和管理數(shù)據(jù)庫(kù),關(guān)系型DBMS支持SQL語(yǔ)言(1)圖形化的操作環(huán)境

Windows風(fēng)格的可視化操作環(huán)境,易于學(xué)習(xí)和使用。(2)高性能的數(shù)據(jù)庫(kù)管理和使用功能

支持高性能應(yīng)用,支持分布式查詢?cè)L問(wèn)多數(shù)據(jù)源、充分的數(shù)據(jù)庫(kù)完整性保護(hù)等。

(3)可伸縮性和高度可用性根據(jù)訪問(wèn)量動(dòng)態(tài)使用軟、硬件資源;支持從KB到TB數(shù)量級(jí)的數(shù)據(jù)庫(kù);7*24可用性。

(4)與Internet應(yīng)用的集成提供了豐富的XML支持,可以輕松地存儲(chǔ)和檢索數(shù)據(jù),并將查詢結(jié)果直接用于各種網(wǎng)頁(yè)程序。

(5)對(duì)數(shù)據(jù)倉(cāng)庫(kù)的支持

提供數(shù)據(jù)倉(cāng)庫(kù)組建和數(shù)據(jù)分析工具,有效支持決策分析處理。

SQLServer的主要特性

3.1.3SQLServer主要管理工具

SQLServer提供了一整套數(shù)據(jù)庫(kù)系統(tǒng)管理工具和實(shí)用程序,打開(kāi)“開(kāi)始/程序/MicrosoftSQLServer2005

”菜單即可看到如下所示的SQLServer程序組

:1.SQLServerManagementStudio

SQLServerManagementStudio是一個(gè)管理平臺(tái),它集成了多個(gè)圖形工具和豐富的腳本支持,用于建立、訪問(wèn)、配置、控制、管理和開(kāi)發(fā)數(shù)據(jù)庫(kù)。使用它可以對(duì)SQLServer服務(wù)器、數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象進(jìn)行管理。啟動(dòng)SQLServerManagementStudio選擇“開(kāi)始/程序/MicrosoftSQLServer2005/SQLServerManagementStudio”菜單出現(xiàn)“連接到服務(wù)器”窗口。服務(wù)器類(lèi)型:指明要連接的服務(wù)。如果是管理和訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,選擇“數(shù)據(jù)庫(kù)引擎”。服務(wù)器名稱(chēng):選擇或輸入該服務(wù)器的計(jì)算機(jī)名稱(chēng)或IP地址,也可輸入“.”或“(local)”,表示本機(jī)服務(wù)器。身份驗(yàn)證:指明驗(yàn)證方式。注意SQLServer身份驗(yàn)證需用戶名和密碼,默認(rèn)用戶為“sa”

。SQLServerManagementStudio已在本SQLServerManagementStudio下注冊(cè)的服務(wù)器,可啟動(dòng)或停止服務(wù)器,更改連接選項(xiàng)所有數(shù)據(jù)庫(kù)對(duì)象的樹(shù)型視圖??梢詾g覽、管理、維護(hù)所有數(shù)據(jù)庫(kù)對(duì)象。當(dāng)選擇某一數(shù)據(jù)庫(kù)對(duì)象后,中間的“摘要”窗口自動(dòng)顯示該對(duì)象所包含的下一級(jí)對(duì)象或該對(duì)象的詳細(xì)內(nèi)容。創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象所需要使用的基本SQL語(yǔ)句段的文件,對(duì)復(fù)雜腳本定義提供一種快捷支持,可方便地利用模板創(chuàng)建各種數(shù)據(jù)庫(kù)對(duì)象方便對(duì)腳本的集中編輯、保存和管理。可建立一個(gè)項(xiàng)目對(duì)多個(gè)腳本進(jìn)行管理,多個(gè)項(xiàng)目又可作為一個(gè)解決方案。SQLServerManagementStudio“新建查詢”可打開(kāi)查詢編輯器窗口,用于編輯SQL語(yǔ)句,執(zhí)行和查看結(jié)果。例如,查詢學(xué)生表的信息:2.SQLServerConfigurationManager管理與SQLServer相關(guān)聯(lián)的服務(wù)。啟動(dòng):“開(kāi)始/程序/MicrosoftSQLServer2005/配置工具/SQLServerConfigurationManager”。點(diǎn)擊左邊的“SQLServer2005服務(wù)”,右邊窗格顯示所有SQLServer服務(wù),包括已注冊(cè)的不同數(shù)據(jù)庫(kù)服務(wù)器實(shí)例的服務(wù)。這些服務(wù)是SQLServer提供各項(xiàng)管理和服務(wù)功能的基礎(chǔ),如果服務(wù)停止,相關(guān)功能就無(wú)法使用。服務(wù)有3種狀態(tài):停止(紅色)、啟動(dòng)(綠色)、暫停(藍(lán)色)。SQLServer的核心服務(wù)組件,是實(shí)際的數(shù)據(jù)庫(kù)服務(wù)器,該服務(wù)啟動(dòng)后,客戶端才可以連接到服務(wù)器。一般的數(shù)據(jù)庫(kù)功能都由它提供。作業(yè)調(diào)度和管理,支持?jǐn)?shù)據(jù)庫(kù)定時(shí)、自動(dòng)備份、維護(hù),監(jiān)視數(shù)據(jù)庫(kù)、異常告警等功能,必需和SQLServer服務(wù)一起使用。対數(shù)據(jù)倉(cāng)庫(kù)、商務(wù)智能和line-of-business解決方案提供分析支持偵聽(tīng)對(duì)SQLServer資源的傳入請(qǐng)求,提供計(jì)算機(jī)上安裝的SQLServer實(shí)例的有關(guān)信息支持基于全文索引的數(shù)據(jù)庫(kù)表的全文搜索服務(wù)可用于數(shù)據(jù)質(zhì)量管理和數(shù)據(jù)清洗。通過(guò)數(shù)據(jù)分析和數(shù)據(jù)挖掘,實(shí)現(xiàn)數(shù)據(jù)提取、轉(zhuǎn)換和加載。SQLServer2005網(wǎng)絡(luò)配置,支持完成本計(jì)算機(jī)上的SQLServer服務(wù)器的網(wǎng)絡(luò)協(xié)議管理,如SharedMemory、TCP/IP、NamedPipes等,主要任務(wù)包括:?jiǎn)?dòng)或停止某個(gè)網(wǎng)絡(luò)協(xié)議,配置網(wǎng)絡(luò)協(xié)議,例如修改協(xié)議所用端口、加密方法等。SQLNativeClient配置,支持配置本服務(wù)器上運(yùn)行的客戶機(jī)程序的網(wǎng)絡(luò)協(xié)議。其他客戶機(jī)上需要安裝并配置SQLNativeClient來(lái)支持客戶機(jī)程序與SQLServer連接。主要功能:指定連接到SQLServer時(shí)的協(xié)議順序,配置客戶端連接協(xié)議,創(chuàng)建SQLServer的別名,使客戶端能用自定義連接字符串進(jìn)行連接。數(shù)據(jù)庫(kù)在信息系統(tǒng)中用于實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和管理,它是SQLServer的主要管理對(duì)象。3.2SQLServer數(shù)據(jù)庫(kù)基礎(chǔ)

數(shù)據(jù)庫(kù)不僅存儲(chǔ)數(shù)據(jù),所有與數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理操作有關(guān)的信息也都存儲(chǔ)其中。

因此,數(shù)據(jù)庫(kù)并不是簡(jiǎn)單的數(shù)據(jù)集合!SQLServer數(shù)據(jù)庫(kù)管理的數(shù)據(jù)庫(kù)對(duì)象有兩類(lèi):系統(tǒng)數(shù)據(jù)庫(kù)和用戶自定義數(shù)據(jù)庫(kù)。SQLServer數(shù)據(jù)庫(kù)分類(lèi)

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

(2)用戶自定義數(shù)據(jù)庫(kù):用戶根據(jù)數(shù)據(jù)管理的需要建立的數(shù)據(jù)庫(kù),由用戶創(chuàng)建和維護(hù)。例如,為了管理教務(wù)信息,可建立教務(wù)系統(tǒng)數(shù)據(jù)庫(kù),為了實(shí)現(xiàn)網(wǎng)上書(shū)店,建立圖書(shū)銷(xiāo)售數(shù)據(jù)庫(kù)等。

SQLServer自帶了3個(gè)樣本數(shù)據(jù)庫(kù),供用戶學(xué)習(xí)使用:AdventureWorks是個(gè)OLTP數(shù)據(jù)庫(kù)示例AdventureWorksDW是個(gè)OLAP數(shù)據(jù)庫(kù)倉(cāng)庫(kù)示例AdventureWorksAS是個(gè)分析服務(wù)數(shù)據(jù)庫(kù)示例表:存儲(chǔ)數(shù)據(jù)的二維關(guān)系表視圖:通過(guò)查詢從一個(gè)或多個(gè)數(shù)據(jù)表獲得的虛擬表,可簡(jiǎn)化用戶數(shù)據(jù)顯示、增強(qiáng)數(shù)據(jù)庫(kù)安全性可編程性:包括存儲(chǔ)過(guò)程、觸發(fā)器、規(guī)則、函數(shù)、默認(rèn)值等安全性:包括用戶、角色、密鑰、證書(shū)等數(shù)據(jù)庫(kù)由一組存儲(chǔ)、管理和使用數(shù)據(jù)的對(duì)象構(gòu)成。這些對(duì)象及相互關(guān)系構(gòu)成了數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu)。觀察master數(shù)據(jù)庫(kù),可看到數(shù)據(jù)庫(kù)所包含的主要對(duì)象:SQLServer數(shù)據(jù)庫(kù)組成數(shù)據(jù)庫(kù)文件在磁盤(pán)上存儲(chǔ)的數(shù)據(jù)庫(kù)文件有三種:數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)主數(shù)據(jù)文件:用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)的系統(tǒng)表和所有對(duì)象啟動(dòng)信息,并且存儲(chǔ)數(shù)據(jù)庫(kù)的數(shù)據(jù)。每個(gè)數(shù)據(jù)庫(kù)都有且只有1個(gè)主數(shù)據(jù)文件。主數(shù)據(jù)文件使用.MDF為擴(kuò)展名。次數(shù)據(jù)文件:用來(lái)存儲(chǔ)不能置于主數(shù)據(jù)文件中的其他數(shù)據(jù)。每個(gè)數(shù)據(jù)庫(kù)可以包含0個(gè)或多個(gè)次數(shù)據(jù)文件。擴(kuò)展名為.NDF。事務(wù)日志文件:記錄SQLServer執(zhí)行的所有事務(wù)以及由這些事務(wù)操作引起的數(shù)據(jù)庫(kù)的變化,可用于恢復(fù)數(shù)據(jù)庫(kù)。每個(gè)數(shù)據(jù)庫(kù)至少包含1個(gè)事務(wù)日志文件,擴(kuò)展名為.LDF。每個(gè)數(shù)據(jù)庫(kù)至少包含2個(gè)文件:主數(shù)據(jù)文件和事務(wù)日志文件。(2)數(shù)據(jù)文件組用戶自定義文件組(User_defined):指在創(chuàng)建或更改數(shù)據(jù)庫(kù)時(shí),用戶明確創(chuàng)建的任何文件組。

主文件組(Primary):包含主數(shù)據(jù)文件和其它文件。所有系統(tǒng)表都包含在主文件組中例如:將兩個(gè)不同物理磁盤(pán)上的數(shù)據(jù)庫(kù)文件組成一個(gè)文件組,在該組上建立的數(shù)據(jù)表中的數(shù)據(jù)會(huì)存儲(chǔ)在不同的物理設(shè)備上,查詢操作可能并行。

文件組是用戶對(duì)數(shù)據(jù)庫(kù)文件(不包括事務(wù)日志文件)進(jìn)行分組而形成的。合理使用文件組對(duì)數(shù)據(jù)進(jìn)行分布存儲(chǔ),可以提高表中數(shù)據(jù)的操作性能。若不指定用戶定義文件組,則所有數(shù)據(jù)文件都包含在主文件組中。一個(gè)文件只能是一個(gè)文件組的成員,一個(gè)文件或文件組只能被一個(gè)數(shù)據(jù)庫(kù)使用!3.3數(shù)據(jù)庫(kù)的創(chuàng)建與維護(hù)1.數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建就是在磁盤(pán)上建立數(shù)據(jù)庫(kù)文件的過(guò)程。下面通過(guò)一個(gè)實(shí)例介紹使用ManagementStudio創(chuàng)建數(shù)據(jù)庫(kù)的步驟和方法。【例3.2】創(chuàng)建數(shù)據(jù)庫(kù)School,它包含主數(shù)據(jù)文件SchoolDB.MDF,初始大小為5MB,事務(wù)日志文件SchoolDB_log.LDF,并將這兩個(gè)文件建立在C:\DBExample文件夾下,其他按照默認(rèn)設(shè)置不變。【例3.2】操作步驟:①在桌面上選擇“我的電腦”,在C:\下新建文件夾,命名為“DBExample”。②在對(duì)象資源管理器窗口右擊“數(shù)據(jù)庫(kù)”,從快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”命令,將彈出“新建數(shù)據(jù)庫(kù)”對(duì)話框。提示:SQLServer以model數(shù)據(jù)庫(kù)為模板創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),其數(shù)據(jù)文件的默認(rèn)值為:初始大小3MB,以1MB自動(dòng)增長(zhǎng),不限制增長(zhǎng);事務(wù)日志文件的默認(rèn)值為:初始大小1MB,按10%的比例自動(dòng)增長(zhǎng),不限制增長(zhǎng)。④將數(shù)據(jù)文件的邏輯名稱(chēng)修改為“SchoolDB”,在路徑下的文本框輸入或點(diǎn)擊其后“…”按鈕選擇修改數(shù)據(jù)庫(kù)文件的位置為“C:\DBExample”。在初始大小后的文本框中把3改為5。⑤將日志文件的邏輯名稱(chēng)修改為“SchoolDB_log”,“路徑”設(shè)置為“C:\DBExample”。⑥單擊“確定”按鈕,數(shù)據(jù)庫(kù)創(chuàng)建完成。③“選擇頁(yè)”默認(rèn)為“常規(guī)”,在“數(shù)據(jù)庫(kù)名稱(chēng)”文本框中輸入“School”。使用“我的電腦”查看“C:\DBExample”文件夾,可以看到文件SchoolDB和SchoolDB_log。建好的School數(shù)據(jù)庫(kù)在對(duì)象資源管理器展開(kāi)的“數(shù)據(jù)庫(kù)”下可以看到,并且系統(tǒng)在School下自動(dòng)創(chuàng)建了其包含的相關(guān)對(duì)象。

2.數(shù)據(jù)庫(kù)維護(hù)數(shù)據(jù)庫(kù)創(chuàng)建后,磁盤(pán)上的數(shù)據(jù)文件和日志文件名就不能改變了。對(duì)已存在的數(shù)據(jù)庫(kù)可以進(jìn)行如下的修改:增加或刪除數(shù)據(jù)文件改變數(shù)據(jù)文件的大小和增長(zhǎng)方式改變?nèi)罩疚募拇笮『驮鲩L(zhǎng)方式增加或刪除日志文件增加或刪除文件組重命名數(shù)據(jù)文件,書(shū)庫(kù)文件和日志文件邏輯名。(1)修改數(shù)據(jù)庫(kù)右單擊需要修改的數(shù)據(jù)庫(kù),在快捷菜單中選擇“屬性”命令,彈出“數(shù)據(jù)庫(kù)屬性”窗口。其中包含8個(gè)選項(xiàng),每個(gè)選項(xiàng)下可對(duì)數(shù)據(jù)庫(kù)的相關(guān)屬性進(jìn)行修改。(2)刪除數(shù)據(jù)庫(kù)操作步驟如下:

①右擊要?jiǎng)h除的數(shù)據(jù)庫(kù),在彈出的快捷菜單中選擇“刪除”命令。②在彈出的“刪除對(duì)象”對(duì)話框中單擊“確定”按鈕,即可刪除要?jiǎng)h除的數(shù)據(jù)庫(kù)。提示:注意數(shù)據(jù)庫(kù)一旦被刪除,數(shù)據(jù)庫(kù)文件及其數(shù)據(jù)都被從服務(wù)器上的磁盤(pán)中刪除,該數(shù)據(jù)庫(kù)中所有的對(duì)象均被刪除,即永久性刪除,不能恢復(fù),所以刪除操作要慎重!新建一個(gè)數(shù)據(jù)庫(kù)操作完成后,只是建立了數(shù)據(jù)庫(kù)框架和相關(guān)的系統(tǒng)對(duì)象,接下來(lái)的任務(wù)是建立具體的數(shù)據(jù)表。例如:建立如下教務(wù)系統(tǒng)的數(shù)據(jù)庫(kù),要建立6個(gè)數(shù)據(jù)表,并建立表之間的關(guān)系。具體定義見(jiàn)教材P37頁(yè)。3.4數(shù)據(jù)表的創(chuàng)建和維護(hù)1)設(shè)計(jì)表結(jié)構(gòu),包括:定義字段(1)創(chuàng)建列名、數(shù)據(jù)類(lèi)型(2)設(shè)置列屬性也稱(chēng)列約束。包括:PRIMARYKEY:主關(guān)鍵字約束UNIQUE:唯一性約束CHECK:檢查約束DEFAULT:默認(rèn)值約束NOTNULL:非空約束IDENTITY:標(biāo)識(shí)規(guī)范保存表3)表創(chuàng)建后,可輸入一些記錄數(shù)據(jù)來(lái)檢驗(yàn)表結(jié)構(gòu)。創(chuàng)建數(shù)據(jù)表的一般過(guò)程:2)建立表之間的關(guān)系:依次建立各個(gè)表,再建立關(guān)系。1.SQLServer數(shù)據(jù)類(lèi)型數(shù)據(jù)表中每一列都需要定義明確的數(shù)據(jù)類(lèi)型,數(shù)據(jù)類(lèi)型決定了該字段的數(shù)據(jù)取值類(lèi)型、范圍和存儲(chǔ)格式。數(shù)據(jù)類(lèi)型主要類(lèi)型符號(hào)標(biāo)識(shí)整型bigint、int、smallint、tinyint浮點(diǎn)型float、real、decimal、numeric字符型char、varchar、nchar、nvarchar日期時(shí)間型datetime、smalldatetime文本型text、ntext圖像型image貨幣型money、smallmoney位型bit二進(jìn)制型binary、varbinary其他uniqueidentifierSQLServer的系統(tǒng)數(shù)據(jù)類(lèi)型(1)整型整型用于存儲(chǔ)整數(shù),有4種整型分別用于存儲(chǔ)不同范圍的整數(shù)。數(shù)據(jù)類(lèi)型數(shù)據(jù)范圍占用存儲(chǔ)空間bigint-263~263-18個(gè)字節(jié)int-231~231-14個(gè)字節(jié)smallint-215~215-12個(gè)字節(jié)tinyint0~2551個(gè)字節(jié)float和real是近似數(shù)值型,以科學(xué)計(jì)數(shù)法表示數(shù)據(jù);decimal和numeric是精確數(shù)值類(lèi)型,以明確、完整的精度(固定精度和小數(shù)位數(shù))存儲(chǔ)數(shù)據(jù)。(2)浮點(diǎn)型浮點(diǎn)型用于存儲(chǔ)含小數(shù)的十進(jìn)制數(shù)。

數(shù)據(jù)類(lèi)型數(shù)據(jù)范圍精確度占用存儲(chǔ)空間float-1.79E+308~1.79E+308可精確到第15位小數(shù)8個(gè)字節(jié)real-3.40E+38~3.40E+38可精確到第7位小數(shù)4個(gè)字節(jié)decimal-1038+1~1038-1完整精度2~17個(gè)字節(jié)numeric-1038+1~1038-1完整精度2~17個(gè)字節(jié)例如:指定某字段為精確數(shù)值型,精度為5,小數(shù)位數(shù)為5,即decimal(5,2)或numeric(5,2),可表示數(shù)據(jù)范圍為:-999.99--999.99。decimal和numeric格式如下:decimal|numeric(p[,s])其中:p為精度,s為小數(shù)位數(shù),s的默認(rèn)值為0。

decimal和numeric的區(qū)別在于decimal不能應(yīng)用于帶有Identity的列。(3)字符型和文本型

用于存儲(chǔ)由字母、符號(hào)和數(shù)字組成的字符串。字符串常量要用單引號(hào)作為起止界限。例如:’No1’。SQLServer字符數(shù)據(jù)類(lèi)型和文本數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型定義格式占用存儲(chǔ)空間charchar(n),存儲(chǔ)ANSI字符,n表示字符串的長(zhǎng)度,1=<n<=8000定長(zhǎng),最大8KBvarcharvarchar(n),存儲(chǔ)ANSI字符,n表示字符串可達(dá)到的最大長(zhǎng)度1=<n<=8000變長(zhǎng),最大8KBncharnchar(n),存儲(chǔ)Unicode字符,n表示字符串的長(zhǎng)度,1=<n<=4000定長(zhǎng),最大8KBnvarcharnvarchar(n),存儲(chǔ)Unicode字符,n表示字符串可達(dá)到的最大長(zhǎng)度1=<n<=4000變長(zhǎng),最大8KBtexttext,存儲(chǔ)ANSI字符變長(zhǎng),大于8KB例如:char(5)為長(zhǎng)度為5的定長(zhǎng)字符串,varchar(5)為最大長(zhǎng)度為5的變長(zhǎng)字符串。char(n)是定長(zhǎng)字符類(lèi)型,字符串長(zhǎng)度超出n的部分被截去;如不足n時(shí),則在串的尾部添加空格以達(dá)到長(zhǎng)度n。如char(5),當(dāng)輸入'Tom'字符串時(shí),其存儲(chǔ)長(zhǎng)度為5個(gè)字節(jié),實(shí)際字符串值為'Tom

'varchar(n)是變長(zhǎng)字符類(lèi)型,長(zhǎng)度為字符串的實(shí)際字符個(gè)數(shù)。如varchar(5),當(dāng)輸入‘Tom’字符串時(shí),其存儲(chǔ)長(zhǎng)度為3個(gè)字節(jié),實(shí)際字符串值為'Tom'。通常,當(dāng)某一字段的字符串長(zhǎng)度固定時(shí)使用char類(lèi)型;當(dāng)字符串長(zhǎng)度明顯不一致時(shí)使用varchar類(lèi)型。Text是文本數(shù)據(jù)類(lèi)型,用來(lái)存儲(chǔ)可變長(zhǎng)度的大量字符數(shù)據(jù),其存儲(chǔ)長(zhǎng)度最多可達(dá)20億個(gè)ASCII字符。char(n)和varchar(n)存儲(chǔ)ANSI字符,用1個(gè)字節(jié)(8bits)表示一個(gè)字符,每個(gè)漢字占2個(gè)字節(jié)。適合存儲(chǔ)英文字符串。char(n)

是定長(zhǎng)字符串,varchar(n)是變長(zhǎng)字符串。

nchar(n)和nvarchar(n)存儲(chǔ)Unicode字符集,用2個(gè)字節(jié)(16bits)表示一個(gè)字符。適合存儲(chǔ)中文或中英文混合字符串。nchar(n)

是定長(zhǎng)字符串,nvarchar(n)是變長(zhǎng)字符串。提示:ANSI(AmericanNationalStandardInstitite:美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))和Unicode(UniversalMultiple-OctetCodedCharacterSet:通用字符集)是兩種不同的編碼標(biāo)準(zhǔn)。例如:char(5)可存儲(chǔ)5個(gè)英文字符,但只能存儲(chǔ)2個(gè)漢字,而nchar(5)可存儲(chǔ)5個(gè)英文或漢字構(gòu)成的字符串。(4)日期時(shí)間型用來(lái)存儲(chǔ)日期和時(shí)間數(shù)據(jù),默認(rèn)數(shù)據(jù)格式為:”YYYY-MM-DDHH:MM:SS”。例如“2012-12-0812:35:29”。數(shù)據(jù)類(lèi)型數(shù)據(jù)范圍占用存儲(chǔ)空間datetime1753年1月1日~9999年12月31日之間的日期時(shí)間8個(gè)字節(jié)smalldatetime1900年1月1日~2079年6月6日之間的日期時(shí)間4個(gè)字節(jié)使用時(shí)也可只存儲(chǔ)日期或時(shí)間。

(5)圖像數(shù)據(jù)類(lèi)型用于存儲(chǔ)照片、圖片等,實(shí)際存儲(chǔ)的是可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),其長(zhǎng)度最大可達(dá)231-1個(gè)字節(jié)。注意:SQLServer不能顯示image類(lèi)型的數(shù)據(jù),必須由應(yīng)用程序來(lái)存取和顯示。

在實(shí)際應(yīng)用中,通常將圖像以文件的形式存儲(chǔ)在磁盤(pán)上,而只將圖像文件的路徑和文件名以字符串類(lèi)型記錄在數(shù)據(jù)庫(kù)中。應(yīng)用程序讀取數(shù)據(jù)庫(kù)獲得存取路徑,然后訪問(wèn)磁盤(pán)文件。其他多媒體類(lèi)型數(shù)據(jù)處理方法類(lèi)似。(6)貨幣型用十進(jìn)制數(shù)表示貨幣值。

貨幣型實(shí)際上是一種小數(shù),但小數(shù)點(diǎn)后只有4位,且自動(dòng)四舍五入。數(shù)據(jù)類(lèi)型數(shù)據(jù)范圍占用存儲(chǔ)空間money-922,337,203,685,477.5808~+922,337,203,685,477.5807精度為4位小數(shù)8個(gè)字節(jié)smallmoney-214,748.3648~214,748.3647,精度為4位小數(shù)4個(gè)字節(jié)(8)uniqueidentifie唯一標(biāo)識(shí)符類(lèi)型。數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)隨著記錄的加入自動(dòng)為字段產(chǎn)生唯一標(biāo)識(shí)符。它是一個(gè)16字節(jié)長(zhǎng)的二進(jìn)制數(shù)。(7)位類(lèi)型bit用來(lái)作為邏輯變量使用,其數(shù)值有兩種取值:1和0,分別代表“TRUE”和“FALSE”或YES和NO。例如:在T_Student表中,字段LiveInDorm存儲(chǔ)“是否住?!毙畔⑹褂胋it。(8)uniqueidentifie唯一標(biāo)識(shí)符類(lèi)型。數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)隨著記錄的加入自動(dòng)為字段產(chǎn)生唯一標(biāo)識(shí)符。它是一個(gè)16字節(jié)長(zhǎng)的二進(jìn)制數(shù)。(7)位類(lèi)型bit用來(lái)作為邏輯變量使用,其數(shù)值有兩種取值:1和0,分別代表“TRUE”和“FALSE”或YES和NO。例如:在T_Student表中,字段LiveInDorm存儲(chǔ)“是否住校”信息使用bit。教務(wù)系統(tǒng)數(shù)據(jù)庫(kù)中有關(guān)字段類(lèi)型的選取舉例字段名稱(chēng)字段說(shuō)明類(lèi)型定義StudentCode學(xué)號(hào)char(4)StudentName學(xué)生姓名nvarchar(20)ClassCode班號(hào)char(2)Sex性別nchar(1)Birthday出生日期smalldatetimeLiveInDorm是否住校bitTelephone聯(lián)系電話nvarchar(40)Photo照片(存放路徑和文件名)nvarchar(50)Description個(gè)人介紹nvarchar(100)PassWord密碼nvarchar(16)學(xué)生表Student教務(wù)系統(tǒng)數(shù)據(jù)庫(kù)中有關(guān)字段類(lèi)型的選取舉例課程表Course字段名稱(chēng)字段說(shuō)明類(lèi)型定義CourseCode課程號(hào)char(3)CourseName課程名稱(chēng)nvarchar(16)Credit學(xué)分numeric(3,1)Academy開(kāi)課學(xué)院nvarchar(5)ClassTime上課時(shí)間nvarchar(20)ClassPlace上課地點(diǎn)nvarchar(20)ClassHour上課學(xué)時(shí)tinyintLabHour實(shí)驗(yàn)學(xué)時(shí)tinyintTotalSeats最大學(xué)生數(shù)smallintLeftSeats剩余名額smallintTeacherCode任課教師char(4)Description課程簡(jiǎn)介textGradeAnalysis成績(jī)分析評(píng)價(jià)nvarchar(100)教務(wù)系統(tǒng)數(shù)據(jù)庫(kù)中有關(guān)字段類(lèi)型的選取舉例成績(jī)表Grade字段名稱(chēng)字段說(shuō)明類(lèi)型定義StudentCode學(xué)號(hào)char(4)CourseCode課程號(hào)char(3)Grade成績(jī)numeric(4,1)WriteStamp錄入時(shí)間datetime2.?dāng)?shù)據(jù)表創(chuàng)建【例3.3】在數(shù)據(jù)庫(kù)School中建立學(xué)生表Student,完成各字段的定義。①在對(duì)象資源管理器中,選擇“數(shù)據(jù)庫(kù)/School/表”,右擊后從彈出的快捷菜單中選擇“新建表”命令,彈出“表設(shè)計(jì)”窗口。②在表設(shè)計(jì)窗口,根據(jù)表的設(shè)計(jì)結(jié)構(gòu)依次完成每個(gè)字段的名稱(chēng)和數(shù)據(jù)類(lèi)型設(shè)置。④在對(duì)象資源管理器展開(kāi)“數(shù)據(jù)庫(kù)/School/表”可以看到創(chuàng)建好的數(shù)據(jù)表dbo.Student。③在完成所有字段設(shè)計(jì)后,可在“屬性”窗格的“(名稱(chēng))”處輸入表名“Student”,單擊工具欄上的“”按鈕或“文件/保存”菜單或關(guān)閉表設(shè)計(jì)窗口,數(shù)據(jù)表創(chuàng)建完成。屬性設(shè)置區(qū):字段描述、默認(rèn)值、小數(shù)精度及位數(shù)等數(shù)據(jù)表名稱(chēng)設(shè)置設(shè)計(jì)表中字段保存按鈕1)修改表結(jié)構(gòu):增加字段、刪除字段、修改字段屬性等。

操作步驟:3.數(shù)據(jù)表維護(hù)①在對(duì)象資源管理器中右擊要修改的“表”,在彈出菜單中選擇“修改”命令,出現(xiàn)“表設(shè)計(jì)”窗口。②在“表設(shè)計(jì)”窗口,選中需要修改的一行,右擊后彈出快捷菜單可以對(duì)表設(shè)置主鍵、插入列、刪除列等。也可通過(guò)拖動(dòng)行來(lái)調(diào)整字段的順序。③對(duì)表的結(jié)構(gòu)修改完畢后,保存對(duì)表結(jié)構(gòu)修改。2)更改表名3)刪除數(shù)據(jù)表①在對(duì)象資源管理器中,右擊要?jiǎng)h除的表,在快捷菜單中選擇“刪除”命令。①在對(duì)象資源管理器中選擇要改名的表右擊,在快捷菜單上選擇“重命名”命令。②在表名位置輸入新的表名即可。②在彈出的“刪除對(duì)象”對(duì)話框中,選擇“確定”按鈕,即可刪除該表。4.數(shù)據(jù)表記錄插入

在實(shí)際運(yùn)行的信息系統(tǒng)中,數(shù)據(jù)表必須在完全創(chuàng)建好后(字段建好、各項(xiàng)數(shù)據(jù)完整性約束設(shè)置完成),才添加記錄。而且最好是通過(guò)應(yīng)用程序添加。

在系統(tǒng)開(kāi)發(fā)過(guò)程中,可以通過(guò)手工添加一些記錄來(lái)檢查數(shù)據(jù)表定義是否合理,調(diào)試程序功能是否可用等。手工將記錄添加在數(shù)據(jù)表的尾部,可以向表中插入多條記錄。操作方法:在對(duì)象資源管理器中,右擊數(shù)據(jù)表dbo.Student,在彈出的菜單中選擇“打開(kāi)表”,出現(xiàn)數(shù)據(jù)窗口“表-dbo.Student”。在該數(shù)據(jù)窗口中,可插入記錄、修改記錄和刪除記錄。右擊數(shù)據(jù)表dbo.Student①將光標(biāo)定位在表尾的下一行,逐字段輸入值,每輸入一個(gè)字段值,按方向鍵“->”或“<Tab>”鍵可以移向下一個(gè)字段。②當(dāng)一條記錄最后一個(gè)字段輸入完畢按“回車(chē)”鍵后,光標(biāo)將自動(dòng)轉(zhuǎn)到下一行的第一個(gè)字段處,便可插入下一條記錄。

③輸入完數(shù)據(jù),單擊“”按鈕或“文件/保存”菜單。或者單擊“表-dbo.Student”窗口的“關(guān)閉”按鈕,添加的記錄就保存到數(shù)據(jù)表中。插入記錄:5.數(shù)據(jù)表記錄維護(hù)①定位將要?jiǎng)h除的記錄,右擊后在彈出的快捷菜單中選擇“刪除”命令。2)刪除記錄1)修改記錄定位將要修改的記錄字段,對(duì)該字段值進(jìn)行編輯修改。②彈出刪除確認(rèn)對(duì)話框,單擊“是”按鈕即刪除選擇的記錄。3.5數(shù)據(jù)表約束和數(shù)據(jù)完整性控制

數(shù)據(jù)的完整性控制:指保護(hù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的正確性、有效性和相容性,防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息進(jìn)入數(shù)據(jù)庫(kù),并且使數(shù)據(jù)符合所描述的業(yè)務(wù)規(guī)則。SQLServer使用表約束實(shí)現(xiàn)數(shù)據(jù)庫(kù)完整性控制的方法:通過(guò)限制表的字段、記錄以及表之間的數(shù)據(jù)來(lái)保證數(shù)據(jù)完整性。

表4-10SQLServer數(shù)據(jù)常用完整性約束機(jī)制完整性約束作用實(shí)體完整性主關(guān)鍵字約束(PrimaryKey)保證表中記錄行的唯一性唯一性約束(Unique)保證在非關(guān)鍵字字段不出現(xiàn)重復(fù)值域完整性默認(rèn)值約束(Default)對(duì)沒(méi)有插入值的列自動(dòng)添加表定義時(shí)對(duì)該列設(shè)置的默認(rèn)值非空值約束(NotNull)限定某一列必須有值,即不允許空值檢查約束(Check)限定某一列中可接受的值或數(shù)據(jù)格式參照完整性外關(guān)鍵字(ForeignKey)通過(guò)表間關(guān)系約束字段值的有效性SQLServer常用數(shù)據(jù)完整性約束機(jī)制:實(shí)體完整性

主關(guān)鍵字約束(PrimaryKey)唯一性約束(Unique)

表中記錄的唯一性主關(guān)鍵字(簡(jiǎn)稱(chēng)主鍵)是表中能保證表中記錄唯一性的一個(gè)或多個(gè)字段的組合。主鍵的值不能重復(fù),且不能為空。一個(gè)表只能有一個(gè)主鍵。

唯一性約束可保證非主鍵列不輸入重復(fù)值。對(duì)非主鍵字段或字段的組合強(qiáng)制唯一性。對(duì)允許空值的字段強(qiáng)制唯一性。

【例3.4】在數(shù)據(jù)庫(kù)School中定義學(xué)生表Student的主鍵為“StudentCode”?!纠?.5】在數(shù)據(jù)庫(kù)School中的學(xué)生表Student不允許出現(xiàn)姓名且生日相同的記錄,并按姓名升序和生日降序排列,即對(duì)StudentName和Birthday字段組合定義唯一性約束。域完整性默認(rèn)值約束(Default)

非空值約束(NotNull)

檢查約束(Check)

表中字段(或稱(chēng)列或域)的值的有效性。

默認(rèn)值約束使用戶能夠定義一個(gè)值,每當(dāng)用戶沒(méi)有在某一列中輸入值時(shí),則系統(tǒng)將所定義的值提供給這一列。

記錄中的每一列均必須有值。CHECK約束限制某一列中可接受的值或格式。

【例3.6】在數(shù)據(jù)庫(kù)School的學(xué)生表Stud

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論