SQL Server2000基本操作與應(yīng)用_第1頁(yè)
SQL Server2000基本操作與應(yīng)用_第2頁(yè)
SQL Server2000基本操作與應(yīng)用_第3頁(yè)
SQL Server2000基本操作與應(yīng)用_第4頁(yè)
SQL Server2000基本操作與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩93頁(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)介

1、SQL Server2000數(shù)據(jù)庫(kù)基本操作 表和視圖的基本操作 案例:創(chuàng)建活期儲(chǔ)蓄管理系統(tǒng)數(shù)據(jù)庫(kù) -數(shù)據(jù)庫(kù)的物理設(shè)計(jì)與實(shí)現(xiàn)SQL Server2000基本操作與應(yīng)用基本操作與應(yīng)用 SQL Server2000 SQL Server2000 中一臺(tái)服務(wù)器上可中一臺(tái)服務(wù)器上可創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)。創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)。SQL Server2000SQL Server2000中的數(shù)據(jù)中的數(shù)據(jù)庫(kù)是由數(shù)據(jù)表的集合組成的,每個(gè)數(shù)據(jù)表中庫(kù)是由數(shù)據(jù)表的集合組成的,每個(gè)數(shù)據(jù)表中包含數(shù)據(jù)以及其他數(shù)據(jù)庫(kù)對(duì)象,這些對(duì)象包包含數(shù)據(jù)以及其他數(shù)據(jù)庫(kù)對(duì)象,這些對(duì)象包括視圖、索引、存儲(chǔ)過(guò)程和觸發(fā)器等。括視圖、索引、存儲(chǔ)過(guò)程和觸發(fā)器等。數(shù)據(jù)

2、庫(kù)系統(tǒng)使用一組操作系統(tǒng)文件來(lái)數(shù)據(jù)庫(kù)系統(tǒng)使用一組操作系統(tǒng)文件來(lái)映射數(shù)據(jù)庫(kù)管理系統(tǒng)中保存的數(shù)據(jù)庫(kù),數(shù)據(jù)映射數(shù)據(jù)庫(kù)管理系統(tǒng)中保存的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)和對(duì)象都存儲(chǔ)在其映射的操庫(kù)中的所有數(shù)據(jù)和對(duì)象都存儲(chǔ)在其映射的操作系統(tǒng)文件中。這些操作系統(tǒng)文件可以是數(shù)作系統(tǒng)文件中。這些操作系統(tǒng)文件可以是數(shù)據(jù)文件或日志文件。據(jù)文件或日志文件。SQL Server2000SQL Server2000數(shù)據(jù)庫(kù)基本操作數(shù)據(jù)庫(kù)基本操作 SQL ServerSQL Server數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)概述v 數(shù)據(jù)庫(kù)文件和文件組數(shù)據(jù)庫(kù)文件和文件組 SQL ServerSQL Server的數(shù)據(jù)庫(kù)由的數(shù)據(jù)庫(kù)由數(shù)據(jù)文件數(shù)據(jù)文件和和日志文件

3、日志文件組成。數(shù)據(jù)組成。數(shù)據(jù)文件是用來(lái)存放數(shù)據(jù)庫(kù)中的數(shù)據(jù)的。數(shù)據(jù)文件又包括文件是用來(lái)存放數(shù)據(jù)庫(kù)中的數(shù)據(jù)的。數(shù)據(jù)文件又包括主數(shù)據(jù)主數(shù)據(jù)文件和次數(shù)據(jù)文件文件和次數(shù)據(jù)文件。每個(gè)數(shù)據(jù)庫(kù)都包括一個(gè)主數(shù)據(jù)文件和一。每個(gè)數(shù)據(jù)庫(kù)都包括一個(gè)主數(shù)據(jù)文件和一個(gè)或多個(gè)日志文件,還可以有次數(shù)據(jù)文件。個(gè)或多個(gè)日志文件,還可以有次數(shù)據(jù)文件。 主數(shù)據(jù)文件主數(shù)據(jù)文件(.mdf(.mdf) ):存儲(chǔ)數(shù)據(jù)信息和數(shù)據(jù)庫(kù)的啟動(dòng)信息。:存儲(chǔ)數(shù)據(jù)信息和數(shù)據(jù)庫(kù)的啟動(dòng)信息。一個(gè)數(shù)據(jù)庫(kù)有且僅有一個(gè)主數(shù)據(jù)文件。一個(gè)數(shù)據(jù)庫(kù)有且僅有一個(gè)主數(shù)據(jù)文件。 次數(shù)據(jù)文件次數(shù)據(jù)文件(.ndf(.ndf) ):存儲(chǔ)主數(shù)據(jù)文件存儲(chǔ)不下的數(shù)據(jù)信息。:存儲(chǔ)主數(shù)據(jù)文件存儲(chǔ)

4、不下的數(shù)據(jù)信息。一個(gè)數(shù)據(jù)庫(kù)可以沒(méi)有次數(shù)據(jù)文件,也可有多個(gè)次數(shù)據(jù)文件。一個(gè)數(shù)據(jù)庫(kù)可以沒(méi)有次數(shù)據(jù)文件,也可有多個(gè)次數(shù)據(jù)文件。 日志文件日志文件(.ldf(.ldf) ):存儲(chǔ)數(shù)據(jù)庫(kù)的所有事務(wù)日志信息,包含:存儲(chǔ)數(shù)據(jù)庫(kù)的所有事務(wù)日志信息,包含用于恢復(fù)數(shù)據(jù)庫(kù)的日志信息,一個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)日志用于恢復(fù)數(shù)據(jù)庫(kù)的日志信息,一個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)日志文件,也可以有多個(gè)日志文件。文件,也可以有多個(gè)日志文件。v 數(shù)據(jù)庫(kù)文件組數(shù)據(jù)庫(kù)文件組為了方便管理、提高系統(tǒng)性能,將多個(gè)數(shù)據(jù)庫(kù)文件組為了方便管理、提高系統(tǒng)性能,將多個(gè)數(shù)據(jù)庫(kù)文件組織成一組,即稱為數(shù)據(jù)庫(kù)文件組。數(shù)據(jù)庫(kù)文件組控制各個(gè)織成一組,即稱為數(shù)據(jù)庫(kù)文件組。數(shù)據(jù)庫(kù)文

5、件組控制各個(gè)文件的存放位置,常常將每個(gè)文件建立在不同的硬盤(pán)驅(qū)動(dòng)文件的存放位置,常常將每個(gè)文件建立在不同的硬盤(pán)驅(qū)動(dòng)器上。這樣可以減輕單個(gè)硬盤(pán)驅(qū)動(dòng)器的存儲(chǔ)負(fù)載,提高數(shù)器上。這樣可以減輕單個(gè)硬盤(pán)驅(qū)動(dòng)器的存儲(chǔ)負(fù)載,提高數(shù)據(jù)庫(kù)的存儲(chǔ)效率,從而實(shí)現(xiàn)提高系統(tǒng)性能的目的。據(jù)庫(kù)的存儲(chǔ)效率,從而實(shí)現(xiàn)提高系統(tǒng)性能的目的。 在使用數(shù)據(jù)庫(kù)文件和文件組時(shí),應(yīng)該注意以下幾點(diǎn):在使用數(shù)據(jù)庫(kù)文件和文件組時(shí),應(yīng)該注意以下幾點(diǎn): 1)1)每個(gè)文件或文件組只能用于一個(gè)數(shù)據(jù)庫(kù)。每個(gè)文件或文件組只能用于一個(gè)數(shù)據(jù)庫(kù)。 2)2)每個(gè)文件只能屬于一個(gè)文件組。每個(gè)文件只能屬于一個(gè)文件組。 3)3)日志文件是獨(dú)立的。數(shù)據(jù)庫(kù)的數(shù)據(jù)和日志信息不能日志

