第4章 數(shù)據(jù)表的管理_第1頁
第4章 數(shù)據(jù)表的管理_第2頁
第4章 數(shù)據(jù)表的管理_第3頁
第4章 數(shù)據(jù)表的管理_第4頁
第4章 數(shù)據(jù)表的管理_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、An Introduction to Database Systems1/80第第4章章 數(shù)據(jù)表的管理數(shù)據(jù)表的管理 4.1 SQL Server 表概述表概述 4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 4.3 數(shù)據(jù)表的修改數(shù)據(jù)表的修改 4.5 數(shù)據(jù)表的刪除數(shù)據(jù)表的刪除 4.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) 4.6 C# 操作數(shù)據(jù)表操作數(shù)據(jù)表 An Introduction to Database Systems2/674.1 SQL Server 表概述表概述 4.1.1 數(shù)據(jù)表的基本概念 數(shù)據(jù)庫是保存數(shù)據(jù)的集合,其目的在于存儲和返回數(shù)據(jù)。如果沒有數(shù)據(jù)庫的表所提供的結(jié)構(gòu),這些任務是不可能完成的。數(shù)據(jù)庫中包

2、含一個或多個表,表是數(shù)據(jù)庫的基本構(gòu)造塊。同時,表是數(shù)據(jù)的集合,是用來存儲數(shù)據(jù)和操作數(shù)據(jù)的邏輯結(jié)構(gòu)。表是由行和列所構(gòu)成,行被稱為記錄,是組織數(shù)據(jù)的單位;列被稱為字段,每一列表示記錄的一個屬性。在SQL Server 2008中,數(shù)據(jù)表分為普通表、分區(qū)表、臨時表和系統(tǒng)表四種,分別介紹如下。An Introduction to Database Systems3/674.1 SQL Server 表概述表概述 4.1.2數(shù)據(jù)類型 在數(shù)據(jù)表中的每一個數(shù)據(jù)列都會有特定的屬性,而這些屬性中最重要的就是數(shù)據(jù)類型(Data Type),數(shù)據(jù)類型是用來定義儲存在數(shù)據(jù)列中的數(shù)據(jù),其限制了一個列中可以存儲的數(shù)據(jù)的類

3、型,在某些情況下甚至限制了該列中的可能值的取值范圍。在SQL Server中,數(shù)據(jù)類型可以是系統(tǒng)提供的數(shù)據(jù)類型,也可以是用戶自定義的數(shù)據(jù)類型 An Introduction to Database Systems4/674.1 SQL Server 表概述表概述 1系統(tǒng)數(shù)據(jù)類型 SQL Server系統(tǒng)數(shù)據(jù)類型有7類,如表4.1所示。表 4.1 SQL Server系統(tǒng)數(shù)據(jù)類型 An Introduction to Database Systems5/67 4.1 SQL Server 表概述表概述 An Introduction to Database Systems6/67 在表中創(chuàng)建列時

4、,必須為其指定數(shù)據(jù)類型,列的數(shù)據(jù)類型決定了數(shù)據(jù)的取值、范圍和存儲格式。列的數(shù)據(jù)類型可以是SQL Server提供的系統(tǒng)數(shù)據(jù)類型,也可以是用戶定義數(shù)據(jù)類型。SQL Server 提供了豐富的系統(tǒng)數(shù)據(jù)類型,如表4.2所示 4.1 SQL Server 表概述表概述 An Introduction to Database Systems7/674.1 SQL Server 表概述表概述 An Introduction to Database Systems8/67簡要說明系統(tǒng)數(shù)據(jù)類型(1)整數(shù)型。整數(shù)型數(shù)據(jù)包括bigint ,int,smallint,tinyint和bit,它們的表示數(shù)據(jù)范圍依次逐

