數(shù)據(jù)庫(kù)原理與應(yīng)用_第1頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用_第2頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用_第3頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用_第4頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩102頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

課程:數(shù)據(jù)庫(kù)原理與應(yīng)用

教師姓名授課班級(jí)授課形式理論

授課周數(shù)第1周授課時(shí)數(shù)4使用教具多媒體

授課章節(jié)第一章數(shù)據(jù)庫(kù)的基本概念

名稱

教學(xué)目的掌握數(shù)據(jù)庫(kù)概念;

學(xué)會(huì)安裝、配置SQLServer2008,并能連接到SQLServer2008數(shù)據(jù)庫(kù)。

教學(xué)重點(diǎn)安裝SQLServer200811

教學(xué)難點(diǎn)學(xué)生對(duì)于SQLServer的許可授權(quán)選項(xiàng)會(huì)缺乏認(rèn)識(shí),教師需要加以說(shuō)明;

對(duì)于SQLServer的各個(gè)組件,學(xué)生還沒(méi)有了解。

教學(xué)內(nèi)容

1.1數(shù)據(jù)庫(kù)基本概念

1.1.1數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)管理系統(tǒng)

1.數(shù)據(jù)庫(kù)(理解概念)

數(shù)據(jù)庫(kù)(DB)是存放數(shù)據(jù)的倉(cāng)庫(kù),只不過(guò)這些數(shù)據(jù)存在一定的關(guān)聯(lián),并按一定的格式存

放在計(jì)算機(jī)上。從廣義上講,數(shù)據(jù)不僅包含數(shù)字,還包括了文本、圖像、音頻、視頻等。

2.數(shù)據(jù)庫(kù)管理系統(tǒng)

數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是管理數(shù)據(jù)庫(kù)的系統(tǒng),它按一定的數(shù)據(jù)模型組織數(shù)據(jù)。DBMS應(yīng)提

供如下功能:(理解)

(1)數(shù)據(jù)定義功能

(2)數(shù)據(jù)操縱功能

(3)數(shù)據(jù)的完整性檢查功能

(4)數(shù)據(jù)庫(kù)的安全保護(hù)功能

(5)數(shù)據(jù)庫(kù)的并發(fā)控制功能

(6)數(shù)據(jù)庫(kù)系統(tǒng)的故障恢復(fù)功能

(7)在網(wǎng)絡(luò)環(huán)境下訪問(wèn)數(shù)據(jù)庫(kù)的功能

(8)方便、有效地存取數(shù)據(jù)庫(kù)信息的接口和工具。

數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)與操作數(shù)據(jù)庫(kù)的應(yīng)用程序,加上支撐它們的硬件平臺(tái)、

軟件平臺(tái)和與數(shù)據(jù)庫(kù)有關(guān)的人員一起構(gòu)成了一個(gè)完整的數(shù)據(jù)庫(kù)系統(tǒng)。

1.L2關(guān)系模型

(1)層次模型:以樹形層次結(jié)構(gòu)組織數(shù)據(jù)。

(2)網(wǎng)狀模型:每一個(gè)數(shù)據(jù)用一個(gè)節(jié)點(diǎn)表示,每個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)都有聯(lián)系,這樣數(shù)據(jù)庫(kù)

中的所有數(shù)據(jù)節(jié)點(diǎn)就構(gòu)成了一個(gè)復(fù)雜的網(wǎng)絡(luò)。

(3)關(guān)系模型:以二維表格(關(guān)系表)的形式組織數(shù)據(jù)庫(kù)中的數(shù)據(jù)。(掌握)

例如,學(xué)生成績(jī)管理系統(tǒng)所涉及的“學(xué)生”、“課程”和“成績(jī)”三個(gè)表中,“學(xué)生”

表涉及的主要信息有:學(xué)號(hào)、姓名、性別、出生時(shí)間、專業(yè)、總學(xué)分、備注;“課程”表涉

及的主要信息有:課程號(hào)、課程名、開(kāi)課學(xué)期、學(xué)時(shí)和學(xué)分;“成績(jī)”表涉及的主要信息有:

學(xué)號(hào)、課程號(hào)和成績(jī)。

1.2數(shù)據(jù)庫(kù)設(shè)計(jì)

1.2.1概念結(jié)構(gòu)設(shè)計(jì)(掌握畫E-R模型方法)

如果用矩形框表示實(shí)體集,用帶半圓的矩形框表示屬性,用線段連接實(shí)體集與屬性,當(dāng)

一個(gè)屬性或?qū)傩越M合指定為主碼時(shí),在實(shí)體集與屬性的連接線上標(biāo)記一斜線。

兩個(gè)實(shí)體集A和B之間的聯(lián)系可能是以下三種情況之一:

1.一對(duì)一的聯(lián)系(]:])

A中的一個(gè)實(shí)體至多與B中的一個(gè)實(shí)體相聯(lián)系,B中的一個(gè)實(shí)體也至多與A中的一個(gè)實(shí)體相

聯(lián)系。例如,“班級(jí)”與“正班長(zhǎng)”這兩個(gè)實(shí)體集之間的聯(lián)系是一對(duì)一的聯(lián)系,因?yàn)橐粋€(gè)班

只有一個(gè)正班長(zhǎng),反過(guò)來(lái),一個(gè)正班長(zhǎng)只屬于一個(gè)班。

2.一對(duì)多的聯(lián)系(1:〃)

A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體至多與A中的一個(gè)實(shí)體相

聯(lián)系。例如,“班級(jí)”與“學(xué)生”這兩個(gè)實(shí)體集之間的聯(lián)系是一對(duì)多的聯(lián)系,因?yàn)橐粋€(gè)班可

有若干學(xué)生,反過(guò)來(lái),一個(gè)學(xué)生只能屬于一個(gè)班。

3.多對(duì)多的聯(lián)系(m:n)

A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體也可與A中的多個(gè)實(shí)體相

聯(lián)系。例如,“學(xué)生”與“課程”這兩個(gè)實(shí)體集之間的聯(lián)系是多對(duì)多的聯(lián)系,因?yàn)橐粋€(gè)學(xué)生

可選多門課程,反過(guò)來(lái),一門課程可被多個(gè)學(xué)生選修。

1.2.2邏輯結(jié)構(gòu)設(shè)計(jì)(掌握E-R圖到關(guān)系模式的轉(zhuǎn)換方法)