6、文件是獨(dú)立的。數(shù)據(jù)庫(kù)的數(shù)據(jù)和日志信息不能放在同一個(gè)文件或文件組中,數(shù)據(jù)文件和日志文件總是分放在同一個(gè)文件或文件組中,數(shù)據(jù)文件和日志文件總是分開(kāi)的。開(kāi)的。 v 系統(tǒng)數(shù)據(jù)庫(kù)和示例數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)和示例數(shù)據(jù)庫(kù) SQL ServerSQL Server支持系統(tǒng)數(shù)據(jù)庫(kù)、示例數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)。支持系統(tǒng)數(shù)據(jù)庫(kù)、示例數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)。 系統(tǒng)和示例數(shù)據(jù)庫(kù)是在安裝系統(tǒng)和示例數(shù)據(jù)庫(kù)是在安裝 SQL ServerSQL Server后自動(dòng)創(chuàng)建的,后自動(dòng)創(chuàng)建的,用戶數(shù)據(jù)庫(kù)是由系統(tǒng)管理員或授權(quán)的用戶創(chuàng)建的數(shù)據(jù)庫(kù)。用戶數(shù)據(jù)庫(kù)是由系統(tǒng)管理員或授權(quán)的用戶創(chuàng)建的數(shù)據(jù)庫(kù)。 系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù) SQL ServerSQL Se

7、rver的系統(tǒng)數(shù)據(jù)庫(kù)包括以下幾個(gè)數(shù)據(jù)庫(kù):的系統(tǒng)數(shù)據(jù)庫(kù)包括以下幾個(gè)數(shù)據(jù)庫(kù): mastermaster數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 是是SQL ServerSQL Server的總控?cái)?shù)據(jù)庫(kù),保存了的總控?cái)?shù)據(jù)庫(kù),保存了SQL ServerSQL Server系系統(tǒng)的全部系統(tǒng)信息、所有登錄信息和系統(tǒng)配置,保存了統(tǒng)的全部系統(tǒng)信息、所有登錄信息和系統(tǒng)配置,保存了所有建立的其他數(shù)據(jù)庫(kù)及其有關(guān)信息。用戶應(yīng)隨時(shí)備份所有建立的其他數(shù)據(jù)庫(kù)及其有關(guān)信息。用戶應(yīng)隨時(shí)備份該數(shù)據(jù)庫(kù),以保證系統(tǒng)的正常運(yùn)行。該數(shù)據(jù)庫(kù),以保證系統(tǒng)的正常運(yùn)行。 mastermaster數(shù)據(jù)庫(kù)中包含大量的系統(tǒng)表、視圖和存儲(chǔ)過(guò)數(shù)據(jù)庫(kù)中包含大量的系統(tǒng)表、視圖和存儲(chǔ)過(guò)程

8、,用于保存程,用于保存ServerServer級(jí)的系統(tǒng)信息,并實(shí)現(xiàn)系統(tǒng)管理。級(jí)的系統(tǒng)信息,并實(shí)現(xiàn)系統(tǒng)管理。其中特有的、常用的系統(tǒng)表和存儲(chǔ)過(guò)程見(jiàn)附錄其中特有的、常用的系統(tǒng)表和存儲(chǔ)過(guò)程見(jiàn)附錄B B和附錄和附錄C C。 tempdbtempdb數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) tempdbtempdb是一個(gè)臨時(shí)數(shù)據(jù)庫(kù),是全局資源,它保存全是一個(gè)臨時(shí)數(shù)據(jù)庫(kù),是全局資源,它保存全部的臨時(shí)表和臨時(shí)存儲(chǔ)過(guò)程。每次啟動(dòng)部的臨時(shí)表和臨時(shí)存儲(chǔ)過(guò)程。每次啟動(dòng) SQL ServerSQL Server時(shí),時(shí),tempdbtempdb數(shù)據(jù)庫(kù)都被重建,因此,該數(shù)據(jù)庫(kù)在系統(tǒng)啟動(dòng)時(shí)數(shù)據(jù)庫(kù)都被重建,因此,該數(shù)據(jù)庫(kù)在系統(tǒng)啟動(dòng)時(shí)總是干凈的??偸歉蓛舻?/p>

9、。 使用使用tempdbtempdb不需要特殊的權(quán)限。不管不需要特殊的權(quán)限。不管SQL ServerSQL Server中中安裝了多少數(shù)據(jù)庫(kù),安裝了多少數(shù)據(jù)庫(kù),tempdbtempdb只有一個(gè)。只有一個(gè)。tempdbtempdb是系統(tǒng)中是系統(tǒng)中負(fù)擔(dān)最重的數(shù)據(jù)庫(kù),幾乎所有的查詢都可能使用它。負(fù)擔(dān)最重的數(shù)據(jù)庫(kù),幾乎所有的查詢都可能使用它。 modelmodel數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 是一個(gè)模板數(shù)據(jù)庫(kù)。每當(dāng)創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)時(shí),是一個(gè)模板數(shù)據(jù)庫(kù)。每當(dāng)創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)時(shí),SQL SQL ServerServer就復(fù)制就復(fù)制modelmodel數(shù)據(jù)庫(kù)的內(nèi)容到新建數(shù)據(jù)庫(kù)中,因此,數(shù)據(jù)庫(kù)的內(nèi)容到新建數(shù)據(jù)庫(kù)中,因此,所有

10、新建數(shù)據(jù)庫(kù)的內(nèi)容都和這個(gè)數(shù)據(jù)庫(kù)完全一樣。所有新建數(shù)據(jù)庫(kù)的內(nèi)容都和這個(gè)數(shù)據(jù)庫(kù)完全一樣。 如果用戶想使每個(gè)新建的數(shù)據(jù)庫(kù)一開(kāi)始就具有某些如果用戶想使每個(gè)新建的數(shù)據(jù)庫(kù)一開(kāi)始就具有某些對(duì)象,可以將這些對(duì)象放到對(duì)象,可以將這些對(duì)象放到modelmodel數(shù)據(jù)庫(kù)中,這樣所有新數(shù)據(jù)庫(kù)中,這樣所有新建的數(shù)據(jù)庫(kù)都將繼承這些內(nèi)容。建的數(shù)據(jù)庫(kù)都將繼承這些內(nèi)容。modelmodel數(shù)據(jù)庫(kù)中有數(shù)據(jù)庫(kù)中有1818個(gè)系個(gè)系統(tǒng)表統(tǒng)表(master(master數(shù)據(jù)庫(kù)中也有這些系統(tǒng)表數(shù)據(jù)庫(kù)中也有這些系統(tǒng)表) )、視圖以及存儲(chǔ)、視圖以及存儲(chǔ)過(guò)程,用于保存數(shù)據(jù)庫(kù)級(jí)的系統(tǒng)信息。過(guò)程,用于保存數(shù)據(jù)庫(kù)級(jí)的系統(tǒng)信息。 msdbmsdb數(shù)據(jù)庫(kù)

11、數(shù)據(jù)庫(kù) msdbmsdb數(shù)據(jù)庫(kù)是一個(gè)和自動(dòng)化有關(guān)的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)是一個(gè)和自動(dòng)化有關(guān)的數(shù)據(jù)庫(kù)。SQL SQL Server Server 代理(代理(SQL Server AgentSQL Server Agent)使用)使用 msdbmsdb數(shù)據(jù)庫(kù)來(lái)數(shù)據(jù)庫(kù)來(lái)安排報(bào)警、作業(yè),并記錄操作員。如完成一些調(diào)度性的安排報(bào)警、作業(yè),并記錄操作員。如完成一些調(diào)度性的工作,備份和復(fù)制等。工作,備份和復(fù)制等。 示例數(shù)據(jù)庫(kù)示例數(shù)據(jù)庫(kù)SQL ServerSQL Server的示例數(shù)據(jù)庫(kù)主要包括以下兩個(gè)數(shù)據(jù)庫(kù)。的示例數(shù)據(jù)庫(kù)主要包括以下兩個(gè)數(shù)據(jù)庫(kù)。 pubspubs數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)一個(gè)圖書(shū)出版方面的示例數(shù)據(jù)庫(kù),雖然用戶可以