5、漸縮小。 bigint :大整數(shù),范圍為-263 (-9,223,372,036,854,775,808) 到 263-1 (9,223,372,036,854,775,807) ,精度為19,小數(shù)位數(shù)為0,長度為8字節(jié)。 int:整數(shù),范圍為:-231 (-2,147,483,648) 到 231-1 (2,147,483,647) ,精度為10,小數(shù)位數(shù)為0,長度為4字節(jié)。 smallint:短整數(shù),范圍為:-215 (-32,768) 到 215-1 (32,767) ,精度為5,小數(shù)位數(shù)為0,長度為2字節(jié)。 tinyint:微短整數(shù),范圍為:0到255,精度為3,小數(shù)位數(shù)為0,長度為1

6、字節(jié)。 bit:位型,相當于其他語言中的邏輯型數(shù)據(jù),長度為1字節(jié)。bit 可以取值為 1、0 或 NULL 的整數(shù)數(shù)據(jù)類型。字符串值 TRUE 和 FALSE 可以轉(zhuǎn)換為以下 bit 值:TRUE 轉(zhuǎn)換為 1,F(xiàn)ALSE 轉(zhuǎn)換為 0。 4.1 SQL Server 表概述表概述 An Introduction to Database Systems9/67(2)精確數(shù)值型。 decimal (p , s ) 和 numeric (p , s ) 兩者都是固定精度和小數(shù)位數(shù)。使用最大精度時,有效值從 - 1038 +1 到 1038 - 1。numeric 在功能上等價于 decimal。p(精

7、度)最多可以存儲的十進制數(shù)字的總位數(shù),包括小數(shù)點左邊和右邊的位數(shù)。該精度必須是從 1 到最大精度 38 之間的值。默認精度為18。s(小數(shù)位數(shù))小數(shù)點右邊可以存儲的十進制數(shù)字的最大位數(shù)。 money和smallmoney,兩者代表貨幣或貨幣值的數(shù)據(jù)類型。數(shù)據(jù)類型范圍分別為-922,337,203,685,477.5808到922,337,203,685,477.5807和-214,748.3648到 214,748.3647 ,存儲字節(jié)為8字節(jié)和4 字節(jié)。money 和 smallmoney 數(shù)據(jù)類型精確到它們所代表的貨幣單位的萬分之一。4.1 SQL Server 表概述表概述 An Int

8、roduction to Database Systems10/67(3)浮點型。float 和 real,兩者用于表示浮點數(shù)值數(shù)據(jù)的大致數(shù)值數(shù)據(jù)類型。浮點數(shù)據(jù)為近似值;因此,并非數(shù)據(jù)類型范圍內(nèi)的所有值都能精確地表示。 float ( n ) ,其中 n 為用于存儲 float 數(shù)值尾數(shù)的位數(shù),以科學記數(shù)法表示,因此可以確定精度和存儲大小。如果指定了 n,則它必須是介于 1 和 53 之間的某個值。n 的默認值為 53。float數(shù)據(jù)類型范圍為:-1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308 ,具體取決于 n 的值。floa

9、t 存儲長度為4字節(jié)。 real數(shù)據(jù)類型范圍為:-3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38 ,存儲精度為7位有效數(shù)字,存儲長度為4字節(jié)。4.1 SQL Server 表概述表概述 An Introduction to Database Systems11/67(4)日期和時間型。datetime 和 smalldatetime 兩者用于表示某天的日期和時間的數(shù)據(jù)類型。 datetime 類型可以表示的日期范圍從1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和時間數(shù)據(jù),精確度為3%s(3.33ms 或0.0

10、0333s)。datetime用兩個 4 字節(jié)的整數(shù)存儲,第一個 4 字節(jié)存儲“基礎日期”(即 1900 年 1 月 1 日)之前或之后的天數(shù)?;A日期是系統(tǒng)參照日期。另外一個 4 字節(jié)存儲天的時間 smalldatetime類型可以表示的日期范圍從 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和時間數(shù)據(jù),數(shù)據(jù)精確到分鐘。smalldatetime 數(shù)據(jù)類型存儲天的日期和時間,但精確度低于 datetime。數(shù)據(jù)庫引擎將smalldatetime值存儲為兩個2字節(jié)的整數(shù)。第一個2字節(jié)存儲1900年1月 1 日后的天數(shù)。另外一個 2 字節(jié)存儲午夜后經(jīng)過的分鐘數(shù)。4.1 SQ

