數(shù)據(jù)庫(kù)中表的基本操作.ppt_第1頁(yè)
數(shù)據(jù)庫(kù)中表的基本操作.ppt_第2頁(yè)
數(shù)據(jù)庫(kù)中表的基本操作.ppt_第3頁(yè)
數(shù)據(jù)庫(kù)中表的基本操作.ppt_第4頁(yè)
數(shù)據(jù)庫(kù)中表的基本操作.ppt_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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、第四章 數(shù)據(jù)庫(kù)中表的基本操作,4.1 SQL Server表概述,4.3 表結(jié)構(gòu)的修改,4.4 表的刪除,4.2 數(shù)據(jù)庫(kù)中表的創(chuàng)建,4.5 表中數(shù)據(jù)的添加,4.7 應(yīng)用舉例,4.6 數(shù)據(jù)庫(kù)中表的查看,第四章,目錄,表的概念 關(guān)系數(shù)據(jù)庫(kù)的理論基礎(chǔ)是關(guān)系模型,它直接描述數(shù)據(jù)庫(kù)中數(shù)據(jù)的邏 輯結(jié)構(gòu)。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是一種二維表格結(jié)構(gòu),在關(guān)系模型中現(xiàn)實(shí)世界的實(shí)體與實(shí)體之間的聯(lián)系均用二維表格來(lái)表示,在SQL Server數(shù)據(jù)庫(kù)中,表定義為列的集合,數(shù)據(jù)在表中是按行和列的格式組織排列的。每行代表唯一的一條記錄,而每列代表記錄中的一個(gè)域。 2 SQL Server表與關(guān)系模型的對(duì)應(yīng) SQL Server數(shù)據(jù)

2、庫(kù)中表的有關(guān)術(shù)語(yǔ)與關(guān)系模型中基本術(shù)語(yǔ) 之間的對(duì)應(yīng)關(guān)系如表4.2所示。 3表的設(shè)計(jì) 對(duì)于開發(fā)一個(gè)大型的管理信息系統(tǒng),必須按照數(shù)據(jù)庫(kù)設(shè)計(jì)理論與設(shè) 計(jì)規(guī)范對(duì)數(shù)據(jù)庫(kù)專門的設(shè)計(jì),這樣開發(fā)出來(lái)的管理信息系統(tǒng)才能既滿足用戶需求,又具有良好的可維護(hù)性與可擴(kuò)充性。,4.1.1 SQL Server表的概念,4.1 SQL Server表概述,第四章,4.1.2 SQL Server 2000數(shù)據(jù)類型,1. 二進(jìn)制數(shù)據(jù) 二進(jìn)制數(shù)據(jù)常用于存儲(chǔ)圖像等數(shù)據(jù),它包括二進(jìn)制數(shù)據(jù)binary、變長(zhǎng)二進(jìn)制數(shù)據(jù)類型varbinary和image3種 2. 字符型數(shù)據(jù)類型 字符型數(shù)據(jù)用于存儲(chǔ)漢字、英文字母、數(shù)字、標(biāo)點(diǎn)和各種符號(hào),輸

3、入時(shí)必須由英文單引號(hào)括起來(lái)。字符型數(shù)據(jù)有定長(zhǎng)字符串類型char、變長(zhǎng)字符串類型varchar和文本類型3種。 3. Unicode字符數(shù)據(jù) Unicode標(biāo)準(zhǔn)為全球商業(yè)領(lǐng)域中廣泛使用的大部分字符定義了一個(gè)單一編碼方案。所有的計(jì)算機(jī)都用單一的Unicode標(biāo)準(zhǔn),Unicode數(shù)據(jù)中的位模式一致地翻譯成字符,這保證了同一個(gè)位模式在所有的計(jì)算機(jī)上總是轉(zhuǎn)換成同一個(gè)字符。數(shù)據(jù)可以隨意地從一個(gè)數(shù)據(jù)庫(kù)或計(jì)算機(jī)傳送到另一個(gè)數(shù)據(jù)庫(kù)或計(jì)算機(jī),而不用擔(dān)心接收系統(tǒng)是否會(huì)錯(cuò)誤地翻譯位模式。Unicode字符數(shù)據(jù)有定長(zhǎng)字符型nchar、變長(zhǎng)字符型nvarchar和文本類型ntext3種。,第四章,4. 日期時(shí)間型數(shù)據(jù) 日