12、隨一個(gè)圖書(shū)出版方面的示例數(shù)據(jù)庫(kù),雖然用戶可以隨時(shí)修改、甚至刪除該數(shù)據(jù)庫(kù),但建議用戶保留該數(shù)據(jù)庫(kù),時(shí)修改、甚至刪除該數(shù)據(jù)庫(kù),但建議用戶保留該數(shù)據(jù)庫(kù),以便更好地學(xué)習(xí)以便更好地學(xué)習(xí)SQL ServerSQL Server。 NorthwindNorthwind數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)一個(gè)涉及虛構(gòu)的一個(gè)涉及虛構(gòu)的NorthwindNorthwind貿(mào)易公司在世界范圍內(nèi)貿(mào)易公司在世界范圍內(nèi)進(jìn)出口食品的銷(xiāo)售情況示例數(shù)據(jù)庫(kù)。進(jìn)出口食品的銷(xiāo)售情況示例數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)v 創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù):就是為數(shù)據(jù)庫(kù)確定名稱、大小、存放位置、文就是為數(shù)據(jù)庫(kù)確定名稱、大小、存放位置、文件名和所在文件組的過(guò)程。件名和所在文件組

13、的過(guò)程。 文件名稱:數(shù)據(jù)文件和日志文件的名稱文件名稱:數(shù)據(jù)文件和日志文件的名稱( (邏輯名邏輯名) ) 。文件。文件名必須符合命名規(guī)則。名必須符合命名規(guī)則。在同一臺(tái)在同一臺(tái)SQL ServerSQL Server服務(wù)器上,各服務(wù)器上,各數(shù)據(jù)庫(kù)的名稱是惟一的。數(shù)據(jù)庫(kù)的名稱是惟一的。數(shù)據(jù)庫(kù)的創(chuàng)建信息存放在數(shù)據(jù)庫(kù)的創(chuàng)建信息存放在mastermaster數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)的sysdatabasessysdatabases系統(tǒng)表中。創(chuàng)建數(shù)據(jù)庫(kù)后,系統(tǒng)自系統(tǒng)表中。創(chuàng)建數(shù)據(jù)庫(kù)后,系統(tǒng)自動(dòng)把動(dòng)把modelmodel數(shù)據(jù)庫(kù)中的信息復(fù)制到新建的數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)中的信息復(fù)制到新建的數(shù)據(jù)庫(kù)中。 創(chuàng)建數(shù)據(jù)庫(kù)之前,首先要考慮

14、數(shù)據(jù)庫(kù)的擁有者、數(shù)據(jù)庫(kù)的創(chuàng)建數(shù)據(jù)庫(kù)之前,首先要考慮數(shù)據(jù)庫(kù)的擁有者、數(shù)據(jù)庫(kù)的初始容量、最大容量、增長(zhǎng)量以及數(shù)據(jù)庫(kù)文件的存放路徑初始容量、最大容量、增長(zhǎng)量以及數(shù)據(jù)庫(kù)文件的存放路徑等因素,文件大小一般以等因素,文件大小一般以MBMB為單位。為單位。v SQL Server 2000SQL Server 2000中創(chuàng)建數(shù)據(jù)庫(kù)的方法中創(chuàng)建數(shù)據(jù)庫(kù)的方法:使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)使用使用Transact-SQLTransact-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)使用向?qū)?chuàng)建數(shù)據(jù)庫(kù)使用向?qū)?chuàng)建數(shù)據(jù)庫(kù)v 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)例例:以默認(rèn)形式創(chuàng)建:以默認(rèn)形式創(chuàng)建

15、mydbmydb數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),步驟如下步驟如下: (1)(1)啟動(dòng)企業(yè)管理器,連接服務(wù)器,展開(kāi)其樹(shù)形目錄,用鼠標(biāo)啟動(dòng)企業(yè)管理器,連接服務(wù)器,展開(kāi)其樹(shù)形目錄,用鼠標(biāo)右鍵單擊【數(shù)據(jù)庫(kù)】文件夾,在彈出的快捷菜單中,單擊右鍵單擊【數(shù)據(jù)庫(kù)】文件夾,在彈出的快捷菜單中,單擊【新建數(shù)據(jù)庫(kù)【新建數(shù)據(jù)庫(kù)】打開(kāi)圖】打開(kāi)圖5-25-2所的對(duì)話框。所的對(duì)話框。 (2)(2)在【數(shù)據(jù)庫(kù)屬性】對(duì)話框的【名稱】文本框內(nèi)輸入數(shù)據(jù)庫(kù)在【數(shù)據(jù)庫(kù)屬性】對(duì)話框的【名稱】文本框內(nèi)輸入數(shù)據(jù)庫(kù)名名( (邏輯名邏輯名) )。例如。例如MyDBMyDB,這個(gè)對(duì)話框自動(dòng)以該數(shù)據(jù)庫(kù)名命名,這個(gè)對(duì)話框自動(dòng)以該數(shù)據(jù)庫(kù)名命名,系統(tǒng)默認(rèn)用該數(shù)據(jù)庫(kù)名與系

16、統(tǒng)默認(rèn)用該數(shù)據(jù)庫(kù)名與“_data”_data”串的連接命名數(shù)據(jù)文件串的連接命名數(shù)據(jù)文件(見(jiàn)圖(見(jiàn)圖5-35-3),該數(shù)據(jù)庫(kù)名與),該數(shù)據(jù)庫(kù)名與“_log”_log”串的連接命名日志文串的連接命名日志文件(見(jiàn)圖件(見(jiàn)圖5-45-4)。這兩個(gè)不同選項(xiàng)卡界面內(nèi)的設(shè)置,分別為)。這兩個(gè)不同選項(xiàng)卡界面內(nèi)的設(shè)置,分別為數(shù)據(jù)主文件和日志文件的名稱、存儲(chǔ)位置、初始大小、所屬數(shù)據(jù)主文件和日志文件的名稱、存儲(chǔ)位置、初始大小、所屬文件組文件組( (默認(rèn)為主文件組默認(rèn)為主文件組 PRIMARY)PRIMARY)、文件是否自動(dòng)增長(zhǎng)、增、文件是否自動(dòng)增長(zhǎng)、增長(zhǎng)的方式和文件大小的限制等。長(zhǎng)的方式和文件大小的限制等。 (3)

17、(3)單擊【確定】按鈕,數(shù)據(jù)庫(kù)就創(chuàng)建好了,在默認(rèn)位置、采單擊【確定】按鈕,數(shù)據(jù)庫(kù)就創(chuàng)建好了,在默認(rèn)位置、采用默認(rèn)設(shè)置創(chuàng)建了一個(gè)名為用默認(rèn)設(shè)置創(chuàng)建了一個(gè)名為MyDBMyDB的數(shù)據(jù)庫(kù)。的數(shù)據(jù)庫(kù)。 圖5-2 數(shù)據(jù)庫(kù)屬性對(duì)話框 圖圖5-3 5-3 數(shù)據(jù)文件選項(xiàng)卡界面數(shù)據(jù)文件選項(xiàng)卡界面 圖5-4 事務(wù)日志文件選項(xiàng)卡界面v 使用使用Transact-SQLTransact-SQL命令創(chuàng)建數(shù)據(jù)庫(kù)命令創(chuàng)建數(shù)據(jù)庫(kù)CREATE DATABASECREATE DATABASE database_name database_name ON ON PRIMARYPRIMARY filespec ,n ,n ,F(xiàn)ILEG