11、L Server 表概述表概述 An Introduction to Database Systems12/67(5)字符串型。 char ( n ) 可以存儲字母數(shù)字值,固定長度,非 Unicode 字符數(shù)據(jù),長度為 n 個字節(jié)。n 的取值范圍為 1 至 8,000,存儲大小是 n 個字節(jié)。如果未在數(shù)據(jù)定義或變量聲明語句中指定 n,則默認長度為 1。如果在使用 CAST 和 CONVERT 函數(shù)時未指定 n,則默認長度為 30。 varchar ( n | max ) 可以存儲字母數(shù)字值,可變長度,非 Unicode 字符數(shù)據(jù)。n 的取值范圍為 1 至 8,000。max 指示最大存儲大小是

12、 231-1 個字節(jié)。存儲大小是輸入數(shù)據(jù)的實際長度加 2 個字節(jié)。所輸入數(shù)據(jù)的長度可以為 0 個字符。如果未在數(shù)據(jù)定義或變量聲明語句中指定 n,則默認長度為 1。如果在使用 CAST 和 CONVERT 函數(shù)時未指定 n,則默認長度為 30。 text服務器代碼頁中長度可變的非 Unicode 數(shù)據(jù),最大長度為 231-1 (2,147,483,647) 個字符。當服務器代碼頁使用雙字節(jié)字符時,存儲仍是 2,147,483,647 字節(jié)。根據(jù)字符串,存儲大小可能小于 2,147,483,647 字節(jié)。 4.1 SQL Server 表概述表概述 An Introduction to Datab

13、ase Systems13/67(6)Unicode字符串型 nchar ( n ) ,n 個字符的固定長度的 Unicode 字符數(shù)據(jù)。n 值必須在 1 到 4,000 之間(含)。存儲大小為兩倍 n 字節(jié)。如果沒有在數(shù)據(jù)定義或變量聲明語句中指定 n,則默認長度為 1。如果沒有使用 CAST 函數(shù)指定 n,則默認長度為 30。 nvarchar ( n | max ) ,可變長度 Unicode 字符數(shù)據(jù)。n 值在 1 到 4,000 之間(含)。max 指示最大存儲大小為 231-1 字節(jié)。存儲大小是所輸入字符個數(shù)的兩倍 + 2 個字節(jié)。所輸入數(shù)據(jù)的長度可以為 0 個字符。如果沒有在數(shù)據(jù)定

14、義或變量聲明語句中指定 n,則默認長度為 1。如果沒有使用 CAST 函數(shù)指定 n,則默認長度為 30。 ntext是長度可變的 Unicode 數(shù)據(jù),最大長度為 230 - 1 (1,073,741,823) 個字符。存儲大小是所輸入字符個數(shù)的兩倍(以字節(jié)為單位)。 4.1 SQL Server 表概述表概述 An Introduction to Database Systems14/67(7)二進制字符串型。 binary ( n ) ,是固定長度的 Binary 數(shù)據(jù)類型。長度為 n 字節(jié)的固定長度二進制數(shù)據(jù),其中 n 是從 1 到 8,000 的值。存儲大小為 n 字節(jié)。如果未在數(shù)據(jù)定

15、義或變量聲明語句中指定 n,則默認長度為 1。 varbinary ( n | max ) ,是可變長度的 Binary 數(shù)據(jù)類型。varbinary ( n | max ) 可變長度二進制數(shù)據(jù)。n 可以取從 1 到 8,000 的值。max 指示最大的存儲大小為 231-1 字節(jié)。存儲大小為所輸入數(shù)據(jù)的實際長度 + 2 個字節(jié)。所輸入數(shù)據(jù)的長度可以是 0 字節(jié)。如果未在數(shù)據(jù)定義或變量聲明語句中指定 n,則默認長度為 1。 image長度可變的二進制數(shù)據(jù),從 0 到 231-1 (2,147,483,647) 個字節(jié)。 4.1 SQL Server 表概述表概述 An Introduction