1.(1:1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換

對(duì)于(1:1)的聯(lián)系,既可單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,也可以不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式。

(1)聯(lián)系單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,則由聯(lián)系屬性、參與聯(lián)系的各實(shí)體集的主碼屬性構(gòu)成關(guān)

系模式,其主碼可選參與聯(lián)系的實(shí)體集的任一方的主碼。

例如,考慮“班級(jí)(BJB)”與“正班長(zhǎng)(BZB)”實(shí)體集通過(guò)屬于(SYB)聯(lián)系E-R模型

可設(shè)計(jì)如下關(guān)系模式(下橫線表示該字段為主碼):

BJB(班級(jí)編號(hào),院系,專業(yè),人數(shù))

BZB(學(xué)號(hào),姓名)

SYB(學(xué)號(hào),班級(jí)編號(hào))

(2)聯(lián)系不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,聯(lián)系的屬性及一方的主碼加入另一方實(shí)體集對(duì)應(yīng)的關(guān)

系模式中。

例如,考慮“班級(jí)(BJB)”與“正班長(zhǎng)(BZB)”實(shí)體集通過(guò)屬于(SYB)聯(lián)系E-R模型可

設(shè)計(jì)如下關(guān)系模式:

BJB(班級(jí)編號(hào),院系,專業(yè),人數(shù))

BZB(學(xué)號(hào),姓名,班級(jí)編號(hào))

或者:

BJB(班級(jí)編號(hào),院系,專業(yè),人數(shù),學(xué)號(hào))

BZB(學(xué)號(hào),姓名)

2.(l:n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換

對(duì)于(1:〃)的聯(lián)系,既可單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,也可以不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式。

(1)聯(lián)系單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實(shí)體集的主碼屬性構(gòu)成

關(guān)系模式,〃端的主碼作為該關(guān)系模式的主碼。

例如,考慮“班級(jí)(BJB)”與“學(xué)生(XSB)”實(shí)體集E-R模型可設(shè)計(jì)如下關(guān)系模式:

BJB(班級(jí)編號(hào),院系,專業(yè),人數(shù))

XSB(學(xué)號(hào),姓名,性別,出生時(shí)間,專業(yè),總學(xué)分,備注)

SYB(望號(hào),班級(jí)編號(hào))

(2)聯(lián)系不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,則將聯(lián)系的屬性及1端的主碼加入〃端實(shí)體集對(duì)應(yīng)的關(guān)

系模式中,主碼仍為〃端的主碼。

例如,“班級(jí)(BJB)”與“學(xué)生(XSB)”實(shí)體集E-R模型可設(shè)計(jì)如下關(guān)系模式:

BJB(班級(jí)編號(hào),院系,專業(yè),人數(shù))

XSB(空號(hào),姓名,性別,出生時(shí)間,專業(yè),總學(xué)分,備注,班級(jí)編號(hào))

3.(0:〃)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換

對(duì)于(而:〃)的聯(lián)系,單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,該關(guān)系模式包括聯(lián)系的屬性、參與聯(lián)系

的各實(shí)體集的主碼屬性,該關(guān)系模式的主碼由各實(shí)體集的主碼屬性共同組成。

例如,“學(xué)生(XSB)”與“課程(KCB)”實(shí)體集之間的聯(lián)系可設(shè)計(jì)如下關(guān)系模式:

XSB(學(xué)號(hào),姓名,性別,出生時(shí)間,專業(yè),總學(xué)分,備注)

KCB(課程號(hào),課程名稱,開(kāi)課學(xué)期,學(xué)時(shí),學(xué)分)

CJB(堂號(hào),課程號(hào),成績(jī))

關(guān)系模式CJB的主碼是由“學(xué)號(hào)”和“課程號(hào)”兩個(gè)屬性組合起來(lái)構(gòu)成的一個(gè)主碼,一個(gè)關(guān)

系模式只能有一個(gè)主碼。

至此,已介紹了根據(jù)E-R圖設(shè)計(jì)關(guān)系模式的方法,通常將這一設(shè)計(jì)過(guò)程稱為邏輯結(jié)構(gòu)設(shè)計(jì)。

在設(shè)計(jì)好一個(gè)項(xiàng)目的關(guān)系模式后,就可以在數(shù)據(jù)庫(kù)管理系統(tǒng)環(huán)境下,創(chuàng)建數(shù)據(jù)庫(kù)、關(guān)系

表及其他數(shù)據(jù)庫(kù)對(duì)象,輸入相應(yīng)數(shù)據(jù),并根據(jù)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行各種操作。

1.2.3物理結(jié)構(gòu)設(shè)計(jì)

數(shù)據(jù)的物理模型即指數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),如對(duì)數(shù)據(jù)庫(kù)物理文件、索引文件的組織方式、文

件的存取路徑、內(nèi)存的管理等。物理模型對(duì)用戶是不可見(jiàn)的,它不僅與數(shù)據(jù)庫(kù)管理系統(tǒng)有關(guān),

還和操作系統(tǒng)甚至硬件有關(guān)。

1.3數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)

1.3.1數(shù)據(jù)庫(kù)的連接方式(了解)

1.ODBC數(shù)據(jù)庫(kù)接口

2.OLEDB數(shù)據(jù)庫(kù)接口

3.ADO數(shù)據(jù)庫(kù)接口

4.ADO.NET數(shù)據(jù)庫(kù)接口

5.JDBC數(shù)據(jù)庫(kù)接口

6.數(shù)據(jù)庫(kù)連接池技術(shù)

1.4SQLServer2008環(huán)境

1.4.1SQLServer2008的安裝(會(huì)安裝SQLServer2008)

1.檢查計(jì)算機(jī)的軟件、硬件配置

為了正確安裝和運(yùn)行SQLServer2008,計(jì)算機(jī)必須滿足以下配置:

(1)硬件:

處理器:需要Pentium3兼容處理器或更高速度的處理器,600MHz以上。

內(nèi)存:512MB以上,建議1GB或更大。

硬盤:750MB的安裝空間以及必要的數(shù)據(jù)預(yù)留空間。

(2)軟件:

①操作系統(tǒng)要求(32位):表1.5顯示了不同的操作系統(tǒng)是否可以運(yùn)行SQLServer2008服務(wù)

器軟件的各個(gè)32位版本。

②網(wǎng)絡(luò)軟件要求:由于Windows2003、WindowsXP和Windows2000都具有內(nèi)置網(wǎng)絡(luò)軟件,所

以用戶無(wú)須進(jìn)行額外的配置。

③Internet組件要求:SQLServer2008的32位版本和64位版本的Internet要求是相同的。

表1.6列出了SQLServer2008的Internet要求。

2.SQLServer2008的安裝

(給學(xué)生演示安裝過(guò)程,邊演示邊講解)

1.4.2SQLServer2005服務(wù)器組件

(1)DatabaseEngine。數(shù)據(jù)庫(kù)引擎是SQLServer2008用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心

服務(wù)。

(2)ReportingServices。SQLServerReportingServices(報(bào)表服務(wù),簡(jiǎn)稱SSRS)是基

于服務(wù)器的報(bào)表平臺(tái),可以用來(lái)創(chuàng)建和管理包含關(guān)系數(shù)據(jù)源和多維數(shù)據(jù)源中的數(shù)據(jù)的表格、

矩陣、圖形和自由格式的報(bào)表。

(3)AnalysisServices。SQLServerAnalysisServices(分析服務(wù),簡(jiǎn)稱SSAS)為商業(yè)

智能應(yīng)用程序提供聯(lián)機(jī)分析處理(OLAP)和數(shù)據(jù)挖掘功能。

(4)IntegrationServices。SQLServerIntegrationServices(集成服務(wù),簡(jiǎn)稱SSIS)

主要用于清理、聚合、合并、復(fù)制數(shù)據(jù)的轉(zhuǎn)換以及管理SSIS包。除此之外,它還提供包括生

產(chǎn)并調(diào)試SSIS包的圖形向?qū)Чぞ摺⒂糜趫?zhí)行FTP操作、電子郵件消息傳遞等工作流功能的任

務(wù)C

(5)NotificationServices。SQLServerNotificationServices(通知服務(wù),簡(jiǎn)稱SSNS)

是用于開(kāi)發(fā)和部署那些生成并發(fā)送通知的應(yīng)用程序的環(huán)境,使用它可以生成個(gè)性化消息,并

發(fā)送給其他人或設(shè)備。

課外作業(yè)P231,2,3,4,7

課后體會(huì)學(xué)生對(duì)數(shù)據(jù)庫(kù)的基本概念掌握的較好,安裝SQLServer2008有些同學(xué)出

現(xiàn)一些問(wèn)題,得到及時(shí)解決,整體教學(xué)效果良好。

課程:數(shù)據(jù)庫(kù)原理與應(yīng)用順序:

教師姓名授課班級(jí)授課形式理論

授課周數(shù)第2周授課時(shí)數(shù)2使用教具多媒體

授課章節(jié)第二章數(shù)據(jù)庫(kù)的創(chuàng)建

