《SQL Server數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第1頁
《SQL Server數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第2頁
《SQL Server數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第3頁
《SQL Server數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第4頁
《SQL Server數(shù)據(jù)庫應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

任務(wù):了解SQLServer2005支持的數(shù)據(jù)類型,創(chuàng)建自定義數(shù)據(jù)類型。設(shè)計JXGL數(shù)據(jù)庫表結(jié)構(gòu),應(yīng)用SSMS和T-SQL語言兩種方法,創(chuàng)建、修改JXGL數(shù)據(jù)庫中的表,向表中輸入數(shù)據(jù),對表中數(shù)據(jù)進(jìn)行簡單管理。3.1T-SQL語言的數(shù)據(jù)類型3.2設(shè)計“高職院校教學(xué)管理系統(tǒng)”中表的結(jié)構(gòu)3.3創(chuàng)建表3.4管理表3.5操作表中的數(shù)據(jù)3.6知識進(jìn)階任務(wù)三向數(shù)據(jù)庫輸入數(shù)據(jù)

—創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表了解T-SQL語言支持的基本數(shù)據(jù)類型創(chuàng)建用戶自定義數(shù)據(jù)類型使用SSMS創(chuàng)建、修改JXGL數(shù)據(jù)庫表使用CREATETABLE語句創(chuàng)建數(shù)據(jù)庫表,使用ALTERTABLE語句修改數(shù)據(jù)庫表使用SSMS向JXGL數(shù)據(jù)庫輸入新數(shù)據(jù),刪除、更新已有數(shù)據(jù)使用T-SQL語言向JXGL數(shù)據(jù)庫輸入新數(shù)據(jù),刪除、更新已有數(shù)據(jù)本章學(xué)習(xí)目標(biāo)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.1T-SQL語言的數(shù)據(jù)類型任務(wù):了解T-SQL語言支持的基本數(shù)據(jù)類型,掌握用戶自定義數(shù)據(jù)類型的方法。3.1T-SQL語言的數(shù)據(jù)類型SQL語言提供了25種系統(tǒng)數(shù)據(jù)類型,還支持用戶根據(jù)需要創(chuàng)建基于系統(tǒng)數(shù)據(jù)類型的自定義數(shù)據(jù)類型,這些數(shù)據(jù)類型T-SQL可用。1.系統(tǒng)數(shù)據(jù)類型

SQLServer2005中的系統(tǒng)數(shù)據(jù)類型歸納為下列類別:精確數(shù)值、近似數(shù)值、日期時間、貨幣、字符串、Unicode字符串、二進(jìn)制字符串和其他數(shù)據(jù)類型,如教材表3-1“SQLServer2005系統(tǒng)數(shù)據(jù)類型”所示。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表2.使用系統(tǒng)數(shù)據(jù)類型應(yīng)注意的問題精確整數(shù)型數(shù)據(jù)bit型數(shù)據(jù)當(dāng)列為8bit或更少時,以1個字節(jié)存儲;為9~16bit時,以2個字節(jié)存儲。貨幣型數(shù)據(jù)money型以2個4字節(jié)存儲,精確到萬分之一。smallmoney型數(shù)據(jù)以2個2字節(jié)存儲,精確到萬分之一。精確小數(shù)型數(shù)據(jù)decimal和numeric在表示數(shù)據(jù)精度方面沒有區(qū)別,但只有numeric數(shù)據(jù)類型才可作為主鍵列。近似數(shù)值型數(shù)據(jù)該類型用于存儲小數(shù)點(diǎn)不固定的數(shù)值,一般不用于存儲貨幣。3.1T-SQL語言的數(shù)據(jù)類型創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表日期/時間型數(shù)據(jù)datetime型以8字節(jié)存儲,精確到百分之三秒或3.33毫秒;smalldatetime型使用4字節(jié)存儲,精確到分鐘。字符型數(shù)據(jù)char型字符串在輸入長度大于定義長度時,會被截斷;而小于定義長度時,會以空格填充。varchar和text型的存儲空間會根據(jù)實(shí)際字符串長度而變化。Unicode字符型數(shù)據(jù)Unicode統(tǒng)一字符編碼標(biāo)準(zhǔn)用于支持英語語種的字符數(shù)據(jù)。用兩個字節(jié)存儲一個字符。輸入該類型數(shù)據(jù)時需在字符前加前導(dǎo)標(biāo)識符N,但表中不會存儲該標(biāo)識符。二進(jìn)制型數(shù)據(jù)SQLServer2005采用十六進(jìn)制存儲二進(jìn)制數(shù)據(jù)。3.1T-SQL語言的數(shù)據(jù)類型創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.使用SSMS創(chuàng)建用戶自定義數(shù)據(jù)類型(操作步驟省略)4.使用T-SQL創(chuàng)建用戶自定義數(shù)據(jù)類型(1)使用系統(tǒng)存儲過程sp_droptype可以刪除用戶自定義的數(shù)據(jù)類型。代碼如下:

USEJXGLGOsp_droptypepostcodeGO3.1T-SQL語言的數(shù)據(jù)類型執(zhí)行該代碼,將把用戶自定義數(shù)據(jù)類型postcode從“用戶定義數(shù)據(jù)類型”列表中刪除創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(2)使用系統(tǒng)存儲過程sp_addtype可以創(chuàng)建用戶自定義數(shù)據(jù)類型。基本語法如下:

sp_addtype[@typ_ename=]type,[@phystype=]system_data_type[,[@nulltype=]'null_type']【例3-1】使用sp_addtype在JXGL中創(chuàng)建一個名為code的自定義數(shù)據(jù)類型。

USEJXGLGOsp_addtypecode,'char(6)','NULL'GO3.1T-SQL語言的數(shù)據(jù)類型其中:

type_name:用戶定義數(shù)據(jù)類型的名稱。

@phystype:用戶定義數(shù)據(jù)類型所基于的系統(tǒng)數(shù)據(jù)類型名稱,包括其長度、精度、小數(shù)位數(shù)。

@nulltype:是否允許為空值。值為'NULL'或'NOTNULL',默認(rèn)值為'NOTNULL'。

提示:只能刪除還沒有被用戶綁定的用戶定義數(shù)據(jù)類型。或者說,不能刪除正在被表或其他數(shù)據(jù)庫對象使用的用戶定義數(shù)據(jù)類型。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表任務(wù):規(guī)范存儲數(shù)據(jù)的數(shù)據(jù)庫環(huán)境,設(shè)計JXGL數(shù)據(jù)庫中表的結(jié)構(gòu)。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.2設(shè)計“高職院校教學(xué)管理系統(tǒng)”中表的結(jié)構(gòu)創(chuàng)建用戶數(shù)據(jù)庫后,還無法將數(shù)據(jù)保存在數(shù)據(jù)庫中,即此時的數(shù)據(jù)庫是一個空庫。必須在數(shù)據(jù)庫中創(chuàng)建用來存放數(shù)據(jù)的“容器”,這個“容器”就是表。表是數(shù)據(jù)庫中最重要的對象,是用來存儲和操縱數(shù)據(jù)的邏輯結(jié)構(gòu)。開發(fā)一個數(shù)據(jù)庫系統(tǒng)需要經(jīng)過一個“兩次抽象”的過程,在第一次抽象過程中,要分析所開發(fā)的數(shù)據(jù)庫系統(tǒng)包含哪些實(shí)體,分析每個實(shí)體應(yīng)該至少包含的屬性,以及實(shí)體之間的聯(lián)系,并使用E-R圖將抽象結(jié)果表示出來;第二次抽象過程,需要將E-R圖轉(zhuǎn)換為數(shù)據(jù)模型即數(shù)據(jù)庫表,每個屬性就是表中的每個列或字段。在設(shè)計表的過程中,最重要的任務(wù)之一,是為表確定主鍵。按以上原則及“高職院校教學(xué)管理系統(tǒng)”數(shù)據(jù)庫邏輯設(shè)計結(jié)果,確定系統(tǒng)數(shù)據(jù)庫表的邏輯結(jié)構(gòu)如教材中的表3-2至3-10所示。3.2設(shè)計“高職院校教學(xué)管理系統(tǒng)”中表的結(jié)構(gòu)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表任務(wù):使用SSMS及T-SQL的CREATETABLE語句創(chuàng)建JXGL數(shù)據(jù)庫表。3.3創(chuàng)建表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.3.1使用SSMS創(chuàng)建表3.3.2使用T-SQL語句創(chuàng)建表依據(jù)不同的分類標(biāo)準(zhǔn),SQLServer2005中的表有以下分類。按照表中數(shù)據(jù)存儲的時間分為永久表和臨時表。永久表一旦創(chuàng)建,除非人工刪除,否則一直存在;臨時表中的數(shù)據(jù)只在數(shù)據(jù)庫運(yùn)行期間臨時存在,退出連接數(shù)據(jù)庫后,表也將從內(nèi)存中刪除。按照表的用途分為系統(tǒng)表和用戶表。系統(tǒng)表用來維護(hù)SQLServer服務(wù)器工作,存儲系統(tǒng)級信息;用戶表一般為永久表,由用戶創(chuàng)建,用于開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)。使用SSMS創(chuàng)建數(shù)據(jù)庫JXGL中的student_info表:,步驟如教材所述。

