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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、度)最多可以存儲的十進制數字的總位數,包括小數點左邊和右邊的位數。該精度必須是從 1 到最大精度 38 之間的值。默認精度為18。s(小數位數)小數點右邊可以存儲的十進制數字的最大位數。 money和smallmoney,兩者代表貨幣或貨幣值的數據類型。數據類型范圍分別為-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 數據類型精確到它們所代表的貨幣單位的萬分之一。4.1 SQL Server 表概述表概述 An Int

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

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

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

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

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

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

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

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

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

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

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

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

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

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

22、創(chuàng)建 An Introduction to Database Systems24/67圖4-4 保存“教師任課信息表” 4.2 數據表的創(chuàng)建數據表的創(chuàng)建 An Introduction to Database Systems25/67 4.2.2利用T-SQL語句創(chuàng)建數據表 SQL Server提供了CREATE TABLE語法創(chuàng)建表,相比使用SQL Server Management Studio建立表而言,這種方式更加靈活。CREATE TABLE語句的語法格式如下:4.2 數據表的創(chuàng)建數據表的創(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 數據表的創(chuàng)建數據表的創(chuàng)建 An Introduction to Database Systems27/67【例題4-3】用Transact-SQL語句創(chuàng)建“教師任課信息表”。 USE 教學管理數據庫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 教學管理數據庫 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數據庫允許將多個數據庫文件組成一個文件組進行整體管理,文件組能夠控制各個文件的存放位置,其中每個文件常建立在不同驅動器上,這樣可以減輕每個磁盤驅動器的存儲壓力,提高數據庫的存儲效率,從而達到提高系統(tǒng)性能的目的。 An Introduction to Database Systems30/67【例題4-5】創(chuàng)建具有約束規(guī)則和默認值字段的“教師基本信息表”數據表。 USE 教學管理數據庫 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】在“教學管理數據庫”中創(chuàng)建臨時表“students”。 USE 教學管理數據庫 CREATE TABLE #students ( 學號 NVARCHAR(10), 姓名

28、NVARCHAR(8), 性別 BIT, 班級 NVARCHAR(20) )An Introduction to Database Systems32/674.3 數據表的修改數據表的修改 4.3.1利用表設計器修改數據表 表的修改和表的創(chuàng)建一樣,可以通過SQL Server Management Studio中的表設計器對數據表進行修改。對已存在的表可以進行如下方式的修改: 1更改表名 2增加、刪除列 3修改已有列的屬性 An Introduction to Database Systems33/674.3.2利用T-SQL語句修改數據表 修改數據表的語法格式如下: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 數據表的修改數據表的修改 An Introduction to Database Systems34/67【例題4-9】修改“學生課程信息表”,在原有基礎上添加一個“授課地點”字段。 US

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

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

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

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

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

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

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

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

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

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

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

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

42、新建一個表,其中一列存放課程號,另一列存放相應的平均成績。 USE 教學管理數據庫 CREATE TABLE 課程平均成績 ( 課程號 nvarchar(3), 平均成績 float )An Introduction to Database Systems50/67(2)然后對學生成績表按“課程號”分組求平均成績,再把課程號和平均成績插入新表中。USE 教學管理數據庫INSERT INTO課程平均成績(課程號,平均成績)SELECT 課程號,AVG(成績)FROM 學生成績表GROUP BY 課程號An Introduction to Database Systems51/674.5.2修改表中的數據 1利用對象資源管理器修改表數據 利用對象資源管理器修改表數據,與插入表數據操作類似。 4.5 管理表中數據管理表中數據 An Introduction to Database Systems52/672利用T-SQL語句修改表數據修改表數據語法格式如下: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壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論