16、 to Database Systems15/67(8)時間戳型。若創(chuàng)建表時定義一個列的數(shù)據(jù)類型為時間戳類型,那么每當對該表加入新行或修改已有行時,都由系統(tǒng)將一個計數(shù)器值加到該列,即將原來的時間戳值加上一個增量。記錄timestamp列的值實際上反映了系統(tǒng)對該記錄修改的相對(相對于其他記錄)順序。一個表只能有一個timestamp列。Timestamp類型數(shù)據(jù)的值實際上是二進制格式數(shù)據(jù),其長度為8字節(jié)。 (9)其他數(shù)據(jù)類型。 4.1 SQL Server 表概述表概述 An Introduction to Database Systems16/67 2用戶自定義數(shù)據(jù)類型 在系統(tǒng)數(shù)據(jù)類型的基礎上

17、,用戶可以根據(jù)需要定制數(shù)據(jù),稱之為用戶自定義數(shù)據(jù)類型。當用戶自定義數(shù)據(jù)類型時,需要指定該類型的名稱、建立在其上的系統(tǒng)數(shù)據(jù)類型以及是否允許空值(NULL)等特性。這里的用戶自定義數(shù)據(jù)類型并不是指用戶真正創(chuàng)建了一個系統(tǒng)未有全新類型,而是相當于為某個系統(tǒng)數(shù)據(jù)類型起一個別名。 4.1 SQL Server 表概述表概述 An Introduction to Database Systems17/67(1)利用對象資源管理器創(chuàng)建用戶自定義數(shù)據(jù)類型 使用“Windows身份驗證”連接到數(shù)據(jù)庫實例。 展開需要創(chuàng)建用戶自定義數(shù)據(jù)類型的數(shù)據(jù)庫,選擇“可編程性”|“類型”,單擊鼠標右鍵,然后從彈出的快捷菜單中選擇

18、“新建”|“用戶定義數(shù)據(jù)類型”命令,打開“新建用戶定義數(shù)據(jù)類型”對話框,如圖4-1所示。 在“新建用戶定義數(shù)據(jù)類型”對話框中,可以定義類型的架構(gòu)、名稱、數(shù)據(jù)類型、精度、允許為空值等。 完成設置后,單擊“確定”按鈕,創(chuàng)建用戶自定義數(shù)據(jù)類型。4.1 SQL Server 表概述表概述 An Introduction to Database Systems18/67(2)T-SQL語句創(chuàng)建用戶自定義數(shù)據(jù)類型 使用CREATE TYPE來執(zhí)行創(chuàng)建用戶自定義數(shù)據(jù)類型的操作,其語法格式如下: CREATE TYPE type_name FROM base_type ( precision , scale

19、) NULL | NOT NULL ; 4.1 SQL Server 表概述表概述 An Introduction to Database Systems19/674.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 4.2.1利用表設計器創(chuàng)建數(shù)據(jù)表利用表設計器創(chuàng)建數(shù)據(jù)表 具體操作步驟如下:(1)打開SQL Server Management Studio窗口,打開“數(shù)據(jù)庫”文件夾。(2)在打開的“教學管理數(shù)據(jù)庫”文件夾中“表”選項上面右擊鼠標,選擇“新建表”命令,打開表設計窗口。(3)在“列名”欄中依次輸入表的字段名,并設置每個字段的數(shù)據(jù)類型和長度等屬性。輸入完成后的“教師任課信息表”如圖4-2所示。 An I