18、ROUPFILEGROUP filegroup_name filespec filegroup_name ,. .n n LOG ON filespecLOG ON ,. .n n FOR LOAD | FOR ATTACH FOR LOAD | FOR ATTACH 其中,其中,filespec (文件格式)語(yǔ)法格式如下:(文件格式)語(yǔ)法格式如下: (NAME=logical_file_name,(NAME=logical_file_name, FILENAME= os_file_name FILENAME= os_file_name ,SIZE = sizeSIZE = size ,MAX

19、SIZE=max_size| UNLIMITEDMAXSIZE=max_size| UNLIMITED ,F(xiàn)ILEGROWTH=growth_increment)FILEGROWTH=growth_increment)圖圖5-5 5-5 創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)exampledblexampledbl 【例【例5-15-1】省略省略CREATE DATABASECREATE DATABASE命令中各選項(xiàng)創(chuàng)建一個(gè)命令中各選項(xiàng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)exampledblexampledbl。命令和執(zhí)行結(jié)果見(jiàn)圖。命令和執(zhí)行結(jié)果見(jiàn)圖5-55-5。 【例【例5-25-2】使用使用ONON和和LOGLOGONON

20、選項(xiàng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)選項(xiàng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)exampledb2exampledb2。 命令和執(zhí)行結(jié)果見(jiàn)圖命令和執(zhí)行結(jié)果見(jiàn)圖5-65-6。圖圖5-6 5-6 創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)exampledb2exampledb2 v 用向?qū)?chuàng)建數(shù)據(jù)庫(kù)用向?qū)?chuàng)建數(shù)據(jù)庫(kù) 使用向?qū)?chuàng)建數(shù)據(jù)庫(kù)是一種非常簡(jiǎn)單的方法。啟動(dòng)企業(yè)使用向?qū)?chuàng)建數(shù)據(jù)庫(kù)是一種非常簡(jiǎn)單的方法。啟動(dòng)企業(yè)管理器,在工具菜單中選擇向?qū)Ъ纯砂聪驅(qū)нM(jìn)行相應(yīng)的操作。管理器,在工具菜單中選擇向?qū)Ъ纯砂聪驅(qū)нM(jìn)行相應(yīng)的操作。修改數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù) 創(chuàng)建數(shù)據(jù)庫(kù)后,可能會(huì)由于某種原因需要對(duì)其進(jìn)行修改。創(chuàng)建數(shù)據(jù)庫(kù)后,可能會(huì)由于某種原因需要對(duì)其進(jìn)行修改。例如增加和刪除數(shù)據(jù)庫(kù)的文

21、件和文件組、修改文件和文件組例如增加和刪除數(shù)據(jù)庫(kù)的文件和文件組、修改文件和文件組的屬性。但只有的屬性。但只有sysadminsysadmin和和dbcreatordbcreator服務(wù)器角色成員和服務(wù)器角色成員和DBODBO才能修改數(shù)據(jù)庫(kù)。才能修改數(shù)據(jù)庫(kù)。v 使用企業(yè)管理器修改數(shù)據(jù)庫(kù)使用企業(yè)管理器修改數(shù)據(jù)庫(kù) 有兩種方法來(lái)修改:有兩種方法來(lái)修改:使用企業(yè)管理器修改數(shù)據(jù)庫(kù)使用企業(yè)管理器修改數(shù)據(jù)庫(kù)使用使用T-SQLT-SQL命令修改數(shù)據(jù)庫(kù)命令修改數(shù)據(jù)庫(kù)11v 使用企業(yè)管理器修改數(shù)據(jù)庫(kù)使用企業(yè)管理器修改數(shù)據(jù)庫(kù)步驟如下:步驟如下: (1)(1)啟動(dòng)企業(yè)管理器,連接服務(wù)器,展開(kāi)其樹(shù)形目錄,展開(kāi)啟動(dòng)企業(yè)管理

22、器,連接服務(wù)器,展開(kāi)其樹(shù)形目錄,展開(kāi)【數(shù)據(jù)庫(kù)】文件夾,用鼠標(biāo)右鍵單擊要修改的數(shù)據(jù)庫(kù)名,例【數(shù)據(jù)庫(kù)】文件夾,用鼠標(biāo)右鍵單擊要修改的數(shù)據(jù)庫(kù)名,例如如exampledb1exampledb1,在彈出的快捷菜單中,單擊【屬性】命令,在彈出的快捷菜單中,單擊【屬性】命令,則彈出如圖則彈出如圖5-75-7所示的對(duì)話框。所示的對(duì)話框。 (2)(2)在在exampledb1exampledb1屬性對(duì)話框【數(shù)據(jù)文件】選項(xiàng)卡畫(huà)面中,可屬性對(duì)話框【數(shù)據(jù)文件】選項(xiàng)卡畫(huà)面中,可以修改數(shù)據(jù)庫(kù)的主文件組和用戶定義文件組中各數(shù)據(jù)文件的以修改數(shù)據(jù)庫(kù)的主文件組和用戶定義文件組中各數(shù)據(jù)文件的信息,包括邏輯名、物理文件名、初始長(zhǎng)度、

23、所屬文件組及信息,包括邏輯名、物理文件名、初始長(zhǎng)度、所屬文件組及自動(dòng)增長(zhǎng)的限制等自動(dòng)增長(zhǎng)的限制等。 (3)(3)單擊【事務(wù)日志】選項(xiàng)卡,在這個(gè)選項(xiàng)卡畫(huà)面中,用戶可單擊【事務(wù)日志】選項(xiàng)卡,在這個(gè)選項(xiàng)卡畫(huà)面中,用戶可以修改數(shù)據(jù)庫(kù)的日志文件的信息,包括邏輯名、物理文件名、以修改數(shù)據(jù)庫(kù)的日志文件的信息,包括邏輯名、物理文件名、初始長(zhǎng)度及自動(dòng)增長(zhǎng)的限制等。初始長(zhǎng)度及自動(dòng)增長(zhǎng)的限制等。 (4)(4)單擊【文件組】、【選項(xiàng)】、【權(quán)限】等選項(xiàng)卡,可以修單擊【文件組】、【選項(xiàng)】、【權(quán)限】等選項(xiàng)卡,可以修改數(shù)據(jù)庫(kù)的文件組、數(shù)據(jù)庫(kù)選項(xiàng)、數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限等內(nèi)容。改數(shù)據(jù)庫(kù)的文件組、數(shù)據(jù)庫(kù)選項(xiàng)、數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限等內(nèi)容。圖圖5

24、-7 5-7 數(shù)據(jù)庫(kù)屬性對(duì)話框數(shù)據(jù)庫(kù)屬性對(duì)話框 v 使用使用TransactSQLTransactSQL命令修改數(shù)據(jù)庫(kù)命令修改數(shù)據(jù)庫(kù) ALTER DATABASEALTER DATABASE database database ADDADDFILEFILE,n)TOn)TOFILEGROUP FILEGROUP filegroup_namefilegroup_name ADD LOG FILEADD LOG FILEfilespec,nn REMOVE FILEREMOVE FILE logical_file_name logical_file_name | |ADD FILEGROUPADD

25、 FILEGROUP filegroup_name filegroup_name | |REMOVE FILEGROUPREMOVE FILEGROUP filegroup_name filegroup_name | |MODIFY FILEMODIFY FILE filespec | | M O D I F Y F I L E G R O U PM O D I F Y F I L E G R O U P f i l e g r o u p _ n a m e f i l e g r o u p _ n a m e filegroup_propertyfilegroup_property 其中

26、其中filespec 語(yǔ)法格式如下:語(yǔ)法格式如下: (NAME=logical_file_name(NAME=logical_file_name ,F(xiàn)ILENAME=os_file_nameFILENAME=os_file_name ,SIZE=sizeSIZE=size ,MAXSIZE=max_ MAXSIZE=max_ size UNLIMITED size UNLIMITED ,F(xiàn)ILEGROWTH= growth_increment)FILEGROWTH= growth_increment) 【例【例5-45-4】在在exampledblexampledbl數(shù)據(jù)庫(kù)中添加一個(gè)文件組數(shù)據(jù)