4、期時(shí)間型數(shù)據(jù)用于存儲(chǔ)日期和時(shí)間數(shù)據(jù),日期時(shí)間型數(shù)據(jù)類型包括datetime和smalldatetime。 5. 整數(shù)型數(shù)據(jù) 整數(shù)型數(shù)據(jù)用于存儲(chǔ)整數(shù),有biging,int,smallint和tinyint4種類型。 6. 精確數(shù)值型數(shù)據(jù) 精確數(shù)值型數(shù)據(jù)用于存儲(chǔ)帶有小數(shù)點(diǎn)且小數(shù)點(diǎn)后位數(shù)確定的實(shí)數(shù)。主要包括decimal和numeric兩種。 7. 近似數(shù)值數(shù)據(jù) 近似數(shù)值型數(shù)據(jù)用于存儲(chǔ)浮點(diǎn)數(shù),包括float和real兩種。 8. 貨幣數(shù)據(jù) 貨幣數(shù)據(jù)由十進(jìn)制貨幣的數(shù)值數(shù)據(jù)組成,貨幣數(shù)據(jù)有money和smallmoney兩種。 9. 位類型數(shù)據(jù) 位類型數(shù)據(jù)用于存儲(chǔ)整數(shù),只能取1,0或NULL,常用于邏

5、輯數(shù)據(jù)的存儲(chǔ)。在位類型的字段中輸入0和1之外的任何值,系統(tǒng)都會(huì)作為1來(lái)處理。如果一個(gè)表中有8個(gè)以下的位類型數(shù)據(jù)字段,則系統(tǒng)會(huì)用一個(gè)字節(jié)存儲(chǔ)這些字段,如果表中有9個(gè)以上16個(gè)以下位類型數(shù)據(jù)字段,則系統(tǒng)會(huì)用兩個(gè)字段來(lái)存儲(chǔ)這些字段。,第四章,在SQL Server中建立了數(shù)據(jù)庫(kù)之后,就可以在該數(shù)據(jù)庫(kù)中創(chuàng)建表了。創(chuàng)建表可以在企業(yè)管理器和在查詢分析器中使用T-SQL語(yǔ)言兩種方法進(jìn)行。不管哪種方法,都要求用戶具有創(chuàng)建表的權(quán)限,默認(rèn)情況下,系統(tǒng)管理員和數(shù)據(jù)庫(kù)的所有者具有創(chuàng)建表的權(quán)限。,4.2 數(shù)據(jù)庫(kù)中表的創(chuàng)建,4.2.1 使用企業(yè)管理器創(chuàng)建表,1 創(chuàng)建表的步驟 創(chuàng)建表一般要經(jīng)過(guò)定義表結(jié)構(gòu)、設(shè)置約束和添加數(shù)據(jù)

6、三步,其中設(shè)置約束可以在定義表結(jié)構(gòu)時(shí)或定義完成之后建立。 (1)定義表結(jié)構(gòu):給表的每一列取字段名,并確定每一列的數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度、列數(shù)據(jù)是否可以為空等。 (2)設(shè)置約束:設(shè)置約束是為了限制該列輸入值的取值范圍,以保證輸入數(shù)據(jù)的正確性和一致性。 (3)添加數(shù)據(jù):表結(jié)構(gòu)建立完成之后,應(yīng)該向表中輸入數(shù)據(jù)。,第四章,(1)打開企業(yè)管理器,展開控制臺(tái)根目錄,依次展開服務(wù)器組、服務(wù)器、數(shù)據(jù)庫(kù)節(jié)點(diǎn),選擇在其中建立表的數(shù)據(jù)庫(kù),這里我們選擇Student數(shù)據(jù)庫(kù),如圖4.1所示,用鼠標(biāo)右鍵單擊“表”圖標(biāo),在彈出的快捷菜單中選擇“新建表”命令,啟動(dòng)表設(shè)計(jì)器,如圖4.2所示。 (2)在表設(shè)計(jì)器窗口上部網(wǎng)格中,每一行

7、描述了表中一個(gè)字段,每行有四列,這四列分別描述了列名、數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度和允許空等屬性 (3)插入、刪除列。在定義表結(jié)構(gòu)時(shí),可以在某一字段的上邊插入一個(gè)新字段,也可以刪除一個(gè)字段。方法是,在表設(shè)計(jì)器窗口的上部網(wǎng)格中用鼠標(biāo)右鍵單擊該字段,在彈出的菜單中選擇“插入列”或“刪除列”,如圖4.3所示。 (4)保存表。單擊表設(shè)計(jì)器工具欄上的“保存”按鈕,出現(xiàn)保存對(duì)話框,如圖4.4所示,輸入“班級(jí)”并單擊“確定”按鈕,然后關(guān)閉表設(shè)計(jì)器完成表的定義。,2. 創(chuàng)建表(圖見(jiàn)教材),第四章,CREATE TABLE語(yǔ)句的語(yǔ)法 CREATE TABLE database_name.owner.table_name