名稱

教學(xué)目的掌握基本的數(shù)據(jù)庫(kù)概念

學(xué)會(huì)用兩種方式創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)

教學(xué)重點(diǎn)數(shù)據(jù)庫(kù)結(jié)構(gòu)介紹、創(chuàng)建數(shù)據(jù)庫(kù)及文件組、使用Transact-SQL創(chuàng)建數(shù)據(jù)庫(kù)和文

件;

教學(xué)難點(diǎn)用命令的方式創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)

文件組、架構(gòu)的概念往往在大型組織才需要用到,學(xué)生不易了解到其作用,

學(xué)生缺乏規(guī)劃相關(guān)的企業(yè)場(chǎng)景和知識(shí)

教學(xué)內(nèi)容

2.1SQLServer數(shù)據(jù)庫(kù)基本概念

2.1.1邏輯數(shù)據(jù)庫(kù)(理解)

SQLServer數(shù)據(jù)庫(kù)是存儲(chǔ)數(shù)據(jù)的容器,是一個(gè)存放數(shù)據(jù)的表和支持這些數(shù)據(jù)的存儲(chǔ)、檢索、

安全性和完整性的邏輯成分所組成的集合。用戶觀點(diǎn)將數(shù)據(jù)庫(kù)稱為邏輯數(shù)據(jù)庫(kù),組成數(shù)據(jù)庫(kù)

的邏輯成分稱為數(shù)據(jù)庫(kù)對(duì)象。SQLServer2008的數(shù)據(jù)庫(kù)對(duì)象主要包括表、視圖、索引、存

儲(chǔ)過(guò)程、觸發(fā)器和約束等。

(1)完全限定名。在SQLServer2008中,完全限定名是對(duì)象的全名,包括四個(gè)部分:服務(wù)

器名、數(shù)據(jù)庫(kù)名、數(shù)據(jù)庫(kù)架構(gòu)名和對(duì)象名,其格式為:server.daiabase.scheme.object

(2)部分限定名。在部分限定名中,未指出的部分使用以下默認(rèn)值:

服務(wù)器:默認(rèn)為本地服務(wù)器。

數(shù)據(jù)庫(kù):默認(rèn)為當(dāng)前數(shù)據(jù)庫(kù)。

數(shù)據(jù)庫(kù)架構(gòu)名:默認(rèn)為db。。

例如,以下是一些正確的對(duì)象部分限定名:

server.database...object/*省略架構(gòu)名*/

server.,scheme.object/*省略數(shù)據(jù)庫(kù)名*/

database,scheme.object/*省略服務(wù)器名*/

server...object/*省略架構(gòu)名和數(shù)據(jù)庫(kù)名*/

scheme.object/*省略服務(wù)器名和數(shù)據(jù)庫(kù)名*/

object/*省略服務(wù)器名、數(shù)據(jù)庫(kù)名和架構(gòu)名*/

表:它是用來(lái)存儲(chǔ)和操作數(shù)據(jù)的一種邏輯結(jié)構(gòu)。

視圖:視圖是從一個(gè)或多個(gè)基本表中引出的表,數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)

應(yīng)的數(shù)據(jù)。

索引:索引是一種不用掃描整個(gè)數(shù)據(jù)表就可以對(duì)表中的數(shù)據(jù)實(shí)現(xiàn)快速訪問(wèn)的途徑,它是對(duì)數(shù)

據(jù)表中的一列或者多列的數(shù)據(jù)進(jìn)行排序的一種結(jié)構(gòu)。

表中的記錄通常按其輸入的時(shí)間順序存放,這種順序稱為記錄的物理順序。為了實(shí)現(xiàn)對(duì)

表記錄的快速查詢,可以對(duì)表的記錄按某個(gè)和某些屬性進(jìn)行排序,這種順序稱為邏輯順序。

約束:約束機(jī)制保障了SQLServer2008中數(shù)據(jù)的一致性與完整性。

存儲(chǔ)過(guò)程:存儲(chǔ)過(guò)程是一組為了完成特定功能的SQL語(yǔ)句集合。

觸發(fā)器:觸發(fā)器與表緊密關(guān)聯(lián)。它可以實(shí)現(xiàn)更加復(fù)雜的數(shù)據(jù)操作,更加有效地保障數(shù)據(jù)庫(kù)系

統(tǒng)中數(shù)據(jù)的完整性和一致性。

默認(rèn)值:默認(rèn)值是在用戶沒(méi)有給出具體數(shù)據(jù)時(shí),系統(tǒng)所自動(dòng)生成的數(shù)值。

用戶和角色:用戶是對(duì)數(shù)據(jù)庫(kù)有存取權(quán)限的使用者;角色是指一組數(shù)據(jù)庫(kù)用戶的集合。

規(guī)則:規(guī)則用來(lái)限制表字段的數(shù)據(jù)范圍。

類型:用戶可以根據(jù)需要在給定的系統(tǒng)類型之上定義自己的數(shù)據(jù)類型。

函數(shù):用戶可以根據(jù)需要定義自己的函數(shù)。

1.數(shù)據(jù)庫(kù)文件(掌握)

(1)主數(shù)據(jù)文件。該文件是數(shù)據(jù)庫(kù)的關(guān)鍵文件,包含了數(shù)據(jù)庫(kù)的啟動(dòng)信息,并且存儲(chǔ)數(shù)據(jù)。

每個(gè)數(shù)據(jù)庫(kù)必須有且僅能有一個(gè)主文件,擴(kuò)展名為.mdf。

(2)輔助數(shù)據(jù)文件。用于存儲(chǔ)未包括在主文件內(nèi)的其他數(shù)據(jù)。輔助文件的默認(rèn)擴(kuò)展名為.ndf。

一般當(dāng)數(shù)據(jù)庫(kù)很大時(shí),有可能需要?jiǎng)?chuàng)建多個(gè)輔助文件。而數(shù)據(jù)庫(kù)較小時(shí),則只要?jiǎng)?chuàng)建主文件

而不需要輔助文件。

(3)日志文件。日志文件用于保存恢復(fù)數(shù)據(jù)庫(kù)所需的事務(wù)日志信息。每個(gè)數(shù)據(jù)庫(kù)至少有一

個(gè)日志文件,也可以有多個(gè),日志文件的擴(kuò)展名為.Idf。

2.文件組

為了管理和分配數(shù)據(jù)而將它們組織在一起。將特定的表、索引等與該文件組相關(guān)聯(lián),那

么對(duì)這些表的存儲(chǔ)、查詢和修改等操作都在該文件組中。

(1)主文件組。主文件組包含主要數(shù)據(jù)文件和任何沒(méi)有明確指派給其他文件組的其他文件。

管理數(shù)據(jù)庫(kù)的系統(tǒng)表的所有頁(yè)均分配在主文件組中。

(2)用戶定義文件組。用戶定義文件組是指“CREATEDATABASE”或uALTERDATABASEw語(yǔ)

句中使用“FILEGR0UP”關(guān)鍵字指定的文件組。

3.系統(tǒng)數(shù)據(jù)庫(kù)與用戶數(shù)據(jù)庫(kù)

系統(tǒng)數(shù)據(jù)庫(kù)存儲(chǔ)有關(guān)SQLServer的系統(tǒng)信息,它們是SQLServer2008管理數(shù)據(jù)庫(kù)的依據(jù)。

如果系統(tǒng)數(shù)據(jù)庫(kù)遭到破壞,SQLServer將不能正常啟動(dòng)。

(1)master數(shù)據(jù)庫(kù)包含了SQLServer諸如登錄賬號(hào)、系統(tǒng)配置、數(shù)據(jù)庫(kù)位置及數(shù)據(jù)庫(kù)錯(cuò)誤