27、庫(kù)中添加一個(gè)文件組 exampledbl_groupexampledbl_group,命令行為:,命令行為: ALTER DATABASE exampledblALTER DATABASE exampledbl ADD FILEGROUP exampledbl_group ADD FILEGROUP exampledbl_group【例【例5-55-5】將一個(gè)新的數(shù)據(jù)文件將一個(gè)新的數(shù)據(jù)文件exampledbl_data2exampledbl_data2添加到添加到 exampledblexampledbl數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)的exampledbl_groupexampledbl_group文件組中,

28、命令行文件組中,命令行為為 ALTER DATABASE exampledb1ALTER DATABASE exampledb1 ADD FILE ( ADD FILE ( NAME= exampledbl_data2 NAME= exampledbl_data2, F I L E N A M E = c :F I L E N A M E = c : m s s q l 2 0 0 0m s s q l 2 0 0 0 exampledbl_data2.mdf)exampledbl_data2.mdf) TO FILEGROUP exampledbl_group TO FILEGROUP ex

29、ampledbl_group【例【例5-65-6】修改數(shù)據(jù)文件修改數(shù)據(jù)文件exampledb2exampledb2的初始長(zhǎng)度為的初始長(zhǎng)度為2MB(2MB(前面默認(rèn)前面默認(rèn)設(shè)置為設(shè)置為IMB)IMB),命令行為:,命令行為: ALTER DATABASE exampledbdb2ALTER DATABASE exampledbdb2 MODIFY FILE ( MODIFY FILE ( NAME=exampledb2 NAME=exampledb2, SIZE=2)SIZE=2)【例【例5-75-7】將一個(gè)新的日志文件將一個(gè)新的日志文件exampledbl_log2exampledbl_log

30、2添加到添加到exampledblexampledbl數(shù)據(jù)庫(kù)中,命令行為:數(shù)據(jù)庫(kù)中,命令行為: ALTER DATABASE exampledblALTER DATABASE exampledbl ADD LOG FILE ( ADD LOG FILE ( NAME= exampledbl_log2 NAME= exampledbl_log2, FILENAME=c:FILENAME=c:mssql2000 exampledbl_log2mssql2000 exampledbl_log21df1df ) )v 修改數(shù)據(jù)庫(kù)名修改數(shù)據(jù)庫(kù)名 系統(tǒng)存儲(chǔ)過(guò)程系統(tǒng)存儲(chǔ)過(guò)程sp_renamedbsp_ren

31、amedb( (在在mastermaster系統(tǒng)數(shù)據(jù)庫(kù)中系統(tǒng)數(shù)據(jù)庫(kù)中) )能夠能夠修改數(shù)據(jù)庫(kù)的名稱。修改數(shù)據(jù)庫(kù)的名稱。 在使用在使用sp_renamedbsp_renamedb修改數(shù)據(jù)庫(kù)名之前,必須將數(shù)據(jù)庫(kù)設(shè)修改數(shù)據(jù)庫(kù)名之前,必須將數(shù)據(jù)庫(kù)設(shè)置成單用戶模式。設(shè)置數(shù)據(jù)庫(kù)為單用戶模式,用戶可以在圖置成單用戶模式。設(shè)置數(shù)據(jù)庫(kù)為單用戶模式,用戶可以在圖5-75-7所示的數(shù)據(jù)庫(kù)屬性對(duì)話框中選擇【選項(xiàng)】,在彈出的對(duì)話所示的數(shù)據(jù)庫(kù)屬性對(duì)話框中選擇【選項(xiàng)】,在彈出的對(duì)話框中選擇【限制訪問(wèn)】,再選中該數(shù)據(jù)庫(kù)的【單用戶】選項(xiàng)??蛑羞x擇【限制訪問(wèn)】,再選中該數(shù)據(jù)庫(kù)的【單用戶】選項(xiàng)。用戶也可以使用系統(tǒng)存儲(chǔ)過(guò)程用戶也可以

32、使用系統(tǒng)存儲(chǔ)過(guò)程sp_dboptionsp_dboption( (在在mastermaster系統(tǒng)數(shù)系統(tǒng)數(shù)據(jù)庫(kù)中據(jù)庫(kù)中) )設(shè)置【單用戶】選項(xiàng)。設(shè)置【單用戶】選項(xiàng)。 下述命令行是將下述命令行是將exampledblexampledbl數(shù)據(jù)庫(kù)更名為數(shù)據(jù)庫(kù)更名為exampledbexampledb的完的完整過(guò)程整過(guò)程, ,用用sp_helpdbsp_helpdb來(lái)查看。見(jiàn)圖來(lái)查看。見(jiàn)圖5-85-8。 圖圖5-8 5-8 數(shù)據(jù)庫(kù)更名過(guò)程數(shù)據(jù)庫(kù)更名過(guò)程 刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)v 使用企業(yè)管理器刪除數(shù)據(jù)庫(kù)使用企業(yè)管理器刪除數(shù)據(jù)庫(kù) 使用企業(yè)管理器刪除數(shù)據(jù)庫(kù)非常簡(jiǎn)單,但每次只能刪除一使用企業(yè)管理器刪除數(shù)據(jù)庫(kù)非

33、常簡(jiǎn)單,但每次只能刪除一個(gè)數(shù)據(jù)庫(kù)。方法是啟動(dòng)企業(yè)管理器后,展開(kāi)【數(shù)據(jù)庫(kù)】文件個(gè)數(shù)據(jù)庫(kù)。方法是啟動(dòng)企業(yè)管理器后,展開(kāi)【數(shù)據(jù)庫(kù)】文件夾,單擊要?jiǎng)h除的數(shù)據(jù)庫(kù)后如夾,單擊要?jiǎng)h除的數(shù)據(jù)庫(kù)后如exampledb2exampledb2,用鼠標(biāo)右鍵單擊,用鼠標(biāo)右鍵單擊要?jiǎng)h除的數(shù)據(jù)庫(kù)名,從彈出的快捷菜單中單擊【刪除】命令,要?jiǎng)h除的數(shù)據(jù)庫(kù)名,從彈出的快捷菜單中單擊【刪除】命令,系統(tǒng)彈出警告對(duì)話框見(jiàn)圖系統(tǒng)彈出警告對(duì)話框見(jiàn)圖5-95-9,要求用戶確認(rèn)是否刪除該數(shù)據(jù),要求用戶確認(rèn)是否刪除該數(shù)據(jù)庫(kù),單擊【是】按鈕,就刪除了該數(shù)據(jù)庫(kù)。庫(kù),單擊【是】按鈕,就刪除了該數(shù)據(jù)庫(kù)。v 使用使用TransactSOLTransactS

34、OL命令刪除數(shù)據(jù)庫(kù)命令刪除數(shù)據(jù)庫(kù) DROP DATABASE database_name DROP DATABASE database_name ,nn database_name database_name指定要?jiǎng)h除的數(shù)據(jù)庫(kù),且一次可以刪除多指定要?jiǎng)h除的數(shù)據(jù)庫(kù),且一次可以刪除多個(gè)數(shù)據(jù)庫(kù)。但不要隨便刪除系統(tǒng)數(shù)據(jù)庫(kù),可能會(huì)造成個(gè)數(shù)據(jù)庫(kù)。但不要隨便刪除系統(tǒng)數(shù)據(jù)庫(kù),可能會(huì)造成SQL SQL ServerServer系統(tǒng)崩潰。系統(tǒng)崩潰。 【例【例5-85-8】刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)exampledb,exampledb2exampledb,exampledb2。 DROP DATABASE exampl

