版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民工宿舍衛(wèi)生管理制度
- 火鍋店衛(wèi)生獎(jiǎng)懲制度
- 衛(wèi)生院談心交心制度
- 公司飯?zhí)眯l(wèi)生制度
- 衛(wèi)生室行風(fēng)建設(shè)制度
- 衛(wèi)生間疫情管理制度
- 易遷安置點(diǎn)衛(wèi)生管理制度
- 基層衛(wèi)生院儀器管理制度
- 衛(wèi)生保健室器材管理制度
- 河道衛(wèi)生保潔制度
- 海岸生態(tài)修復(fù)技術(shù)-第2篇-洞察及研究
- 用材料抵工程款的協(xié)議書
- 2024年湖南省煙草專賣局(公司)真題試卷及答案
- 公司出口事務(wù)管理制度
- 保安證考試題庫(kù)及答案2025年
- 2025跨境電商購(gòu)銷合同范本(中英文對(duì)照)
- 兒童出入境委托書
- 土建施工規(guī)范培訓(xùn)
- 汽車銷售月度工作總結(jié)與計(jì)劃
- DB33T 2256-2020 大棚草莓生產(chǎn)技術(shù)規(guī)程
- 《建設(shè)工程造價(jià)咨詢服務(wù)工時(shí)標(biāo)準(zhǔn)(房屋建筑工程)》
評(píng)論
0/150
提交評(píng)論