信息等,用于控制用戶數(shù)據(jù)庫(kù)和SQLServer的運(yùn)行。

(2)model數(shù)據(jù)庫(kù)為新創(chuàng)建的數(shù)據(jù)庫(kù)提供模板。

(3)msdb數(shù)據(jù)庫(kù)為“SQLServerAgent”調(diào)度信息和作業(yè)記錄提供存儲(chǔ)空間。

(4)tempdb數(shù)據(jù)庫(kù)為臨時(shí)表和臨時(shí)存儲(chǔ)過(guò)程提供存儲(chǔ)空間,所有與系統(tǒng)連接的用戶的臨時(shí)

表和臨時(shí)存儲(chǔ)過(guò)程都存儲(chǔ)于該數(shù)據(jù)庫(kù)中。

2.2界面方式創(chuàng)建數(shù)據(jù)庫(kù)

2.2.1數(shù)據(jù)庫(kù)的創(chuàng)建(熟練掌握)

【例2.1】創(chuàng)建數(shù)據(jù)庫(kù)PXSCJ,數(shù)據(jù)文件和日志文件的屬性按默認(rèn)值設(shè)置。創(chuàng)建該數(shù)據(jù)庫(kù)的

主要過(guò)程為:

第1步以系統(tǒng)管理員身份登錄計(jì)算機(jī),啟動(dòng)"SQLServerManagementStudio"。如圖2.1

所示

二,連接到服務(wù)zt

MkroioftJf'WhSomS?verSystem

SQLServerzoos,

|服務(wù)器類型

圖2.1連接到服務(wù)器

第2步點(diǎn)擊“新建數(shù)據(jù)庫(kù)”命令

第3步“常規(guī)”、“選項(xiàng)”和“文件組”。這里只配置“常規(guī)”選擇頁(yè),其他選擇頁(yè)使用系

統(tǒng)默認(rèn)設(shè)置。

創(chuàng)建的數(shù)據(jù)庫(kù)名稱“PXSCJ”,也可以在“所有者”文本框中指定數(shù)據(jù)庫(kù)的所有者如sa,

這里使用默認(rèn)值,其他屬性也按默認(rèn)值設(shè)置,如圖2.2所示。

圖2.2"新建數(shù)據(jù)庫(kù)”窗口

另外,可以通過(guò)單擊“自動(dòng)增長(zhǎng)”標(biāo)簽欄下面的按鈕,出現(xiàn)如圖2.3所示的對(duì)話框,在

該對(duì)話框中可以設(shè)置數(shù)據(jù)庫(kù)是否自動(dòng)增長(zhǎng)、增長(zhǎng)方式、數(shù)據(jù)庫(kù)文件最大文件大小。數(shù)據(jù)日志

文件的自動(dòng)增長(zhǎng)設(shè)置對(duì)話框與數(shù)據(jù)文件類似。

圖2.3自動(dòng)增長(zhǎng)設(shè)置

到這里數(shù)據(jù)庫(kù)PXSCJ已經(jīng)創(chuàng)建完成了。此時(shí),可以在“對(duì)象資源管理器”窗口的“數(shù)據(jù)

庫(kù)”目錄下找到該數(shù)據(jù)庫(kù)所對(duì)應(yīng)的圖標(biāo)

2.2.1數(shù)據(jù)庫(kù)的修改(熟練掌握)

1.數(shù)據(jù)庫(kù)的修改

在數(shù)據(jù)庫(kù)被創(chuàng)建后,數(shù)據(jù)文件名和日志文件名就不能改變了。對(duì)已存在的數(shù)據(jù)庫(kù)可以進(jìn)

行的修改包括:

增加或刪除數(shù)據(jù)文件;

改變數(shù)據(jù)文件的大小和增長(zhǎng)方式;

改變?nèi)罩疚募拇笮『驮鲩L(zhǎng)方式;

增加或刪除日志文件;

增加或刪除文件組;

數(shù)據(jù)庫(kù)的重命名。

2.數(shù)據(jù)庫(kù)系統(tǒng)的刪除

2.3命令方式創(chuàng)建數(shù)據(jù)庫(kù)(熟練掌握)

2.3.1創(chuàng)建數(shù)據(jù)庫(kù)

命令方式創(chuàng)建數(shù)據(jù)庫(kù)使用“CREATEDATABASE”命令,創(chuàng)建前要確保用戶具有創(chuàng)建數(shù)據(jù)庫(kù)

的權(quán)限。

由語(yǔ)法格式可知,最簡(jiǎn)單的一句創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句為:CREATEDATABASEdatabasc_namc

【例2.5]創(chuàng)建一個(gè)名為TESTI的數(shù)據(jù)庫(kù),其初始大小為5MB,最大大小不限制,允許數(shù)據(jù)庫(kù)

自動(dòng)增長(zhǎng),增長(zhǎng)方式是按10%比例增長(zhǎng)。日志文件初始為2MB,最大可增長(zhǎng)到5MB,按1MB增長(zhǎng)。

假設(shè)SQLServer服務(wù)已啟動(dòng),并以系統(tǒng)管理員身份登錄計(jì)算機(jī)。

在“查詢分析器“窗口中輸入如下Transact-SQL語(yǔ)句:

CREATEDATABASETESTI

ON

(NAME='TESTI_DATA',

FILENAME=,C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\TEST1.mdf',

SIZE=5MB,

FILEGR0WTH=10%)

LOGON

(NAME』TESTl_log",

FILENAME=,C:\ProgramFiles\MicrosoftSQLServer\MSSQL.l\MSSQL\Data\TESTl.Idf",

SIZE=2MB,

MAXSIZE=5MB,

FILEGROWTH=1MB)

輸入完畢后,單擊“執(zhí)行”按鈕??梢钥吹?,CREATEDATABASE命令執(zhí)行時(shí),在結(jié)果窗

口中將顯示命令執(zhí)行的進(jìn)展情況。

【例2.6]創(chuàng)建一個(gè)名為TEST2的數(shù)據(jù)庫(kù),它有兩個(gè)數(shù)據(jù)文件,其中主數(shù)據(jù)文件為20MB,不

限制增長(zhǎng),按10%增長(zhǎng)。1個(gè)輔數(shù)據(jù)文件為20MB,最大大小不限,按10%增長(zhǎng);有1個(gè)日志文件,

大小為50MB,最大大小為100MB,按10MB增長(zhǎng)。

在“查詢分析器”窗口中輸入如下Transact-SQL語(yǔ)句并執(zhí)行:

CREATEDATABASETEST2

ON

PRIMARY

(

NAME='TEST2_datal',

FILENAME="C:\test2_datal.mdf",

SIZE=20MB,

MAXSIZE=UNLIMITED,

FILEGROWTH=10%

),

(

NAME='TEST2_data2",

FILENAME='C:\test2_data2.ndf',

SIZE=20MB,

MAXSIZE=UNLIMITED,

FILEGROWTII=10%

)

LOGON

NAME=,TEST2_logl,,

FILENAME='C:\test2_logl.Idf,

SIZE=50MB,

MAXSIZE=100MB,

FILEGROWTII=10MB);

【例2.7]創(chuàng)建一個(gè)具有2個(gè)文件組的數(shù)據(jù)庫(kù)TEST3。要求:

(1)主文件組包括文件TEST3_datl,文件初始大小為20MB,最大為60MB,按5MB增長(zhǎng);

(2)有1個(gè)文件組名為TEST3Groupl,包括文件TEST3_dat2,文件初始大小為10MB,最大為

30MB,按10%增長(zhǎng);