20、ntroduction to Database Systems20/67圖4-2 創(chuàng)建表 4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 An Introduction to Database Systems21/67(4)設置主鍵。例如“教師任課信息表”的主鍵應該為“序號”字段。在“序號”字段上右擊鼠標,然后選擇“設置主鍵”命令,即可將“序號”字段設置為主鍵。此時,該字段前面會出現(xiàn)一個鑰匙圖標,如圖4-3所示。讀者實際操作過程中,應養(yǎng)成為每個表創(chuàng)建主鍵的良好習慣。 注意:如果要將多個字段設置為主鍵,可按住Ctrl鍵,單擊每個字段前面的按鈕來選擇多個字段,然后再依照上述方法設置主鍵。4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)

21、表的創(chuàng)建 An Introduction to Database Systems22/67圖4-3 設置主鍵 4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 An Introduction to Database Systems23/67(5)由于“序號”列為自動編號,所以需要設置列屬性中的“標識規(guī)范”,將“是標識”設置為“是”(默認為“否”),“標識增量”保持不變(標識增量的含義為每次自動增長的步長大?。?,其他屬性保持默認。(6)表字段設置完成后,單擊工具欄上的“保存”按鈕,打開“選擇名稱”對話框,輸入“教師任課信息表”,如圖4-4所示。(7)單擊“確定”按鈕,即可創(chuàng)建該表。 4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的

22、創(chuàng)建 An Introduction to Database Systems24/67圖4-4 保存“教師任課信息表” 4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 An Introduction to Database Systems25/67 4.2.2利用T-SQL語句創(chuàng)建數(shù)據(jù)表 SQL Server提供了CREATE TABLE語法創(chuàng)建表,相比使用SQL Server Management Studio建立表而言,這種方式更加靈活。CREATE TABLE語句的語法格式如下:4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 An Introduction to Database Systems26/67CREAT

23、E TABLE database_name . schema_name . | schema_name . table_name ( /*列的定義*/| /*定義計算列,該列由同一表中的其他列通過表達式計 算得到*/ ,.n /*指定表的約束*/) ON filegroup |“default” /*指定存儲表的文件組*/ TEXTIMAGE_ON filegroup |“default” ; := column_name NULL | NOT NULL /*指定列名,類型*/ CONSTRAINT constraint_name DEFAULT constant_expression /*指

24、定列的約束*/ | IDENTITY ( seed ,increment ) NOT FOR REPLICATION /*指示新列是標識列*/ ROWGUIDCOL .n /*指示新列是全局標識符列*/4.2 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 An Introduction to Database Systems27/67【例題4-3】用Transact-SQL語句創(chuàng)建“教師任課信息表”。 USE 教學管理數(shù)據(jù)庫CREATE TABLE 教師任課信息表 (序號 INT IDENTITY(1,1) PRIMARY KEY,課程號 NVARCHAR(3) NOT NULL,職工號 NVARCHAR(10)

25、 NOT NULL )An Introduction to Database Systems28/67【例題4-4】創(chuàng)建“學生基本信息表”,并為表指定文件組。 USE 教學管理數(shù)據(jù)庫 CREATE TABLE 學生基本信息表 ( 學號 NVARCHAR(10) PRIMARY KEY, 姓名 NVARCHAR(8) NOT NULL, 性別 NVARCHAR(1) NOT NULL, 年齡 INT NOT NULL, 出生地點 NVARCHAR(20) , 專業(yè) NVARCHAR(20) ) ON PRIMARYAn Introduction to Database Systems29/67

26、ON PRIMARY表示表建立在主文件組上,如果沒有指定默認文件組,則主文件組就是默認文件組,ON PRIMARY也可以省略。SQL Server數(shù)據(jù)庫允許將多個數(shù)據(jù)庫文件組成一個文件組進行整體管理,文件組能夠控制各個文件的存放位置,其中每個文件常建立在不同驅(qū)動器上,這樣可以減輕每個磁盤驅(qū)動器的存儲壓力,提高數(shù)據(jù)庫的存儲效率,從而達到提高系統(tǒng)性能的目的。 An Introduction to Database Systems30/67【例題4-5】創(chuàng)建具有約束規(guī)則和默認值字段的“教師基本信息表”數(shù)據(jù)表。 USE 教學管理數(shù)據(jù)庫 CREATE TABLE 教師基本信息表 (職工號 NVARCHA

27、R(10) PRIMARY KEY,姓名 NVARCHAR(8) NOT NULL,性別 NVARCHAR(1) CHECK(性別 IN(男, 女) DEFAULT 男,年齡 INT NOT NULL,工作日期 DATETIME NOT NULL,職稱 NVARCHAR(10),電子信箱 NVARCHAR(50),婚姻狀況 BIT )An Introduction to Database Systems31/67【例題4-6】在“教學管理數(shù)據(jù)庫”中創(chuàng)建臨時表“students”。 USE 教學管理數(shù)據(jù)庫 CREATE TABLE #students ( 學號 NVARCHAR(10), 姓名

28、NVARCHAR(8), 性別 BIT, 班級 NVARCHAR(20) )An Introduction to Database Systems32/674.3 數(shù)據(jù)表的修改數(shù)據(jù)表的修改 4.3.1利用表設計器修改數(shù)據(jù)表 表的修改和表的創(chuàng)建一樣,可以通過SQL Server Management Studio中的表設計器對數(shù)據(jù)表進行修改。對已存在的表可以進行如下方式的修改: 1更改表名 2增加、刪除列 3修改已有列的屬性 An Introduction to Database Systems33/674.3.2利用T-SQL語句修改數(shù)據(jù)表 修改數(shù)據(jù)表的語法格式如下:ALTER TABLE t

29、able_name ALTER COLUMN column_name /*修改已有列的屬 性*/ new data type ( precision ,scale ) NULL | NOT NULL /*表示指定字段是否允許為空值*/| ADD /*增加新列*/ ,n | DROP /* 刪除列*/ CONSTRAINT constraint_name | COLUMN column_name ,n 4.3 數(shù)據(jù)表的修改數(shù)據(jù)表的修改 An Introduction to Database Systems34/67【例題4-9】修改“學生課程信息表”,在原有基礎上添加一個“授課地點”字段。 US

30、E 教學管理數(shù)據(jù)庫 ALTER TABLE 學生課程信息表 ADD 授課地點 varchar(20) NULL 代碼執(zhí)行以后,在“學生課程信息表”中成功添加一個“授課地點”字段。在SQL Server Management Studio中查看“學生課程信息表”的結(jié)構(gòu),如圖4-10所示。 An Introduction to Database Systems35/67圖4-10 添加到數(shù)據(jù)表結(jié)構(gòu)中的新字段 4.3 數(shù)據(jù)表的修改數(shù)據(jù)表的修改 An Introduction to Database Systems36/67【例題4-10】刪除“學生課程信息表”中的“授課地點”字段。 USE 教學管理

31、數(shù)據(jù)庫 ALTER TABLE 學生課程信息表 DROP COLUMN 授課地點 注意:在刪除一個字段之前,必須先刪除基于該字段的所有索引和約束。數(shù)據(jù)表中的字段被刪除后,將不能再恢復。因此,在刪除數(shù)據(jù)表中的字段時一定要慎重。 An Introduction to Database Systems37/67【例題4-11】將“學生課程信息表”的列“課程名稱”改為nvarchar(50)數(shù)據(jù)類型,并且不允許為空。 USE 教學管理數(shù)據(jù)庫 ALTER TABLE 學生課程信息表 ALTER COLUMN 課程名稱 nvarchar(50) NOT NULL An Introduction to Da

32、tabase Systems38/674.4 數(shù)據(jù)表的刪除數(shù)據(jù)表的刪除 4.4.1利用對象資源管理器刪除數(shù)據(jù)表利用對象資源管理器刪除數(shù)據(jù)表具體操作步驟如下:(1)啟動SQL Server Management Studio。(2)展開SQL Server實例,選擇“教學管理數(shù)據(jù)庫”,打開“表”對話框,右擊“教師基本信息表”,在彈出的快捷菜單中選擇“刪除”命令。 (3)在“刪除對象”對話框中,顯示出刪除對象的屬性信息,單擊“確定”按鈕。則選中的數(shù)據(jù)表將被刪除。 An Introduction to Database Systems39/674.4.2利用T-SQL語句刪除數(shù)據(jù)表 刪除數(shù)據(jù)表的語法

33、格式如下:DROP TABLE table_name ,n 其中,table_name為所要刪除的表的名稱。 【例題4-12】刪除學生成績表。 USE 教學管理數(shù)據(jù)庫 DROP TABLE 學生成績表 注意:由于系統(tǒng)表保存著數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)表字段和屬性等重要信息,因此刪除表只能夠刪除用戶表,不能夠刪除系統(tǒng)表。刪除表一旦操作完成,表中數(shù)據(jù)也一并被刪除,而且是無法恢復的。 4.4 數(shù)據(jù)表的刪除數(shù)據(jù)表的刪除 An Introduction to Database Systems40/674.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) 創(chuàng)建表的目的在于利用表進行數(shù)據(jù)的存儲和管理。對數(shù)據(jù)進行管理的前提是數(shù)據(jù)的存儲