35、edb,exampledb2DROP DATABASE exampledb,exampledb2 圖5-9 刪除數(shù)據(jù)庫(kù)對(duì)話框 表和視圖的基本操作表和視圖的基本操作 基本知識(shí)基本知識(shí) SQL ServerSQL Server的一個(gè)數(shù)據(jù)庫(kù)中可以存儲(chǔ)的一個(gè)數(shù)據(jù)庫(kù)中可以存儲(chǔ)2020億個(gè)表,一個(gè)表億個(gè)表,一個(gè)表最多允許定義最多允許定義10241024個(gè)列。表的行數(shù)和總大小僅受可使用空間個(gè)列。表的行數(shù)和總大小僅受可使用空間的限制。表的每一列必須具有相同的數(shù)據(jù)類(lèi)型。的限制。表的每一列必須具有相同的數(shù)據(jù)類(lèi)型。v 命名表命名表 在一個(gè)數(shù)據(jù)庫(kù)中,允許多個(gè)用戶創(chuàng)建表。創(chuàng)建表的用戶在一個(gè)數(shù)據(jù)庫(kù)中,允許多個(gè)用戶創(chuàng)建表。

36、創(chuàng)建表的用戶稱為該表的所有者。因此,表的名稱應(yīng)該體現(xiàn)數(shù)據(jù)庫(kù)、用戶稱為該表的所有者。因此,表的名稱應(yīng)該體現(xiàn)數(shù)據(jù)庫(kù)、用戶和表名三方面的信息。格式如下:和表名三方面的信息。格式如下: database_name.owner.table_namedatabase_name.owner.table_namev 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 確定表的每列的數(shù)據(jù)類(lèi)型,是設(shè)計(jì)表的重要步驟。列的確定表的每列的數(shù)據(jù)類(lèi)型,是設(shè)計(jì)表的重要步驟。列的數(shù)據(jù)類(lèi)型就是定義該列所能存放的數(shù)據(jù)的值。數(shù)據(jù)類(lèi)型就是定義該列所能存放的數(shù)據(jù)的值。 SQL Server 2000SQL Server 2000的數(shù)據(jù)類(lèi)型很豐富,這里僅給出的數(shù)據(jù)類(lèi)型很豐

37、富,這里僅給出SQL SQL Server Server 常用的數(shù)據(jù)類(lèi)型。見(jiàn)常用的數(shù)據(jù)類(lèi)型。見(jiàn)表表5-45-4。 v 設(shè)計(jì)表設(shè)計(jì)表 在為一個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)表之前,應(yīng)該完成了需求分析,確定在為一個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)表之前,應(yīng)該完成了需求分析,確定了概念模型,將概念模型轉(zhuǎn)換為關(guān)系模型。關(guān)系模型中的每了概念模型,將概念模型轉(zhuǎn)換為關(guān)系模型。關(guān)系模型中的每一個(gè)關(guān)系對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一個(gè)表。一個(gè)關(guān)系對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一個(gè)表。 由第由第1 1章和第章和第2 2章對(duì)圖書(shū)管理系統(tǒng)的分析與設(shè)計(jì)知,若該章對(duì)圖書(shū)管理系統(tǒng)的分析與設(shè)計(jì)知,若該系統(tǒng)的數(shù)據(jù)庫(kù)為已創(chuàng)建的系統(tǒng)的數(shù)據(jù)庫(kù)為已創(chuàng)建的MyDbMyDb數(shù)據(jù)庫(kù),則需要為該數(shù)據(jù)庫(kù)創(chuàng)數(shù)據(jù)庫(kù),則需

38、要為該數(shù)據(jù)庫(kù)創(chuàng)建讀者信息表建讀者信息表(Readers)(Readers)、圖書(shū)信息表、圖書(shū)信息表(Books)(Books)、借閱信息表、借閱信息表(Borrowinf(Borrowinf) )、讀者類(lèi)型表(、讀者類(lèi)型表(typetype)。)。 創(chuàng)建表的過(guò)程創(chuàng)建表的過(guò)程, ,就是將一種具體的關(guān)系就是將一種具體的關(guān)系DBMSDBMS(例如(例如SQL SQL Server 2000Server 2000)作為工具,實(shí)現(xiàn)關(guān)系模型(邏輯模型)到物理)作為工具,實(shí)現(xiàn)關(guān)系模型(邏輯模型)到物理模型的轉(zhuǎn)換,即關(guān)系模型的物理實(shí)現(xiàn)。因此,以下稱關(guān)系為模型的轉(zhuǎn)換,即關(guān)系模型的物理實(shí)現(xiàn)。因此,以下稱關(guān)系為表,

39、稱元組為行(或記錄),稱屬性為列(或字段)表,稱元組為行(或記錄),稱屬性為列(或字段)。 設(shè)計(jì)表時(shí)需要確定如下內(nèi)容:設(shè)計(jì)表時(shí)需要確定如下內(nèi)容:1)1)表中需要的列以及每一列的類(lèi)型表中需要的列以及每一列的類(lèi)型( (必要時(shí)還要有長(zhǎng)度必要時(shí)還要有長(zhǎng)度) )。2)2)列是否可以為空。列是否可以為空。3)3)是否需要在列上使用約束、默認(rèn)值和規(guī)則。是否需要在列上使用約束、默認(rèn)值和規(guī)則。4)4)需要使用什么樣的索引。需要使用什么樣的索引。5)5)哪些列作為主鍵。哪些列作為主鍵。 表的設(shè)計(jì)要體現(xiàn)完整性約束的實(shí)現(xiàn)。實(shí)體完整性約束的體表的設(shè)計(jì)要體現(xiàn)完整性約束的實(shí)現(xiàn)。實(shí)體完整性約束的體現(xiàn)是主鍵約束,即主鍵的各列不

40、能為空,且主鍵作為行的惟現(xiàn)是主鍵約束,即主鍵的各列不能為空,且主鍵作為行的惟一標(biāo)識(shí);外鍵約束是參照完整性約束的體現(xiàn);默認(rèn)值和規(guī)則一標(biāo)識(shí);外鍵約束是參照完整性約束的體現(xiàn);默認(rèn)值和規(guī)則等是用戶定義的完整性約束的體現(xiàn)。等是用戶定義的完整性約束的體現(xiàn)。 下面對(duì)下面對(duì)SQL Server 2000 SQL Server 2000 中實(shí)現(xiàn)用戶定義完整性的方法予以中實(shí)現(xiàn)用戶定義完整性的方法予以介紹介紹: :。 檢查檢查 (CHECK)(CHECK) 檢查約束使用邏輯表達(dá)式來(lái)限制列上可以接受的數(shù)據(jù)。檢查約束使用邏輯表達(dá)式來(lái)限制列上可以接受的數(shù)據(jù)。比如,可以指定比如,可以指定BooksBooks表中的定價(jià)必須大

41、于零,這樣當(dāng)插表中的定價(jià)必須大于零,這樣當(dāng)插入表中的圖書(shū)記錄的定價(jià)為入表中的圖書(shū)記錄的定價(jià)為0 0或負(fù)數(shù)時(shí),插入操作不能成或負(fù)數(shù)時(shí),插入操作不能成功執(zhí)行,從而保證了表中數(shù)據(jù)的正確性。功執(zhí)行,從而保證了表中數(shù)據(jù)的正確性。 可以在一列上使用多個(gè)檢查約束,在表上建立的一個(gè)可以在一列上使用多個(gè)檢查約束,在表上建立的一個(gè)檢查約束也可以在多個(gè)列上使用。檢查約束也可以在多個(gè)列上使用。 默認(rèn)值默認(rèn)值(DEFAULT)(DEFAULT) 數(shù)據(jù)庫(kù)中每一行中的每一列都應(yīng)該有一個(gè)值,當(dāng)然這數(shù)據(jù)庫(kù)中每一行中的每一列都應(yīng)該有一個(gè)值,當(dāng)然這個(gè)值也可以是空值。但有時(shí)向一個(gè)表中添加數(shù)據(jù)個(gè)值也可以是空值。但有時(shí)向一個(gè)表中添加數(shù)據(jù)