3.3.1使用SSMS創(chuàng)建表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表

創(chuàng)建表的T-SQL語句是CREATETABLE,基本語法如下:CREATETABLEtable_name(column_namedata_type[column_constraint][,column_namedata_type[column_constraint]…][,<table_constraint>])3.3.2使用T-SQL語句創(chuàng)建表其中:

table_name:表名稱。表名必須符合標(biāo)識符規(guī)則,最多包含128個字符,在數(shù)據(jù)庫中必須唯一。

column_name:列的名稱,列名稱必須符合標(biāo)識符規(guī)則,在表中必須唯一。

data_type:指定列的數(shù)據(jù)類型。

column_constraint:列級約束。對應(yīng)列采取的限制措施,如非空性、默認(rèn)值、唯一性、完整性等(關(guān)于約束的概念將在任務(wù)四中介紹)。

table_constraint:表級約束。當(dāng)完整性約束涉及該表的多個屬性列時,必須定義在表級上。這些定義連同對應(yīng)的列約束被存儲在系統(tǒng)中。當(dāng)對數(shù)據(jù)庫進(jìn)行相關(guān)操作時,系統(tǒng)自動檢查操作的合法性。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表1.【例3-2】使用CREATETABLE語句創(chuàng)建表teacher_info。USEJXGLGOCREATETABLEteacher_info( teac_idchar(8)PRIMARYkey,--將teac_id設(shè)置為表的主鍵

teac_namenvarchar(20)NOTNULL, dep_idchar(2)NOTNULLDEFAULT('J'),--該列設(shè)置非空和默認(rèn)值

genderbitNOTNULLDEFAULT(1), professionnvarchar(20)DEFAULT(N'副教授'), telephonevarchar(14), thome_addrnvarchar(50)NOTNULLDEFAULT(N'不詳'), tzipcodecode)GO3.3.2使用T-SQL語句創(chuàng)建表

提示:選擇表teacher_info,右擊,在快捷菜單中選擇“編寫表腳本為”→“CREATE到”→“新建查詢窗口”或“文件”或“剪貼板”命令,可以在不同的位置產(chǎn)生創(chuàng)建該表的SQL腳本。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表任務(wù):使用SSMS及T-SQL的ALTERTABLE語句、DROPTABLE語句修改表結(jié)構(gòu)或刪除用戶表。3.4管理表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.4.1使用SSMS管理表3.4.2使用T-SQL管理表1.查看表在“對象資源管理器”中查看該表的常規(guī)、權(quán)限和擴(kuò)展屬性。2.修改表(1)在“對象資源管理器”中選擇某個表,在該窗口中對表進(jìn)行修改,如添加、刪除列,更改列名、數(shù)據(jù)類型、列寬度。(2)在“對象資源管理器”中選擇某個表,打開“表屬性”對話框,修改表的權(quán)限屬性值。3.刪除表在“對象資源管理器”中選擇某個表,打開“刪除對象”對話框,確認(rèn)被刪除對象后,單擊“確定”按鈕。4.重命名表在“對象資源管理器”中選擇某個表,在表名位置上直接輸入新的表名即可重命名該表。3.4.1使用SSMS管理表