8、( |column_name as computed_column_expression |:=CONSTRAINT constraint_name |PRIMARY KEY|UNIQUE,n ) ON filegroup|DEFAULTTEXTIMAGE_ONfilegroup|DEFAULT 其中的語(yǔ)法如下: :=column_name data_type NULL|NOT NULL DEFAULT constant_expression |IDENTITY(seed,increment)NOT FOR REPLICATION ROWGUIDCOLCOLLATE n,4.2.2 使用T-S

9、QL語(yǔ)句創(chuàng)建表,第四章,參數(shù)含義說(shuō)明: database_name:指定新建表所置于的數(shù)據(jù)庫(kù)名,若該名不指定就會(huì)置于當(dāng)前數(shù)據(jù)庫(kù)中。 owner:指定數(shù)據(jù)庫(kù)所有者的名稱,它必須是database_name所指定的數(shù)據(jù)庫(kù)中現(xiàn)有的用戶ID。 Table_name:指定新建表的名稱,需在一個(gè)數(shù)據(jù)庫(kù)中是唯一的,且遵循T-SQL語(yǔ)言中的標(biāo)識(shí)符規(guī)則,表名長(zhǎng)度不能超過(guò)128個(gè)字符,對(duì)于臨時(shí)表則表名長(zhǎng)度不能超過(guò)116個(gè)字符。 column_name:指定列的名稱,在表內(nèi)必須唯一。 computed_column_expression:指定該計(jì)算列定義的表達(dá)式。 ONfilegroup|DEFAULT:指定存儲(chǔ)新

10、建表的數(shù)據(jù)庫(kù)文件組名稱。如果使用了DEFAULT或省略了ON子句,則新建的表會(huì)存儲(chǔ)在數(shù)據(jù)庫(kù)的默認(rèn)文件組中。 TEXTIMAGE_ON:指定TEXT、NTEXT和IMAGE列的數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)文件組。若省略該子句,這些類型的數(shù)據(jù)就和表一起存儲(chǔ)在相同的文件組中。如果表中沒(méi)有TEXT、NTEXT和IMAGE列,則可以省略TEXTIMAGE_ON子句。 data_type:指定列的數(shù)據(jù)類型,可以是系統(tǒng)數(shù)據(jù)類型或者用戶自定義數(shù)據(jù)類型。 NULL|NOT NULL:說(shuō)明列值是否允許為NULL。在SQL Server中,NULL既不是0也不是空格,它意味著用戶還沒(méi)有為列輸入數(shù)據(jù)或是明確地插入了NULL。 I

11、DENTITY:指定列為一個(gè)標(biāo)識(shí)列,一個(gè)表中只能有一個(gè)IDENTITY標(biāo)識(shí)列。當(dāng)用戶向數(shù)據(jù)表中插入新數(shù)據(jù)行時(shí),系統(tǒng)將為該列賦予唯一的、遞增的值。IDENTITY列通常與PRIMARY KEY約束一起使用,該列值不能由用戶更新,不能為空值,也不能綁定默認(rèn)值和DEFAULT約束。 seed:指定IDENTITY列的初始值。默認(rèn)值為1。 increment:指定IDENTITY列的列值增量,默認(rèn)值為1。 NOT FOR REPLICATION:指定列的IDENTITY屬性,在把從其他表中復(fù)制的數(shù)據(jù)插入到表中時(shí)不發(fā)生作用。 FOWGUIDCOL:指定列為全局唯一標(biāo)識(shí)符列。此列的數(shù)據(jù)類型必須為UNIQU