(3)數(shù)據(jù)庫(kù)只有一個(gè)日志文件,初始大小為20MB,最大為50MB,按5MB增長(zhǎng)。

新建一個(gè)查詢,在“查詢分析器”窗口中輸入如下Transact-SQL語(yǔ)句并執(zhí)行:

CREATEDATABASETEST3

ON

PRIMARY

(

NAME='TEST3_datl',

FILENAME='C:\TEST3_datLmdf',

SIZE=20MB,

MAXSIZE=60MB,

FILEGROWTH=5MB

),

FILEGROUPTEST3Groupl

(NAME="TEST3_dat2),

FILENAME='C:\TEST3_dat2.ndf,

SIZE=10MB,

MAXSIZE=30MB,

FILEGROWTH=10%)

LOGON

(NAME='TEST3」og',

FILENAME='C:\TEST3_log.ldf',

SIZE=20MB,

MAXSIZE=50MB,

FILEGROWTH=5MB)

2.3.1修改數(shù)據(jù)庫(kù)

使用“ALTERDATABASE”命令對(duì)數(shù)據(jù)庫(kù)可進(jìn)行以下修改:

增加或刪除數(shù)據(jù)文件;

改變數(shù)據(jù)文件的大小和增長(zhǎng)方式;

改變F志文件的大小和增長(zhǎng)方式;

增加或刪除日志文件;

增加或刪除文件組。

語(yǔ)法格式:

ALTERDATABASEdatabasename

{ADDFILE<filespec>t-n][TOFILEGROUPfilegroup_name]

/*在文件組中增加數(shù)據(jù)文件*/

|ADDLOGFILE<filespec>[,-n]/*增加日志文件*/

IREMOVEFILElogicalfilename/*刪除數(shù)據(jù)文件*/

IADDFILEGROUPfilegroup_name/*增加文件組*/

IREMOVEFILEGROUPfilegroup_name/*刪除文件組*/

IMODIFYFILE<filespec>/*更改文件屬性*/

IMODIFYNAME=new_dbname/*數(shù)據(jù)庫(kù)更名*/

IMODIFYFILEGROUPfilegroup_name{fi1egroup_property|NAME=

new_filegroup_name}

SET<optionspec>[,...n][WITH<termination>]/*設(shè)置數(shù)據(jù)庫(kù)屬性*/

ICOLLATE<collation_name>/*指定數(shù)據(jù)庫(kù)排序規(guī)則*/

}

【例2.8]假設(shè)已經(jīng)創(chuàng)建了例2.5中的數(shù)據(jù)庫(kù)TESTI,它只有一個(gè)主數(shù)據(jù)文件,其邏輯文件名

為TEST1_DATA,大小為5MB,最大為50MB,增長(zhǎng)方式為按10%增長(zhǎng)。

要求:修改數(shù)據(jù)庫(kù)TEST1現(xiàn)有數(shù)據(jù)文件的屬性,將主數(shù)據(jù)文件的最大大小改為100MB,增長(zhǎng)方

式改為按每次5MB增長(zhǎng)。

在“查詢分析器”窗口中輸入如下Transact-SQL語(yǔ)句:

ALTERDATABASETESTI

MODIFYFILE