提示:修改表結(jié)構(gòu)時,一是盡量在沒有數(shù)據(jù)操作的情況下進(jìn)行,二是修改包含數(shù)據(jù)的表結(jié)構(gòu)時要保證修改前后數(shù)據(jù)類型的兼容性,否則會造成數(shù)據(jù)丟失。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表1.查看表使用系統(tǒng)存儲過程sp_helptable_name可以查看指定表的所有屬性信息。2.修改表使用ALTERTABLE語句可以修改表結(jié)構(gòu),包括添加新列及其約束,刪除原有的列及其約束,更改數(shù)據(jù)類型、列寬度等?;菊Z法如下:

ALTERTABLE<table_name>[ALTERCOLUMN<column_name><type_name>][ADD<new_column_name><type_name>[column_constraint]][DROP[column_constraint_name]|[column_name]3.4.2使用T-SQL管理表其中:

ALTERCOLUMN子句:修改列名及數(shù)據(jù)類型、列寬度,一個ALTERTABLE語句中只包含一個ALTERCOLUMN子句。

ADD子句:添加新列及其約束,一個ALTERTABLE語句中只包含一個ADD子句。

DROP子句:刪除列或列約束,刪除列時在DROP后加關(guān)鍵字COLUMN。一個ALTERTABLE語句中只包含一個DROP子句。。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(1)修改列。【例3-3】修改表book_info中的列book_name,數(shù)據(jù)類型改為nvarchar型,列寬度為20。代碼如下:

ALTERTABLEbook_infoALTERCOLUMNbook_namenvarchar(20)GO(2)刪除列及其約束。當(dāng)列包含約束時,不能直接進(jìn)行修改或刪除,必須首先刪除約束?!纠?-4】修改表book_info中的列book_id,數(shù)據(jù)類型改為int型。代碼如下:

ALTERTABLEbook_infoALTERCOLUMNbook_idintGO3.4.2使用T-SQL管理表執(zhí)行該代碼,提示修改主鍵列數(shù)據(jù)類型出錯,則需要執(zhí)行如下代碼,先刪除該列中的約束:

ALTERTABLEbook_infoDROPPK_book_infoGO創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表【例3-5】刪除表book_info中的列book_id。代碼如下:

USEJXGLGOALTERTABLEbook_infoDROPPK_book_infoGOALTERTABLEbook_infoDROPCOLUMNbook_idGO3.4.2使用T-SQL管理表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(3)添加新列及其約束?!纠?-6】向表book_info中添加一個新列price,數(shù)據(jù)類型為numeric型,精度為5,小數(shù)位數(shù)為2,設(shè)置非空屬性,默認(rèn)值為100。代碼如下:USEJXGLGOALTERTABLEbook_infoADDpricenumeric(5,2)NOTNULLDEFAULT(100.00)GO3.4.2使用T-SQL管理表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(4)添加約束?!纠?-7】修改課程信息表course_info,將列course_id設(shè)置為表的主鍵。代碼如下:

USEJXGLGOALTERTABLEcourse_infoADDCONSTRAINTpk_course_infoPRIMARYKEY(course_id)GO3.4.2使用T-SQL管理表

提示:一個ALTERTABLE語句只能修改一列,但可以添加或刪除多個列,只需在各列名之間用逗號“,”隔開。默認(rèn)情況下刪除的是約束,要修改或刪除帶約束的列,必須首先刪除約束。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.刪除表使用DROPTABLE語句刪除表?!纠?-8】使用DROPTABLE語句,刪除數(shù)據(jù)庫JXGL中的表classroom_info。代碼如下:USEJXGLGODROPTABLEclassroom_infoGO3.4.2使用T-SQL管理表

提示:表一旦被刪除,表的結(jié)構(gòu)定義、數(shù)據(jù)、全文索引、約束和索引都將從數(shù)據(jù)庫中永久刪除,原來存放表及其索引的存儲空間被釋放給其他數(shù)據(jù)庫對象。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.5操作表中的數(shù)據(jù)任務(wù):使用SSMS及T-SQL的INSERTINTO語句向表中輸入數(shù)據(jù),使用SSMS及T-SQL的DELETE、UPDATE語句刪除、更新表中的數(shù)據(jù)。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.5.1使用SSMS操作表中的數(shù)據(jù)3.5.2使用T-SQL操作表中的數(shù)據(jù)

提示:①對標(biāo)識列、允許為空的列、有默認(rèn)值的列、計算列、能自動取值的列,可以不輸入具體的值,系統(tǒng)會為這些列自動賦值。除以上幾列外,其余的必須輸入數(shù)據(jù),否則系統(tǒng)會提示錯誤。②表的某些列可能會帶有某種約束條件,輸入、修改數(shù)據(jù)時,必須符合這些設(shè)置的條件。如果不小心輸入了不符合要求的數(shù)據(jù),系統(tǒng)會彈出提示信息框提示用戶輸入的數(shù)據(jù)非法。如圖3-6所示。③對設(shè)置默認(rèn)值的列在輸入非法數(shù)據(jù)時會以默認(rèn)值自動取代。④輸入貨幣型數(shù)據(jù)的格式為“$12.22”。3.5.1使用SSMS操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表1.使用INSERT語句輸入數(shù)據(jù)使用T-SQL的INSERTINTO語句,可以向表中輸入數(shù)據(jù)。基本語法如下:INSERT[INTO]<table_name|view_name>[columnlist]VALUES(valueslist|selectstatement)3.5.2使用T-SQL操作表中的數(shù)據(jù)其中:columnlist:要輸入數(shù)據(jù)的列的清單。valueslist:要向表中輸入的數(shù)據(jù)的清單。selectstatement:通過查詢向當(dāng)前表中輸入數(shù)據(jù)的查詢語句。使用創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表INSERT語句輸入數(shù)據(jù)時應(yīng)注意以下問題:⑴當(dāng)向表中所有列輸入數(shù)據(jù)時,columnlist子句可以缺省。若缺省該子句,數(shù)據(jù)清單中數(shù)據(jù)的順序一定與表中列的順序一致。⑵當(dāng)要輸入數(shù)據(jù)的表中包含有標(biāo)識列、允許為空的列、設(shè)置默認(rèn)值的列時,可以不輸入該列的值。⑶當(dāng)向字符型、日期型列輸入數(shù)據(jù)時,要以單引號引起來。(1)向表中輸入一行數(shù)據(jù)。【例3-9】向表teacher_info插入一條合法記錄。代碼如下:USEJXGLGOINSERTINTOteacher_info(teac_id,teac_name,depart_id,gender,profession,telephone,thome_addr,tzipcode)VALUES('TD009',N'董衛(wèi)剛','TD',1,N'講師',,N'濟(jì)南市燕子山路號,'250014')圖3-7向表中插入一行數(shù)據(jù)GO3.5.2使用T-SQL操作表中的數(shù)據(jù)注意:columnlist子句缺省時,數(shù)據(jù)清單中數(shù)據(jù)的順序和數(shù)目一定與表中列的順序和數(shù)目一致。代碼如下:INSERTINTOteacher_infoVALUES('TG0013',N'汪虹','TG',1,N'副教授',,N'濟(jì)南市解放路','250014')GO創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(2)輸入一行中的部分列。當(dāng)表中包含設(shè)置了默認(rèn)值及允許為null值的列時,可不輸入數(shù)據(jù),但列名清單不能缺省?!纠?-10】向表teacher_info插入一條合法記錄。代碼如下:USEJXGLGOINSERTINTOteacher_info(teac_id,teac_name,dep_id,gender,profession)--列名清單只列出需要輸入數(shù)據(jù)的列VALUES('TJ0110',N'姜艷','J',0,N'教授')--輸入清單中列出的部分列的數(shù)據(jù)GO3.5.2使用T-SQL操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(3)輸入多行數(shù)據(jù)。使用INSERT…SELECT語句可以一次向表中插入多行數(shù)據(jù),其中SELECT語句可以從其他表中查詢出多行數(shù)據(jù)?!纠?-11】將表table_3(請用戶自行創(chuàng)建該表)中的所有數(shù)據(jù)插入到表book_info中去。代碼如下:USEJXGLGOINSERTbook_infoSELECT*--“*”表示查詢出表table_3中的所有列FROMtable_3GO3.5.2使用T-SQL操作表中的數(shù)據(jù)

提示:使用SELECT語句查詢出的數(shù)據(jù),與將插入數(shù)據(jù)的列的數(shù)目、數(shù)據(jù)類型、順序和寬度要一致。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(3)輸入多行數(shù)據(jù)。使用INSERT…SELECT語句可以一次向表中插入多行數(shù)據(jù),其中SELECT語句可以從其他表中查詢出多行數(shù)據(jù)?!纠?-11】將表table_3(請用戶自行創(chuàng)建該表)中的所有數(shù)據(jù)插入到表book_info中去。代碼如下:USEJXGLGOINSERTbook_infoSELECT*--“*”表示查詢出表table_3中的所有列FROMtable_3GO3.5.2使用T-SQL操作表中的數(shù)據(jù)

提示:使用SELECT語句查詢出的數(shù)據(jù),與將插入數(shù)據(jù)的列的數(shù)目、數(shù)據(jù)類型、順序和寬度要一致。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表2.使用DELETE語句刪除表中的數(shù)據(jù)行表中沒有意義的數(shù)據(jù),使用DELETE語句以行為單位刪除?;菊Z法如下:DELETE[FROM]table_name|view_nameWHEREsearch_condition【例3-12】刪除表book_info中書價(book_price)高于30元錢的書的信息。代碼如下:DELETEFROMbook_infoWHEREbook_price>=30GO3.5.2使用T-SQL操作表中的數(shù)據(jù)

其中:參數(shù)search_condition是一個邏輯表達(dá)式,用來描述被刪除的數(shù)據(jù)應(yīng)該滿足的條件。當(dāng)該子句缺省時,表(或視圖)中的數(shù)據(jù)都將被刪除,但表結(jié)構(gòu)(視圖定義)仍然存在于數(shù)據(jù)庫中。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表

提示:使用DELETE語句一次最少刪除一行數(shù)據(jù),而不是刪除表中指定的部分列的數(shù)據(jù)。刪除行時,系統(tǒng)不會提供確認(rèn)信息,所以用戶使用該語句要謹(jǐn)慎。

提示:當(dāng)缺少WHERE子句時,刪除整張表。【例3-13】刪除表book_info中所有書的信息。代碼如下:USEJXGLGODELETEbook_infoGO3.使用UPDATE語句更新表中的數(shù)據(jù)使用UPDATE語句可以更新表的一行、一行中的某些列,也可以更新表中所有行或所有行的某些列。基本語法如下:UPDATEtable_nameSETcolumn_name=express|NULL|DEFAULT[,…n][WHERElogical_express]3.5.2使用T-SQL操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表其中:SET子句:指定要被更新的列及其新的值。WHERE子句:指定修改條件,只有滿足條件的那些行的列值才被修改為SET子句指定的數(shù)據(jù)。express:新數(shù)據(jù)可以是常量或表達(dá)式。(1)更新表中所有行的某一列。【例3-14】將表student_grade中所有同學(xué)的成績提高5分。USEJXGLGOUPDATEstudent_gradeSETgrade=grade+5GO3.5.2使用T-SQL操作表中的數(shù)據(jù)

其中:“grade=grade+5”表示將grade列的值在原來值的基礎(chǔ)上增加5。。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(2)更新表中某些行的某一列。【例3-15】將表student_grade中學(xué)號為J07072141的同學(xué)所有課程的成績提高5分(該同學(xué)選修了4門課程)。代碼如下:USEJXGLGOUPDATEstudent_gradeSETgrade=grade+5WHEREstud_id='J07072141'GO3.5.2使用T-SQL操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表(3)更新表中多個行的多個列?!纠?-16】將表student_grade中成績?yōu)?0分以下的同學(xué)的成績提高5分,學(xué)分提高警惕0.2分。代碼如下:USEJXGLGOUPDATEstudent_gradeSETgrade=grade+5,stud_credit=stud_credit+0.2WHEREgrade<=70GO3.5.2使用T-SQL操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表任務(wù):理解第一范式、第二范式、第三范式的含義及作用,在表中應(yīng)用標(biāo)識列、計算列的方法。

創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.6.1范式3.6.2關(guān)于標(biāo)識列和計算列3.6知識進(jìn)階構(gòu)造關(guān)系型數(shù)據(jù)庫必須遵循一定的規(guī)則,在關(guān)系型數(shù)據(jù)庫中這種規(guī)則稱為范式。關(guān)系型數(shù)據(jù)庫中關(guān)系(表)必須滿足一定的要求,即滿足不同的范式。目前關(guān)系型數(shù)據(jù)庫有6種范式:第一范式(簡稱1NF)、第二范式(簡稱2NF)、第三范式(簡稱3NF)、第四范式(簡稱4NF)、第五范式(簡稱5NF)和第六范式(簡稱6NF)。滿足最低要求的范式是第一范式,在第一范式的基礎(chǔ)上進(jìn)一步滿足更多要求的稱為第二范式,其余范式依此類推。一般說來,關(guān)系型數(shù)據(jù)庫只需滿足第三范式即可。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表1.第一范式在任何一個關(guān)系型數(shù)據(jù)庫中,第一范式是對關(guān)系模式的基本要求。反之,不滿足第一范式的數(shù)據(jù)庫不是關(guān)系數(shù)據(jù)庫。第一范式指表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個值。即實(shí)體集(表)中的某個屬性有多個值或者重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性就可能需要定義一個新的實(shí)體集,新的實(shí)體集由重復(fù)的屬性構(gòu)成。新實(shí)體集與原來實(shí)體集之間為一對多關(guān)系。簡而言之,第一范式就是關(guān)系模式中無重復(fù)的列。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表2.第二范式第二范式是在第一范式基礎(chǔ)上建立起來的,即滿足第二范式必須先滿足第一范式。第二范式要求表中的每行必須可以被唯一區(qū)分,為實(shí)現(xiàn)區(qū)分,通常需要為表加上一個列以存儲各個行的唯一標(biāo)識,通常就是主鍵,實(shí)體的其他屬性完全依賴于主鍵。簡而言之,第二范式就是非主鍵屬性不能部分依賴(必須完全依賴)于主鍵。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表3.第三范式滿足第三范式必須先滿足第二范式。第三范式要求一個數(shù)據(jù)庫表中不能包含已經(jīng)在其他表中包含的非主鍵,或者說只能包含另一個表中的主鍵。例如,存在一個系信息表(department_info),其中每個系有系編號、系名稱、系主任、該系的教師人數(shù)等信息。那么在教師信息表中列出系編號后就不能再將系名稱、系主任、該系的教師人數(shù)等與系有關(guān)的信息加入教師信息表(teacher_info)中。如果不存在系信息表,則根據(jù)第三范式也應(yīng)該構(gòu)建它,否則會有大量的數(shù)據(jù)冗余。簡而言之,第三范式就是屬性不依賴于其他表的非主鍵。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫表1.標(biāo)識列(IDENTITY列)標(biāo)識列是這樣的列:給定一個初始值,稱為種子;給定一個遞增值,稱為步

溫馨提示

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

最新文檔

評論

0/150

提交評論