34、,即向表中添加數(shù)據(jù),沒有數(shù)據(jù)的表是沒有任何實際意義的;添加完成后,用戶也可以根據(jù)自己的需要對表中數(shù)據(jù)進行修改和刪除。An Introduction to Database Systems41/674.5.1向表中插入數(shù)據(jù) 1利用對象資源管理器插入表數(shù)據(jù)(1) 啟動SQL Server Management Studio。(2) 展開SQL Server實例,選擇“表”(這里以“學生課程信息表”為例),單擊鼠標右鍵,然后從彈出的快捷菜單中選擇“編輯前200行”命令。(3) 此時將顯示向數(shù)據(jù)表中插入數(shù)據(jù)記錄的數(shù)據(jù)編輯窗口。在該編輯窗口的編輯行中可以輸入數(shù)據(jù)信息 注意:在數(shù)據(jù)編輯窗口中編輯數(shù)據(jù)信息時

35、,SQL Server會自動增加一個空行。在插入點沒有離開本行的情況下,可以通過按Esc鍵取消插入數(shù)據(jù)的操作。 4.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) An Introduction to Database Systems42/674.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) 2利用T-SQL語句插入表數(shù)據(jù) 對表數(shù)據(jù)的插入還可以通過T-SQL語句來進行,與界面操作表數(shù)據(jù)相比,通過T-SQL語句操作表數(shù)據(jù)更為靈活,功能更為強大 An Introduction to Database Systems43/67插入數(shù)據(jù)語法格式如下 INSERT INTO table_name | view_name /*表名或視圖名

36、*/ ( column_list ) /*列表*/ VALUES /*指定列值的子句*/ ( DEFAULT|NULL|expression,n ) /*列值的構(gòu)成形式*/ | derived_table /*結(jié)果集*/ | execute_statement /*有效的execute語句*/ | DEFAULT VALUES /*所有列均取默認值*/4.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) An Introduction to Database Systems44/67參數(shù)說明如下(1)view_name:視圖名。該視圖必須是可以更新的。(2)column_list:列表。該列表包含了新插入數(shù)據(jù)行的