42、( (添加一添加一行記錄行記錄) )時(shí),某列的值不能確定,或該列的值大量重復(fù)的時(shí),某列的值不能確定,或該列的值大量重復(fù)的取同一個(gè)值,這時(shí)可以將該列定義為允許接受空值或給取同一個(gè)值,這時(shí)可以將該列定義為允許接受空值或給該列定義一個(gè)默認(rèn)值。該列定義一個(gè)默認(rèn)值。 空值空值(NULL)(NULL) 空值空值(NULL)(NULL)意味著數(shù)據(jù)的值不確定。比如,意味著數(shù)據(jù)的值不確定。比如,BooksBooks表中某一行的表中某一行的“出版社出版社”列為空值,并不表列為空值,并不表示該書(shū)沒(méi)有出版社,而是表示目前還不知道它的示該書(shū)沒(méi)有出版社,而是表示目前還不知道它的出版社。出版社。 又如又如,表,表Books

43、Books中的書(shū)名列設(shè)置為不允許取空中的書(shū)名列設(shè)置為不允許取空值,則輸入數(shù)據(jù)時(shí),必須給該列指定非空值,否值,則輸入數(shù)據(jù)時(shí),必須給該列指定非空值,否則輸入失敗。則輸入失敗。 使用以上這些約束實(shí)施的完整性被稱為聲明型使用以上這些約束實(shí)施的完整性被稱為聲明型數(shù)據(jù)完整性,它們是作為表和列定義的一部分在數(shù)據(jù)完整性,它們是作為表和列定義的一部分在語(yǔ)法中實(shí)現(xiàn)的,可以在語(yǔ)法中實(shí)現(xiàn)的,可以在CREATE TABLECREATE TABLE語(yǔ)句或語(yǔ)句或ALTER ALTER TABLETABLE語(yǔ)句中定義或修改。語(yǔ)句中定義或修改。 創(chuàng)建表創(chuàng)建表v 使用企業(yè)管理器創(chuàng)建表使用企業(yè)管理器創(chuàng)建表 利用企業(yè)管理器提供的圖形

44、界面來(lái)創(chuàng)建表,步驟如下:利用企業(yè)管理器提供的圖形界面來(lái)創(chuàng)建表,步驟如下: (1)(1)在樹(shù)形目錄中展開(kāi)【服務(wù)器組】在樹(shù)形目錄中展開(kāi)【服務(wù)器組】【服務(wù)器】【服務(wù)器】【數(shù)據(jù)【數(shù)據(jù)庫(kù)庫(kù)】【MyDbMyDb】?!?。 (2)(2)選擇【表】,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇選擇【表】,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇【新建表【新建表.】命令,打開(kāi)設(shè)計(jì)表對(duì)話框?!棵睿蜷_(kāi)設(shè)計(jì)表對(duì)話框。 (3)(3)如圖如圖5-105-10所示,設(shè)計(jì)表對(duì)話框的上半部分有一個(gè)表格,所示,設(shè)計(jì)表對(duì)話框的上半部分有一個(gè)表格,在這個(gè)表格中輸入列的列名、數(shù)據(jù)類(lèi)型、長(zhǎng)度(有的數(shù)據(jù)在這個(gè)表格中輸入列的列名、數(shù)據(jù)類(lèi)型、長(zhǎng)度(有的

45、數(shù)據(jù)類(lèi)型不需要指定長(zhǎng)度,如類(lèi)型不需要指定長(zhǎng)度,如datetimedatetime類(lèi)型的長(zhǎng)度為固定值類(lèi)型的長(zhǎng)度為固定值8 8)、是否可以為空,在允許空域中單擊鼠標(biāo)左鍵,可以)、是否可以為空,在允許空域中單擊鼠標(biāo)左鍵,可以切換是否允許為空值的狀態(tài),打勾說(shuō)明允許為空值,空白切換是否允許為空值的狀態(tài),打勾說(shuō)明允許為空值,空白說(shuō)明不允許為空值,默認(rèn)狀態(tài)是允許為空值的。說(shuō)明不允許為空值,默認(rèn)狀態(tài)是允許為空值的。 (4) (4) 圖圖5-105-10所示的設(shè)計(jì)表對(duì)話框的下半部分是特定列的詳所示的設(shè)計(jì)表對(duì)話框的下半部分是特定列的詳細(xì)屬性,包括是否是標(biāo)識(shí)列、是否使用默認(rèn)值等。細(xì)屬性,包括是否是標(biāo)識(shí)列、是否使用默

46、認(rèn)值等。 (5) (5)用圖用圖5-105-10所示的方法逐個(gè)定義好表中的列。所示的方法逐個(gè)定義好表中的列。 (6)(6)設(shè)置主鍵約束:選中要作為主鍵的列,單擊工具條上的設(shè)置主鍵約束:選中要作為主鍵的列,單擊工具條上的【設(shè)置主鍵】按鈕,主鍵列的前上方將顯示鑰匙標(biāo)記,如圖【設(shè)置主鍵】按鈕,主鍵列的前上方將顯示鑰匙標(biāo)記,如圖5-115-11所示。所示。 (7)(7)鼠標(biāo)右鍵單擊表中的任意一行鼠標(biāo)右鍵單擊表中的任意一行( (即任意一個(gè)列的定義即任意一個(gè)列的定義) ),在,在彈出的快捷菜單中選擇【屬性】命令,可以打開(kāi)如圖彈出的快捷菜單中選擇【屬性】命令,可以打開(kāi)如圖5-125-12所所示的表屬性對(duì)話框

47、,在該對(duì)話框中選擇表選項(xiàng)卡,可以指定示的表屬性對(duì)話框,在該對(duì)話框中選擇表選項(xiàng)卡,可以指定表的屬性,比如表名、所有者、表的標(biāo)識(shí)列等。圖表的屬性,比如表名、所有者、表的標(biāo)識(shí)列等。圖5-125-12中將中將表的名稱設(shè)置為表的名稱設(shè)置為ReadersReaders, 所有者設(shè)置為所有者設(shè)置為dbodbo。 (8)(8)在屬性對(duì)話框中選擇【關(guān)系】選項(xiàng)卡,可以設(shè)置列上的外在屬性對(duì)話框中選擇【關(guān)系】選項(xiàng)卡,可以設(shè)置列上的外鍵約束。選擇【索引鍵約束。選擇【索引/ /鍵】選項(xiàng)卡,可以設(shè)置列上的索引,以鍵】選項(xiàng)卡,可以設(shè)置列上的索引,以及主鍵約束和惟一性約束。選擇【及主鍵約束和惟一性約束。選擇【checkchec

48、k約束】選項(xiàng)卡,可以約束】選項(xiàng)卡,可以設(shè)置列上的檢查約束。設(shè)置列上的檢查約束。 (9)(9)定義好所有列后,單擊圖定義好所有列后,單擊圖5-115-11工具欄上的工具欄上的 按鈕,表按鈕,表就創(chuàng)建完成了。就創(chuàng)建完成了。 圖圖5-10 5-10 創(chuàng)建表對(duì)話框創(chuàng)建表對(duì)話框 圖圖5-11 5-11 將編號(hào)設(shè)為主鍵將編號(hào)設(shè)為主鍵 圖圖5-12 5-12 指定表的屬性指定表的屬性 創(chuàng)建惟一性約束的步驟如下:創(chuàng)建惟一性約束的步驟如下: (1)(1)在如圖在如圖5-125-12所示的屬性對(duì)話框的【索引所示的屬性對(duì)話框的【索引/ /鍵】選項(xiàng)卡中,鍵】選項(xiàng)卡中,單擊【新建】按鈕。單擊【新建】按鈕。 (2)(2)

49、在列名列表中選擇要定義惟一性約束。在列名列表中選擇要定義惟一性約束。 (3)(3)選中【創(chuàng)建選中【創(chuàng)建UNIQUEUNIQUE】復(fù)選框,表示創(chuàng)建惟一性約束?!繌?fù)選框,表示創(chuàng)建惟一性約束。 (4)(4)在索引名框中輸入約束名,或接受默認(rèn)的名字。在索引名框中輸入約束名,或接受默認(rèn)的名字。 創(chuàng)建外鍵約束的步驟如下:創(chuàng)建外鍵約束的步驟如下: (1)(1)在圖在圖5-125-12所示的屬性對(duì)話框的【關(guān)系】選項(xiàng)卡中,單擊所示的屬性對(duì)話框的【關(guān)系】選項(xiàng)卡中,單擊【新建】按鈕。【新建】按鈕。 (2)(2)在【外鍵表】下拉列表框中選擇要定義外健約束的表,在【外鍵表】下拉列表框中選擇要定義外健約束的表,并在其下的