12、EDENTIFIER類型,一個(gè)表中數(shù)據(jù)類型為UNIQUEDENTIFIER的列中只能有一個(gè)列被定義為FOWGUIDCOL列。FOWGUIDCOL屬性不會(huì)使列值具有唯一性,也不會(huì)自動(dòng)生成一個(gè)新的數(shù)值給插入的行。,第四章,2. CREATE TABLE語(yǔ)句的使用,圖4.5 用T-SQL語(yǔ)句創(chuàng)建系部表,第四章,4.3 表結(jié)構(gòu)的修改,4.3.1 使用企業(yè)管理器修改表結(jié)構(gòu) (1)打開企業(yè)管理器,展開“服務(wù)器組服務(wù)器數(shù)據(jù)庫(kù)”節(jié)點(diǎn),選擇相應(yīng)的數(shù)據(jù)庫(kù),展開表對(duì)象。 (2)在企業(yè)管理器的明細(xì)窗格中,用鼠標(biāo)右鍵單擊要修改的表,在彈出的快捷菜單中選擇“設(shè)計(jì)表”命令,打開表設(shè)計(jì)器。 (3)在表設(shè)計(jì)器中修改各字段的定義

13、,如字段名、字段類型、字段長(zhǎng)度、是否為空等。 (4)添加、刪除字段。如果要增加一個(gè)字段,將光標(biāo)移動(dòng)到最后一個(gè)字段的下邊,輸入新字段的定義即可。如果要在某一字段前插入一個(gè)字段,用鼠標(biāo)右鍵單擊該字段,在彈出的快捷菜單中選擇“插入列”命令。如果要?jiǎng)h除某列,用鼠標(biāo)右鍵單擊該列,在彈出的快捷菜單中選擇“刪除列”命令。,第四章,4.3.2 使用T-SQL語(yǔ)句修改表結(jié)構(gòu) 使用ALTER TABLE語(yǔ)句可以對(duì)表的結(jié)構(gòu)和約束進(jìn)行修改。ALTER TABLE語(yǔ)句的語(yǔ)法格式如下: ALTER TABLE table_name ALTER COLUMN column_name new_data_type (preci

14、sion,scale)collate NULL|NOT NULL|ADD|DROP ROWGUIDCOL |ADD |column_name AS computed_column_expression,n |WITH CHECK|WITH NOCHECKADD ,n |DROP CONSTRAINTconstraint_name|COLUMN column,n |CHECK|NOCHECKCONSTRAINT ALL|constraint_name,n |ENABLE|DISABLETRIGGERALL|trigger_name,n ,第四章,參數(shù)含義說(shuō)明: table_name:要更改的表的

15、名稱。若表不在當(dāng)前數(shù)據(jù)庫(kù)中或表不屬于當(dāng)前用戶,就必須指定其的列所屬的數(shù)據(jù)庫(kù)名稱和所有者名稱。 ALTER COLUMN:指定要更改的列。 new_data_type:指定新的數(shù)據(jù)類型名稱。 precision:指定新數(shù)據(jù)類型的精度。 scale:指定新數(shù)據(jù)類型的小數(shù)位數(shù)。 WITH CHECK|WITH NOCHECK:指定向表中添加新的或者打開原有的FOREIGN KEY約束或CHECK約束的時(shí)候,是否對(duì)表中已有的數(shù)據(jù)進(jìn)行約束驗(yàn)證。對(duì)于新添加的約束,系統(tǒng)默認(rèn)為WITH CHECK,WITH NOCHECK作為啟用舊約束的缺省選項(xiàng)。該參數(shù)對(duì)于主關(guān)鍵字約束和唯一性約束無(wú)效。 ADD|DROPRO

16、WGUIDCOL:添加或刪除列的ROWGUIDCOL屬性。ROWGUIDCOL屬性只能指定給一個(gè)UNIQUEIDENTIFIER列。 ADD:添加一個(gè)或多個(gè)列。 computed_column_expression:計(jì)算列的計(jì)算表達(dá)式。 DROPCONSTRAINTconstraint_name|COLUMN column_name:指定要?jiǎng)h除的約束或列的名稱。 CHECK|NOCHECKCONSTRAINT:?jiǎn)⒂没蚪媚臣s束,若設(shè)置ALL則啟用或禁用所有的約束。但該參數(shù)只適用于CHECK和FOREIGN KEY約束。 ENABLE|DISABLETRIGGER:?jiǎn)⒂没蚪糜|發(fā)器。當(dāng)一個(gè)觸發(fā)器