37、各列的名稱。如果只對表的部分列插入數(shù)據(jù)時,需要用column_list指出這些列。當加入到表中的記錄的某些列為空值或為默認值時,可以在INSERT語句中給出列表的省略。沒有在column_list中指出的列值,系統(tǒng)根據(jù)默認值或列屬性自動確定。 具有IDENTITY屬性的列,其值由系統(tǒng)根據(jù)seed和increment值自動計算得到; 具有默認值的列,其值為默認值; 沒有默認值的列,若允許為空值,則其值為空值;若不允許為空值,則提示出錯。4.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) An Introduction to Database Systems45/67(3)VALUES子句:為column_list

38、列表中的各列指定值。若省略column_list,則VALUES子句給出每一列的值。VALUES子句中的值可以有以下三種。 DEFAULT:指定為該列的默認值。這要求定義表時必須指定該列的默認值; NULL:指定該列為空值; expression:可以是一個常量、變量或一個表達式,其值的數(shù)據(jù)類型要與列的數(shù)據(jù)類型一致。(4)derived_table:是一個由SELECT語句查詢所得到的結(jié)果集。利用該參數(shù),可以把一個表中的部分數(shù)據(jù)插入到另一個表中。(5)DEFAULT VALUES:說明向當前表中所有列均插入其默認值。此時,要求所有列均定義了默認值。4.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) An Int