50、列表中選擇表中要定義外鍵約束的列。并在其下的列表中選擇表中要定義外鍵約束的列。 (3)(3)在【主鍵表】下拉列表框中選擇外鍵引用的表,并在其在【主鍵表】下拉列表框中選擇外鍵引用的表,并在其下的列表中選擇表中外鍵引用的列。下的列表中選擇表中外鍵引用的列。 (4)(4)在【關(guān)系名】框中輸入約束的名稱,或接受默認(rèn)的名稱。在【關(guān)系名】框中輸入約束的名稱,或接受默認(rèn)的名稱。 (5)(5)選擇【級(jí)聯(lián)更新相關(guān)的字段】復(fù)選框指定使用級(jí)聯(lián)修改。選擇【級(jí)聯(lián)更新相關(guān)的字段】復(fù)選框指定使用級(jí)聯(lián)修改。 (6)(6)選擇【級(jí)聯(lián)刪除相關(guān)的記錄】復(fù)選框指定使用級(jí)聯(lián)刪除。選擇【級(jí)聯(lián)刪除相關(guān)的記錄】復(fù)選框指定使用級(jí)聯(lián)刪除。 創(chuàng)建

51、檢查約束的步驟如下創(chuàng)建檢查約束的步驟如下: : (1) (1)在如圖在如圖5-125-12所示的屬性對(duì)話框的【所示的屬性對(duì)話框的【checkcheck約束】約束】選項(xiàng)卡中,單擊【新建】按鈕。選項(xiàng)卡中,單擊【新建】按鈕。 (2)(2)在【約束表達(dá)式】框中輸入檢查表達(dá)式。在【約束表達(dá)式】框中輸入檢查表達(dá)式。 (3)(3)在【約束名】框中輸入約束的名稱,或接受默在【約束名】框中輸入約束的名稱,或接受默認(rèn)的名稱。認(rèn)的名稱。v 使用使用Transact-SQLTransact-SQL命令創(chuàng)建表命令創(chuàng)建表 在在Transact-SQLTransact-SQL中,使用中,使用CREATE TABLECREA

52、TE TABLE命令創(chuàng)建表。語(yǔ)法命令創(chuàng)建表。語(yǔ)法格式如下:格式如下: CREATE TABLECREATE TABLE database_name.owner. |owner. Table_name database_name.owner. |owner. Table_name ( - ( -列定義列定義 |column_name AS computed_column_expression |column_name AS computed_column_expression - -計(jì)算列定義計(jì)算列定義 |table_contraint| , ,nn ) ) ON filegroup|DEFAU

53、LT ON filegroup|DEFAULT TEXTIMAGE_ON filegroup|DEFAULT TEXTIMAGE_ON filegroup|DEFAULT【例【例5-95-9】 創(chuàng)建圖書(shū)信息表創(chuàng)建圖書(shū)信息表BooksBooks。 CREATE TABLE booksCREATE TABLE books ( ( 編號(hào)編號(hào) char(15) PRIMARY KEY NOT NULL char(15) PRIMARY KEY NOT NULL CONTRAINT PK_Books PRIMARY KEY, CONTRAINT PK_Books PRIMARY KEY, 書(shū)名書(shū)名 va

54、rchar(42) NULL ,varchar(42) NULL , 作者作者 varchar(8) NULL ,varchar(8) NULL , 出版社出版社 varchar(28)NULL ,varchar(28)NULL , 定價(jià)定價(jià) real NULL CONTRAINT CK_Books CHECK(real NULL CONTRAINT CK_Books CHECK(定價(jià)定價(jià)0)0) ) )【例【例5-105-10】 創(chuàng)建圖書(shū)借閱信息表創(chuàng)建圖書(shū)借閱信息表BorrowinfBorrowinf。 CREATE TABLE borrowinfCREATE TABLE borrowinf

55、 ( ( 讀者編號(hào)讀者編號(hào) char(8) NOT NULL char(8) NOT NULL REFERENCE Readers( REFERENCE Readers(編號(hào)編號(hào)) ON DELETE CASCADE ,) ON DELETE CASCADE , 圖書(shū)編號(hào)圖書(shū)編號(hào)char (15) NOT NULLchar (15) NOT NULL FOREIGN KEY ( FOREIGN KEY (圖書(shū)編號(hào)圖書(shū)編號(hào)) ) REFERENCES Books( REFERENCES Books(編號(hào)編號(hào)) ON DELETE NO ACTION,) ON DELETE NO ACTION,

56、借期借期 datetime NULL DEFAULT (getdatedatetime NULL DEFAULT (getdate() ,() , 還期還期 datetimedatetime NULL NULL ) ) ON DELETE ON DELETE子句有兩個(gè)選項(xiàng)。子句有兩個(gè)選項(xiàng)。 NO ACTIONNO ACTION:被其他表外鍵引用的行不能被刪除,這是:被其他表外鍵引用的行不能被刪除,這是SQL SQL Server 7.0Server 7.0以前版本的做法。以前版本的做法。 CASCADE:CASCADE:被其他表外鍵引用的行可以被刪除,而且其他表被其他表外鍵引用的行可以被刪除,

57、而且其他表中通過(guò)外鍵引用了該行的行都將被刪除。中通過(guò)外鍵引用了該行的行都將被刪除。 【例【例5-115-11】 創(chuàng)建讀者信息表創(chuàng)建讀者信息表readersreaders。 CREATE TABLE readersCREATE TABLE readers ( ( 編號(hào)編號(hào)char (10) NOT NULL PRIMARY KEY,char (10) NOT NULL PRIMARY KEY, 姓名姓名char (8) NULL ,char (8) NULL , 讀者類(lèi)型讀者類(lèi)型 intint NULL , NULL , 限借閱數(shù)量限借閱數(shù)量 intint NULL NULL, 借閱期限借閱期限

58、 intint NULL NULL ) ) 修改表 可以使用可以使用ALTER TABLE ALTER TABLE 語(yǔ)句或企業(yè)管理器進(jìn)行表的修改。語(yǔ)句或企業(yè)管理器進(jìn)行表的修改。v ALTER TABLEALTER TABLE命令格式命令格式 ALTER TABLE ALTER TABLE table_name table_name ALTER COLUMN ALTER COLUMN column_namecolumn_name new_data_typenew_data_type(precisionprecision,scalescale)NULL|NOT NULL )NULL|NOT NUL

59、L | A D D | D R O P R O W G U I D C O L | A D D | D R O P R O W G U I D C O L | ADD | ADD | |column_name column_name AS AS computed_column_expressioncomputed_column_expression ,.,.n n | WITH CHECK | WITH NOCHECK | WITH CHECK | WITH NOCHECK | ADD | ADD ,.,.n n | DROP | DROP CONSTRAINTCONSTRAINTconstr

60、aint_nameconstraint_name | COLUMN | COLUMN column column ,. ,.n n | CHECK | NOCHECK CONSTRAINT| CHECK | NOCHECK CONSTRAINT ALL|ALL|constraint_nameconstraint_name,.,.n n v 修改列屬性修改列屬性 表中的每一列都有列名、數(shù)據(jù)類(lèi)型、數(shù)據(jù)長(zhǎng)度以及是否允表中的每一列都有列名、數(shù)據(jù)類(lèi)型、數(shù)據(jù)長(zhǎng)度以及是否允許為空值等屬性,這些屬性可以在表創(chuàng)建后修改。許為空值等屬性,這些屬性可以在表創(chuàng)建后修改。 修改列屬性使用子句修改列屬性使用子句ALTER

溫馨提示

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