17、被禁用后,在表上執(zhí)行INSERT、UPDATE或者DELETE語(yǔ)句時(shí),觸發(fā)器將不起作用,但是它對(duì)表的定義依然存在。ALL選項(xiàng)啟用或禁用所有的觸發(fā)器。Trigger_name為指定觸發(fā)器名稱。,第四章,4.4 表的刪除,由于應(yīng)用的原因,有些表可能不需要了,對(duì)于不需要的表,可以將其刪除。一旦表被刪除,表的結(jié)構(gòu)、表中的數(shù)據(jù)、約束、索引等都將被永久地刪除。刪除表的操作可以通過(guò)企業(yè)管理器完成,也可以通過(guò)DROP TABLE語(yǔ)句完成。,4.4.1 使用企業(yè)管理器刪除表 【例4.7】在student數(shù)據(jù)庫(kù)中刪除“教師”表。 操作步驟如下: (1)打開企業(yè)管理器,展開“服務(wù)器組服務(wù)器數(shù)據(jù)庫(kù)”節(jié)點(diǎn),選擇相應(yīng)的數(shù)

18、據(jù)庫(kù)并展開其中的表結(jié)點(diǎn)。 (2)在企業(yè)管理器的明細(xì)窗格中,用鼠標(biāo)右鍵單擊要?jiǎng)h除的表,在彈出的快捷菜單中選擇“刪除”命令,出現(xiàn)如圖4.6所示的“除去對(duì)象”對(duì)話框,單擊“全部除去”按鈕可刪除表。,第四章,4.4.2 使用DROP TABLE語(yǔ)句刪除表 【例4.8】在student數(shù)據(jù)庫(kù)中刪除“系部”表。 在查詢窗口中輸入如下命令: USE student GO DROP TABLE系部 GO,圖4.6 “除去對(duì)象”對(duì)話框,第四章,4.5 表中數(shù)據(jù)的添加 4.5.1 使用企業(yè)管理器向表中添加數(shù)據(jù) (1)在企業(yè)管理器中,依次展開“服務(wù)器組服務(wù)器數(shù)據(jù)庫(kù)”節(jié)點(diǎn),選擇相應(yīng)的數(shù)據(jù)庫(kù)并展開其中的表結(jié)點(diǎn),在明細(xì)窗

19、格中用鼠標(biāo)右鍵單擊“系部”表,彈出如圖4.7所示的快捷菜單,單擊“打開表/返回所有行(A)”命令,就會(huì)打開查詢?cè)O(shè)計(jì)器的結(jié)果窗口,如圖4.8所示。 (2)輸入數(shù)據(jù)。在查詢?cè)O(shè)計(jì)器的表中可以輸入新記錄,也可以修改和刪除已經(jīng)輸入的記錄。將表4.8“系部”表中的數(shù)據(jù)輸入到“系部”表中,如圖4.8所示。,圖4.7 輸入數(shù)據(jù),圖4.8 查詢?cè)O(shè)計(jì)器的結(jié)果窗口,第四章,4.5.2 使用INSERT語(yǔ)句向表中添加數(shù)據(jù),【例4.10】使用INSERT語(yǔ)句向student數(shù)據(jù)庫(kù)的“系部”表中添加新記錄。 在查詢分析器的查詢窗口中輸入如下語(yǔ)句: USE student GO INSERT 系部 Values(03,數(shù)學(xué)

20、系,徐裕光) GO,在查詢分析器中,使用INSERT語(yǔ)句將一行新的記錄添加到一個(gè)已經(jīng)存在的表中。關(guān)于INSERT語(yǔ)句的詳細(xì)用法在第五章介紹。,第四章,4.6.1 查看表結(jié)構(gòu) 可以使用企業(yè)管理器和系統(tǒng)存儲(chǔ)過(guò)程查看表結(jié)構(gòu)。 (1)使用企業(yè)管理器查看。依次展開“服務(wù)器組服務(wù)器數(shù)據(jù)庫(kù)”節(jié)點(diǎn),選擇相應(yīng)的數(shù)據(jù)庫(kù)并展開其中的表結(jié)點(diǎn),在明細(xì)窗格中用鼠標(biāo)右鍵單擊表(如“系部”表),彈出如圖4.7所示的快捷菜單,選擇“屬性”命令,出現(xiàn)表屬性對(duì)話框,如圖4.10所示。單擊“常規(guī)”和“全文索引”標(biāo)簽查看表信息。 2)使用系統(tǒng)存儲(chǔ)過(guò)程sp_help查看。其語(yǔ)法格式為: EXECUTE sp_help 表名 例如,查看student數(shù)據(jù)庫(kù)中“專業(yè)”表的結(jié)構(gòu),使用下列語(yǔ)句: USE st

溫馨提示

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