39、roduction to Database Systems46/67【例題4-13】將一個新學生信息(學號:D01;姓名:張梅;性別:女;年齡:18;出生地點:河南鄭州;專業(yè):信息管理)插入到“學生基本信息表”中。 USE 教學管理數(shù)據(jù)庫 INSERT INTO 學生基本信息表(學號,姓名,性別,年齡,出生地點,專業(yè)) VALUES(D01,張梅,女,18,河南鄭州,信息管理) 在INTO子句中指出了新增加的元組在哪些屬性上要賦值,屬性的順序可以與CREATE TABLE中的順序不一樣 。An Introduction to Database Systems47/67【例題4-14】將新學生信

40、息(學號:D02;姓名:黃小鳴;性別:男;年齡:20;出生地點:山東青島;專業(yè):信息管理)插入到“學生基本信息表”中。USE 教學管理數(shù)據(jù)庫INSERT INTO 學生基本信息表VALUES(D02,黃小鳴,男,20,山東青島,信息管理) 與例4-13不同的是在INTO子句中只指出了表名,并沒有指出列表名(屬性名),這表示新插入的元組要在表的所有列表上都指定值,列表的次序與CREATE TABLE中的次序相同。An Introduction to Database Systems48/67【例題4-15】插入一條張梅的選課記錄(D01, 101) USE 教學管理數(shù)據(jù)庫 INSERT INTO

41、 學生成績表(學號,課程號) VALUES(D01,101)SQL Server 將在新插入記錄的“成績”列上自動賦空值。由于“學生成績表”中的“序號”列具有自動增長屬性,所以在插入數(shù)據(jù)時不需要賦值。還可以寫成如下形式: USE 教學管理數(shù)據(jù)庫 INSERT INTO 學生成績表 VALUES(D01,101,NULL) 因為沒有指出“學生成績表”的列表名,所以插入數(shù)據(jù)時在“成績”列上要明確給出空值。 An Introduction to Database Systems49/67【例題4-16】插入子查詢的結(jié)果。求學生選修課程的平均成績,并存入數(shù)據(jù)庫中。結(jié)果如圖4-16所示。(1)在數(shù)據(jù)庫中

42、新建一個表,其中一列存放課程號,另一列存放相應的平均成績。 USE 教學管理數(shù)據(jù)庫 CREATE TABLE 課程平均成績 ( 課程號 nvarchar(3), 平均成績 float )An Introduction to Database Systems50/67(2)然后對學生成績表按“課程號”分組求平均成績,再把課程號和平均成績插入新表中。USE 教學管理數(shù)據(jù)庫INSERT INTO課程平均成績(課程號,平均成績)SELECT 課程號,AVG(成績)FROM 學生成績表GROUP BY 課程號An Introduction to Database Systems51/674.5.2修改表中的數(shù)據(jù) 1利用對象資源管理器修改表數(shù)據(jù) 利用對象資源管理器修改表數(shù)據(jù),與插入表數(shù)據(jù)操作類似。 4.5 管理表中數(shù)據(jù)管理表中數(shù)據(jù) An Introduction to Database Systems52/672利用T-SQL語句修改表數(shù)據(jù)修改表數(shù)據(jù)語法格式如下:UPDATE table_name|view_name SET /*賦予新值*/ column_name=expression|DEFAULT|NULL /*為列重新指定值*/ |

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論