(

NAME=TEST1_DATA,

MAXSIZE=100MB,/*將主數(shù)據(jù)文件的最大大小改為100MB*/

FILEGROWTH=5MB/*將主數(shù)據(jù)文件的增長(zhǎng)方式改為按5MB增長(zhǎng)

)

G0

【例2.9】先為數(shù)據(jù)庫(kù)TEST1增加數(shù)據(jù)文件TEST1BAK,然后刪除該數(shù)據(jù)文件。

ALTERDATABASETESTI

ADDFILE

(

NAME='TEST1BAK",

FILENAME='E:\TEST1BAK.ndf",

SIZE=10MB,

MAXSIZE=50MB,

FILEGROWTH=5%

)

通過(guò)查看數(shù)據(jù)庫(kù)屬性對(duì)話框中的文件屬性來(lái)觀察數(shù)據(jù)庫(kù)“TEST1”是否增加數(shù)據(jù)文件

TESTIBAKo

刪除數(shù)據(jù)文件TEST1BAK的命令如下:

ALTERDATABASETESTI

REMOVEFILETEST1BAK

GO

【例2.10】為數(shù)據(jù)庫(kù)TESTI添加文件組FGROUP,并為此文件組添加兩個(gè)大小均為10MB的數(shù)

據(jù)文件。

ALTERDATABASETESTI

ADDFILEGROUPFGROUP

GO

ALTERDATABASETESTI

ADDFILE

(NAME=,TEST1?DATA2,,

FILENAME='C:\TESTlData2.ndf",

SIZE=10MB,

MAXSIZE=30MB,

FILEGROWTH=5MB),

(NAME='TEST1_DATA3,,

FILENAME='C:\TESTl_Data3.ndf',

SIZE=10MB,

MAXSIZE=30MB,

FILEGROWTH=5MB)

TOFILEGROUPFGROUP

GO

【例2.11】從數(shù)據(jù)庫(kù)中刪除文件組,將例2.10中添加到TESTI數(shù)據(jù)庫(kù)中的文件組FGROUP刪除。

在“查詢分析器”窗口中輸入如下Transact-SQL語(yǔ)句并執(zhí)行:

ALTERDATABASETESTI

REMOVEFILETEST1_DATA2

GO

ALTERDATABASETESTI

REMOVEFILETEST1_DATA3

GO

ALTERDATABASETESTI

REMOVEFILEGROUPFGROUP

GO

【例2.12】為數(shù)據(jù)庫(kù)TESTI添加一個(gè)日志文件。

在“查詢分析器”窗口中輸入如下Transact-SQL語(yǔ)句并執(zhí)行:

ALTERDATABASETESTI

ADDLOGFILE

(

NAME二1TEST1_LOG2,,

FILENAME='C:\TESTl_Log2.1df',

SIZE=5MB,

MAXSIZE=10MB,

FILEGROWTH=1MB

)

GO

【例2.13]從數(shù)據(jù)庫(kù)TESTI中刪除一個(gè)日志文件,將日志文件TEST1_LOG2刪除。

將數(shù)據(jù)庫(kù)TEST1的名改為川STJTEST。進(jìn)行此操作時(shí)必須保證該數(shù)據(jù)庫(kù)不被其他任何用戶使

用。

在“查詢分析器”窗口中輸入如下Transact-SQL語(yǔ)句并執(zhí)行:

ALTERDATABASETESTI

REMOVEFILETEST1_LOG2

GO

ALTERDATABASETESTI

MODIFYNAME=JUST_TEST

GO

2.3.3刪除數(shù)據(jù)庫(kù)

刪除數(shù)據(jù)庫(kù)使用“DROPDATABASE”命令。

語(yǔ)法格式:

DROPDATABASEdatabasename[,,??n][;]

其中,database_name是要?jiǎng)h除的數(shù)據(jù)庫(kù)名。例如,要?jiǎng)h除數(shù)據(jù)庫(kù)TEST2,使用命令:

DROPDATABASETEST2

GO

注意:使用“DROPDATABASE”語(yǔ)句不會(huì)出現(xiàn)確認(rèn)信息,所以要小心使用。另外,不能刪除

系統(tǒng)數(shù)據(jù)庫(kù),否則將導(dǎo)致服務(wù)器無(wú)法使用。

2.3.4數(shù)據(jù)庫(kù)快照(了解)

創(chuàng)建數(shù)據(jù)庫(kù)快照也使用“CREATEDATABASE”命令,語(yǔ)法格式如下:

CREATEDATABASEdatabase_snapshot_name

ON

(NAME=logical_file_name,

FILENAME='os_file_name'

)[,...n]

ASSNAPSHOTOFsource_database_name

[;]

說(shuō)明:

databasesnapshotname:數(shù)據(jù)庫(kù)快照的名稱,這個(gè)名稱在SQLServer實(shí)例中必須唯一且符

合標(biāo)識(shí)符窺則。

ON子句:若要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)快照,要在源數(shù)據(jù)庫(kù)中指定文件列表。若要使快照工作,必須分別

指定所有數(shù)據(jù)文件。其中l(wèi)ogical_file_name是文件名,osfilename是文件的路徑。日志

文件不允許用于數(shù)據(jù)庫(kù)快照。

ASSNAPSHOTOF子句:指定要?jiǎng)?chuàng)建的快照為source_database_name指定的源數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)

快照。

【例2.14]創(chuàng)建PXSCJ數(shù)據(jù)庫(kù)的快照PXSCJ_O1。

CREATEDATABASEPXSCJ01

ON

(NAME=PXSCJ,

FILENAME="C:\ProgramFiles\MicrosoftSQL

Server\MSSQL.l\MSSQL\Data\PXSCJ_01.mdf")ASSNAPSHOTOFPXSCJ

GO

命令執(zhí)行成功之后,在“對(duì)象資源管理器”窗口中刷新“數(shù)據(jù)庫(kù)”菜單欄,在“數(shù)據(jù)庫(kù)”

中展開(kāi)“數(shù)據(jù)庫(kù)快照”,就可以看見(jiàn)剛剛創(chuàng)建的數(shù)據(jù)庫(kù)快照PXSCJ01了。

刪除數(shù)據(jù)庫(kù)快照的方法和刪除數(shù)據(jù)庫(kù)的方法完全相同,可以使用界面方式刪除,也可以使用

命令方式刪除,例如:

DROPDATABASEPXSCJ_01;

課外作業(yè)~P421,3,4,5

課后體會(huì)基本的數(shù)據(jù)庫(kù)概念掌握較好,但是文件組、架構(gòu)的概念往往在大型組織才需

要用到,學(xué)生不易了解到其作用。

學(xué)生學(xué)會(huì)了用兩種方式創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù),用命令的方式創(chuàng)建、修改

和刪除數(shù)據(jù)庫(kù)時(shí)有些命令用的不熟練,需要進(jìn)一步練習(xí)。

課程:數(shù)據(jù)庫(kù)原理與應(yīng)用順序:

教師姓名授課班級(jí)授課形式理論

授課周數(shù)第3-4周授課時(shí)數(shù)4使用教具多媒體

授課章節(jié)

第三章表與表數(shù)據(jù)操作

名稱

教學(xué)目的掌握在數(shù)據(jù)庫(kù)中使用和創(chuàng)建數(shù)據(jù)類型,以及在數(shù)據(jù)庫(kù)中創(chuàng)建表的方法。理解

______________創(chuàng)建分區(qū)表的意義和方法____________________________________________

教學(xué)重點(diǎn)用兩種方式創(chuàng)建、修改和刪除表

教學(xué)難點(diǎn)創(chuàng)建分區(qū)表的過(guò)程較為復(fù)雜,學(xué)生不易掌握

教學(xué)內(nèi)容

3.1表結(jié)構(gòu)和數(shù)據(jù)類型(掌握)

3.1.1表和表結(jié)構(gòu)

表由行和列組成,因此也稱之為二維表。表是在日常工作和生活中經(jīng)常使用的一種表示

數(shù)據(jù)及其關(guān)系的形式。

下面簡(jiǎn)單介紹與表有關(guān)的幾個(gè)概念:

(1)表結(jié)構(gòu)。

(2)記錄。

(3)字段。

(4)空值。

(5)關(guān)鍵字

3.1.2數(shù)據(jù)類型

列的數(shù)據(jù)類型決定了數(shù)據(jù)的取值、范圍和存儲(chǔ)格式。列的數(shù)據(jù)類型可以是SQLServer提

供的系統(tǒng)數(shù)據(jù)類型,也可以是用戶定義的數(shù)據(jù)類型。SQLServer2008提供了豐富的系統(tǒng)數(shù)

據(jù)類型,將其列于表3.2中。

數(shù)據(jù)類數(shù)據(jù)類

符號(hào)標(biāo)識(shí)符號(hào)標(biāo)識(shí)

型型

bigint,int,smallint,

整數(shù)型文本型text,ntext

tinyint

binary,varbinary、

精確數(shù)值型decimal,numeric二進(jìn)制型

varbinary(MAX)

日期時(shí)間類

浮點(diǎn)型float,realdatetime,smalldatetime

貨幣型money,smallmoney時(shí)間戳型timestamp

位型bit圖像型image

char,varchar、cursor,sql_variant,table,

字符型其他

varchar(MAX)uniqueidentifier,xml

Unicode字nchar,nvarchar、

符型nvarchar(MAX)

表3.2系統(tǒng)數(shù)據(jù)類型表

1.整數(shù)型

整數(shù)包括bigint、int、smallint和tinyint,從標(biāo)識(shí)符的含義就可以看出,它們的表示

數(shù)范圍逐漸縮小。

bigint:大整數(shù),數(shù)范圍為-263(-9223372036854775808)?263-1

(9223372036854775807),其精度為19,小數(shù)位數(shù)為0,長(zhǎng)度為8字節(jié)。

int:整數(shù),數(shù)范圍為-231(-2147483648)~231-1(2147483647),其精度為10,小

數(shù)位數(shù)為0,長(zhǎng)度為4字節(jié)。

smallint:短整數(shù),數(shù)范圍為-215(-32768)?215T(32767),其精度為5,小數(shù)位數(shù)

為0,長(zhǎng)度為2字節(jié)。

tinyint:微短整數(shù),數(shù)范圍為0~255,長(zhǎng)度為1字節(jié),其精度為3,小數(shù)位數(shù)為0,長(zhǎng)度為1

字節(jié)。

2.精確數(shù)值型

decimal和numeric可存儲(chǔ)從T038+1到1038T的固定精度和小數(shù)位的數(shù)字?jǐn)?shù)據(jù),它們的

存儲(chǔ)長(zhǎng)度隨精度變化而變化,最少為5字節(jié),最多為17字節(jié)。

精度為1?9時(shí),存儲(chǔ)字節(jié)長(zhǎng)度為5。

精度為10?19時(shí),存儲(chǔ)字節(jié)長(zhǎng)度為9。

精度為20?28時(shí),存儲(chǔ)字節(jié)長(zhǎng)度為13。

精度為29?38時(shí),存儲(chǔ)字節(jié)長(zhǎng)度為17。

例如,若有聲明numeric(8,3),則存儲(chǔ)該類型數(shù)據(jù)需5字節(jié);而若有聲明numeric(22,5),則

存儲(chǔ)該類型數(shù)據(jù)需13字節(jié)。

3.浮點(diǎn)型

有兩Q近似數(shù)值數(shù)據(jù)類型:float[(n)]和real。兩者通常都使用科學(xué)計(jì)數(shù)法表示數(shù)據(jù),

即形為:尾數(shù)E階數(shù),如5.6432E20、-2.98E10,L287659E-9等。

real:使用4字節(jié)存儲(chǔ)數(shù)據(jù),表數(shù)范圍為-3.40E+38?3.40E+38,數(shù)據(jù)精度為7位有效數(shù)字。

float:float型數(shù)據(jù)的數(shù)范圍為-1.79E+308?1.79E+308。定義中的n取值范圍是1?53,用

于指示其精度和存儲(chǔ)大小。

當(dāng)n在1?24之間時(shí),實(shí)際上是定義了一個(gè)real型數(shù)據(jù),存儲(chǔ)長(zhǎng)度為4字節(jié),精度為7位有效數(shù)

字。當(dāng)n在25?53之間時(shí),存儲(chǔ)長(zhǎng)度為8字節(jié),精度為15位有效數(shù)字。當(dāng)缺省n時(shí),代表n在25?

53之間。

4.貨幣型

SQLServer提供了兩個(gè)專門用于處理貨幣的數(shù)據(jù)類型:

money和smalImoney,它們用十進(jìn)制數(shù)表示貨幣值。

money:數(shù)據(jù)的數(shù)范圍為-263(-922337203685477.5808)~263-1(922337203685477.5807),

其精度為19,小數(shù)位數(shù)為4,長(zhǎng)度為8字節(jié)。money的數(shù)的范圍與bigint相同,不同的只是money

型有4位小數(shù)。實(shí)際上,money就是按照整數(shù)進(jìn)行運(yùn)算的,只是將小數(shù)點(diǎn)固定在末4位。

smallmoney:數(shù)范圍為-231(-214748.3648)-231-1(214748.3647),其精度為10,小數(shù)

位數(shù)為4,長(zhǎng)度為4字節(jié)??梢?jiàn)smallmoney與int的關(guān)系就如同money與bigint的關(guān)系。

5.位型

SQLServer中的位(bit)型數(shù)據(jù)相當(dāng)于其他語(yǔ)言中的邏輯型數(shù)據(jù),它只存儲(chǔ)0和1,長(zhǎng)度

為一個(gè)字節(jié)。但要注意,SQLServer對(duì)表中bit類型列的存儲(chǔ)做了優(yōu)化:如果一個(gè)表中有不

多于8個(gè)的bit列,這些列將作為一個(gè)字節(jié)存儲(chǔ);如果表中有9到16個(gè)bit列,這些列將作為兩

個(gè)字節(jié)存儲(chǔ);更多列的情況依次類推。

當(dāng)為bit類型數(shù)據(jù)賦0時(shí),其值為0,而賦非0(如100)時(shí),其值為1。字符串值TRUE和FALSE

可以轉(zhuǎn)換為以下bit值:TRUE轉(zhuǎn)換為1,FALSE轉(zhuǎn)換為0。

6.字符型

字符型數(shù)據(jù)用于存儲(chǔ)字符串,字符串中可包括字母、數(shù)字和其他特殊符號(hào)(如#、@、&

等)。如'abc'、"AbcVCde”。

$QLServer字符型包括兩類:固定長(zhǎng)度(char)或可變長(zhǎng)度(varchar)字符數(shù)據(jù)類型。

char[(n)]:定長(zhǎng)字符數(shù)據(jù)類型,其中n定義字符型數(shù)據(jù)的長(zhǎng)度,n在1到8000之間,缺

省為1。當(dāng)表中的列定義為char(n)類型時(shí),若實(shí)際要存儲(chǔ)的串長(zhǎng)度不足n時(shí),則在串的尾部

添加空格以達(dá)到長(zhǎng)度n,所以char(n)的長(zhǎng)度為n。

例如:某列的數(shù)據(jù)類型為char(20),而輸入的字符串為"ahjml922”,則存儲(chǔ)的是字符ahjml922

和12個(gè)空格。若輸入的字符個(gè)數(shù)超出了n,則超出的部分被截?cái)唷?/p>

varchar[(n)]:變長(zhǎng)字符數(shù)據(jù)類型,其中n的規(guī)定與定長(zhǎng)字符型char中n完全相同,但這里n

表示的是字符串可達(dá)到的最大長(zhǎng)度。

7.Unicode字符型

Unicode是“統(tǒng)一字符編碼標(biāo)準(zhǔn)”,用于支持國(guó)際上非英語(yǔ)語(yǔ)種的字符數(shù)據(jù)的存儲(chǔ)和處

理。

Unicode字符型包括nchar[(n)]和nvarchar[(n)]兩類。

nchar[(n)]:nchar[(n)]為包含n個(gè)字符的固定長(zhǎng)度Unicode字符型數(shù)據(jù),n的值在1與4000

之間,缺省為1,長(zhǎng)度2n字節(jié)。若輸入的字符串長(zhǎng)度不足n,將以空白字符補(bǔ)足。

nvarchar[(n)]:nvarchar](n)]為最多包含n個(gè)字符的可變長(zhǎng)度Unicode字符型數(shù)據(jù),n的值

在1與4000之間,缺省為1。長(zhǎng)度是所輸入字符個(gè)數(shù)的兩倍。

實(shí)際上,nchar、nvarchar與char、varchar的使用非常相似,只是字符集不同(前者使用

Unicode字符集,后者使用ASCII字符集)。

8.文本型

文本型包括text和ntext兩類,分別對(duì)應(yīng)ASCII字符和Unicode字符。

text類型可以表示最大長(zhǎng)度為231-1(2147483647)個(gè)字符,其數(shù)據(jù)的存儲(chǔ)長(zhǎng)度為實(shí)際字符

數(shù)個(gè)字節(jié)。

ntext類型可表示最大長(zhǎng)度為230-1(1073741823)個(gè)Unicode字符,其數(shù)據(jù)的存儲(chǔ)長(zhǎng)度

是實(shí)際字符個(gè)數(shù)的兩倍(以字節(jié)為單位)。

9.二進(jìn)制型

二進(jìn)制數(shù)據(jù)類型表示的是位數(shù)據(jù)流,包括binary(固定長(zhǎng)度)和varbinary(可變長(zhǎng)度)

兩種。

binary[(n)]:固定長(zhǎng)度的n個(gè)字節(jié)二進(jìn)制數(shù)據(jù)。n取值范圍為1到8000,缺省為1。binary(n)

數(shù)據(jù)的存儲(chǔ)長(zhǎng)度為n+4字節(jié)。若輸入的數(shù)據(jù)長(zhǎng)度小于n,則不足部分用0填充;若輸入的數(shù)據(jù)

長(zhǎng)度大于n,則多余部分被截?cái)唷?/p>

varbinary[(n)]:n個(gè)字節(jié)變長(zhǎng)二進(jìn)制數(shù)據(jù)。n取值范圍為1到8000,缺省為1。varbinary(n)

數(shù)據(jù)的存儲(chǔ)長(zhǎng)度為實(shí)際輸入數(shù)據(jù)長(zhǎng)度+4個(gè)字節(jié)。

10.日期時(shí)間類型

日期時(shí)間類型數(shù)據(jù)用于存儲(chǔ)日期和時(shí)間信息。

datetime:datetime類型可表示的日期范圍從1753年1月1日到9999年12月31日的日期和時(shí)

間數(shù)據(jù),精確度為百分之三秒(3.33毫秒或0.00333秒),例如1到3毫秒的值都表示為0毫秒,

4到6毫秒的值都表示為4毫秒。

datetime類型數(shù)據(jù)長(zhǎng)度為8字節(jié),日期和時(shí)間分別使用4個(gè)字節(jié)存儲(chǔ)。前4字節(jié)用于存儲(chǔ)

datetime類型數(shù)據(jù)中距1900年1月1日的天數(shù)。為正數(shù)表示日期在1900年1月1日之后,為負(fù)數(shù)

則表示日期在1900年1月1日之前。用戶給出datetime類型數(shù)據(jù)值時(shí),日期部分和時(shí)間部分分

別給出。

年月日2001Jan20>2001Janary20

年日月200120Jan

月日[,]年Jan202001>Jan20,2001、Jan20,01

月年日J(rèn)an200120

日月[,]年20Jan20020Jan,2001

日年月202001Jan

年(4位數(shù))2001表不

年月日20010120.010120

月/日/年、1/20/01、01/20/200K1/20/2001

月-日-年、1-20-01>01-20-200K1-20-2001

月.日.年、1.20.01>01.20.2001、1.20.2001

11.時(shí)間戳型

標(biāo)識(shí)符是timestamp。若創(chuàng)建表時(shí)定義一個(gè)列的數(shù)據(jù)類型為時(shí)間戳類型,那么每當(dāng)對(duì)該

表加入新行或修改已有行時(shí),都由系統(tǒng)自動(dòng)將一個(gè)計(jì)數(shù)器值加到該列,即將原來(lái)的時(shí)間戳值

加上一個(gè)增量。

記錄timestamp列的值實(shí)際上反映了系統(tǒng)對(duì)該記錄修改的相對(duì)(相對(duì)于其他記錄)順序。

一個(gè)表只能有一個(gè)timestamp列。其長(zhǎng)度為8字節(jié)。

12.圖像數(shù)據(jù)類型

標(biāo)識(shí)符是image,它用于存儲(chǔ)圖片、照片等。實(shí)際存儲(chǔ)的是可變長(zhǎng)度二進(jìn)制數(shù)據(jù),介于0

與231-1(2147483647)字節(jié)之間。在SQLServer2008中該類型是為了向下兼容而保留的數(shù)

據(jù)類型。微軟推薦用戶使用varbinary(MAX)數(shù)據(jù)類型來(lái)替代image類型。

13.其他數(shù)據(jù)類型

除了上面所介紹的常用數(shù)據(jù)類型外,SQLServer2008還提供了其他幾種數(shù)據(jù)類型:

cursor、sql_variant、table和uniqueidentifier。

cursor:是源標(biāo)數(shù)據(jù)類型,用于創(chuàng)建游標(biāo)變量或定義存儲(chǔ)過(guò)程的輸出參數(shù)。

sql_variant:是一種存儲(chǔ)SQLServer支持的各種數(shù)據(jù)類型(除text、ntext、image,timestamp

和sql_variant外)值的數(shù)據(jù)類型。sql_variant的最大長(zhǎng)度可達(dá)8016字節(jié)。

table:是用于存儲(chǔ)結(jié)果集的數(shù)據(jù)類型,結(jié)果集可以供后續(xù)處理。

uniqueidentifier:是唯一標(biāo)識(shí)符類型。系統(tǒng)將為這種類型的數(shù)據(jù)產(chǎn)生唯一標(biāo)識(shí)值,它是一

個(gè)16字節(jié)長(zhǎng)的二進(jìn)制數(shù)據(jù)。

xml:是用來(lái)在數(shù)據(jù)庫(kù)中保存xml文檔和片段的一種類型,但是此種類型的文件大小不能超過(guò)

2GB,

3.1.3.表結(jié)構(gòu)設(shè)計(jì)

學(xué)生管理系統(tǒng)的三個(gè)表:學(xué)生表(表名為XSB)、課程表(表名為KCB)和成績(jī)表(表名

為CJB)為例介紹如何設(shè)計(jì)表的結(jié)構(gòu)。

是否可

列名數(shù)據(jù)類型長(zhǎng)度默認(rèn)值說(shuō)明

主鍵,前2位年級(jí),中間2

學(xué)號(hào)定長(zhǎng)字符型(char)6X無(wú)

位班級(jí)號(hào),后2位序號(hào)

姓名定長(zhǎng)字符型(char)8X無(wú)

性別位型(bit)1V11:男;0:女

出生時(shí)間日期型(datetime)系統(tǒng)默認(rèn)V無(wú)

專業(yè)定長(zhǎng)字符型(char)12V無(wú)

總學(xué)分整數(shù)型(int)4V00W總學(xué)分<160

不定長(zhǎng)字符型

備注500無(wú)

(varchar)

表3.3XSB的表結(jié)構(gòu)

參照XSB表結(jié)構(gòu)的設(shè)計(jì)方法,同樣可以設(shè)計(jì)出其他兩個(gè)表的結(jié)構(gòu),如表3.4所示的是!(。?

的表結(jié)構(gòu),如表3.5所示的是CJB的表結(jié)構(gòu).

認(rèn)

列名數(shù)據(jù)類型長(zhǎng)度可空值說(shuō)明

課程號(hào)定長(zhǎng)字符型(char)3X無(wú)主鍵

課程名定長(zhǎng)字符型(char)16X無(wú)

開(kāi)課學(xué)期整數(shù)型(tinyint)1V1只能為1?8

學(xué)時(shí)整數(shù)型(tinyint)1J0

學(xué)分整數(shù)型(tinyint)1X0

表3.4KCB的表結(jié)構(gòu)

認(rèn)

列名數(shù)據(jù)類型長(zhǎng)度可空值說(shuō)明

學(xué)號(hào)定長(zhǎng)字符型(char)6X無(wú)主鍵

課程號(hào)定長(zhǎng)字符型(char)3X無(wú)主鍵

成績(jī)整數(shù)型(int)默認(rèn)值V0

表3.5CJB的表結(jié)構(gòu)

3.2界面方式操作表(熟練掌握)

3.2.1創(chuàng)建表

第1步啟動(dòng)“SQLServerManagementStudio”f在“對(duì)象資源管理器”中展開(kāi)“數(shù)

據(jù)庫(kù)”一右擊“PXSCJ”數(shù)據(jù)庫(kù)菜單下的“表”選項(xiàng),在彈出的快捷菜單中選擇“新建表”

菜單項(xiàng),打開(kāi)如圖3.1所示的“表設(shè)計(jì)器”窗口。

K:licrosoftSQLServerlanaee*cntStudio13回區(qū)I

文件94USQDaSQ:)項(xiàng)目表設(shè)i+HQ)XAO)社區(qū)?招的QP

,蝌演兩項(xiàng)u&⑦鄉(xiāng)g一.,j、J¥乙

對(duì)集空兩臺(tái)泡器■EW囊-部?.T?ble_l?IfZ

&jr惠今關(guān)量

(jj0BDTI5TCM9M2O(SQL5?r,<har<6)

HU數(shù)警摩char(6>

au系紙數(shù)據(jù)麻

SJ舸S除快黑填寫名

aUnscj

?」致莞庫(kù)美茶的

一」同義詞

a_j可性

?_JServiceBrok?r

?一4存儲(chǔ)

*一I安全性

t-I安全性

出LJ省理

JuUK?tificat>?n$*rvii

J)SQLS?rv*r代理(EJJJ

圖3.1“表設(shè)計(jì)器”窗口

第2步在“表設(shè)計(jì)器”窗口中,各列的名稱、數(shù)據(jù)類型、是否允許為空值等屬性。根據(jù)

需要,可以在列屬性表格填入相應(yīng)的內(nèi)容。

第3步在“學(xué)號(hào)”列上右擊鼠標(biāo),選擇“設(shè)置主鍵”菜單項(xiàng),選擇“設(shè)為主鍵”選項(xiàng),

如圖3.2所示。在列屬性窗口中的“默認(rèn)值和綁定"和“說(shuō)明”項(xiàng)中分別填寫各列的默認(rèn)值

和說(shuō)明。

允許

舶數(shù)籍愛(ài)型

5]學(xué)號(hào)口

設(shè)置主鍵9

……一姓名口

T0

性別Y0

出生時(shí)間M刪除列但)

團(tuán)

專業(yè)國(guó))…

圉0

總學(xué)分索引/鍵復(fù))…0

備注焉

全文本索引%)…

d口

aX?L索引④…

CHECK約束…

圖3.2設(shè)置XSB表的主鍵

學(xué)生情況表結(jié)構(gòu)設(shè)計(jì)完成后

溫馨提示

  • 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)論