![《SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第1頁(yè)](http://file4.renrendoc.com/view11/M01/31/31/wKhkGWV5qWqAPmU6AAGGt3Ggkw4310.jpg)
![《SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第2頁(yè)](http://file4.renrendoc.com/view11/M01/31/31/wKhkGWV5qWqAPmU6AAGGt3Ggkw43102.jpg)
![《SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第3頁(yè)](http://file4.renrendoc.com/view11/M01/31/31/wKhkGWV5qWqAPmU6AAGGt3Ggkw43103.jpg)
![《SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第4頁(yè)](http://file4.renrendoc.com/view11/M01/31/31/wKhkGWV5qWqAPmU6AAGGt3Ggkw43104.jpg)
![《SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)實(shí)例教程》課件任務(wù)三_第5頁(yè)](http://file4.renrendoc.com/view11/M01/31/31/wKhkGWV5qWqAPmU6AAGGt3Ggkw43105.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù):了解SQLServer2005支持的數(shù)據(jù)類型,創(chuàng)建自定義數(shù)據(jù)類型。設(shè)計(jì)JXGL數(shù)據(jù)庫(kù)表結(jié)構(gòu),應(yīng)用SSMS和T-SQL語(yǔ)言兩種方法,創(chuàng)建、修改JXGL數(shù)據(jù)庫(kù)中的表,向表中輸入數(shù)據(jù),對(duì)表中數(shù)據(jù)進(jìn)行簡(jiǎn)單管理。3.1T-SQL語(yǔ)言的數(shù)據(jù)類型3.2設(shè)計(jì)“高職院校教學(xué)管理系統(tǒng)”中表的結(jié)構(gòu)3.3創(chuàng)建表3.4管理表3.5操作表中的數(shù)據(jù)3.6知識(shí)進(jìn)階任務(wù)三向數(shù)據(jù)庫(kù)輸入數(shù)據(jù)
—?jiǎng)?chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表了解T-SQL語(yǔ)言支持的基本數(shù)據(jù)類型創(chuàng)建用戶自定義數(shù)據(jù)類型使用SSMS創(chuàng)建、修改JXGL數(shù)據(jù)庫(kù)表使用CREATETABLE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)表,使用ALTERTABLE語(yǔ)句修改數(shù)據(jù)庫(kù)表使用SSMS向JXGL數(shù)據(jù)庫(kù)輸入新數(shù)據(jù),刪除、更新已有數(shù)據(jù)使用T-SQL語(yǔ)言向JXGL數(shù)據(jù)庫(kù)輸入新數(shù)據(jù),刪除、更新已有數(shù)據(jù)本章學(xué)習(xí)目標(biāo)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.1T-SQL語(yǔ)言的數(shù)據(jù)類型任務(wù):了解T-SQL語(yǔ)言支持的基本數(shù)據(jù)類型,掌握用戶自定義數(shù)據(jù)類型的方法。3.1T-SQL語(yǔ)言的數(shù)據(jù)類型SQL語(yǔ)言提供了25種系統(tǒng)數(shù)據(jù)類型,還支持用戶根據(jù)需要?jiǎng)?chuàng)建基于系統(tǒng)數(shù)據(jù)類型的自定義數(shù)據(jù)類型,這些數(shù)據(jù)類型T-SQL可用。1.系統(tǒng)數(shù)據(jù)類型
SQLServer2005中的系統(tǒng)數(shù)據(jù)類型歸納為下列類別:精確數(shù)值、近似數(shù)值、日期時(shí)間、貨幣、字符串、Unicode字符串、二進(jìn)制字符串和其他數(shù)據(jù)類型,如教材表3-1“SQLServer2005系統(tǒng)數(shù)據(jù)類型”所示。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表2.使用系統(tǒng)數(shù)據(jù)類型應(yīng)注意的問(wèn)題精確整數(shù)型數(shù)據(jù)bit型數(shù)據(jù)當(dāng)列為8bit或更少時(shí),以1個(gè)字節(jié)存儲(chǔ);為9~16bit時(shí),以2個(gè)字節(jié)存儲(chǔ)。貨幣型數(shù)據(jù)money型以2個(gè)4字節(jié)存儲(chǔ),精確到萬(wàn)分之一。smallmoney型數(shù)據(jù)以2個(gè)2字節(jié)存儲(chǔ),精確到萬(wàn)分之一。精確小數(shù)型數(shù)據(jù)decimal和numeric在表示數(shù)據(jù)精度方面沒(méi)有區(qū)別,但只有numeric數(shù)據(jù)類型才可作為主鍵列。近似數(shù)值型數(shù)據(jù)該類型用于存儲(chǔ)小數(shù)點(diǎn)不固定的數(shù)值,一般不用于存儲(chǔ)貨幣。3.1T-SQL語(yǔ)言的數(shù)據(jù)類型創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表日期/時(shí)間型數(shù)據(jù)datetime型以8字節(jié)存儲(chǔ),精確到百分之三秒或3.33毫秒;smalldatetime型使用4字節(jié)存儲(chǔ),精確到分鐘。字符型數(shù)據(jù)char型字符串在輸入長(zhǎng)度大于定義長(zhǎng)度時(shí),會(huì)被截?cái)?;而小于定義長(zhǎng)度時(shí),會(huì)以空格填充。varchar和text型的存儲(chǔ)空間會(huì)根據(jù)實(shí)際字符串長(zhǎng)度而變化。Unicode字符型數(shù)據(jù)Unicode統(tǒng)一字符編碼標(biāo)準(zhǔn)用于支持英語(yǔ)語(yǔ)種的字符數(shù)據(jù)。用兩個(gè)字節(jié)存儲(chǔ)一個(gè)字符。輸入該類型數(shù)據(jù)時(shí)需在字符前加前導(dǎo)標(biāo)識(shí)符N,但表中不會(huì)存儲(chǔ)該標(biāo)識(shí)符。二進(jìn)制型數(shù)據(jù)SQLServer2005采用十六進(jìn)制存儲(chǔ)二進(jìn)制數(shù)據(jù)。3.1T-SQL語(yǔ)言的數(shù)據(jù)類型創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.使用SSMS創(chuàng)建用戶自定義數(shù)據(jù)類型(操作步驟省略)4.使用T-SQL創(chuàng)建用戶自定義數(shù)據(jù)類型(1)使用系統(tǒng)存儲(chǔ)過(guò)程sp_droptype可以刪除用戶自定義的數(shù)據(jù)類型。代碼如下:
USEJXGLGOsp_droptypepostcodeGO3.1T-SQL語(yǔ)言的數(shù)據(jù)類型執(zhí)行該代碼,將把用戶自定義數(shù)據(jù)類型postcode從“用戶定義數(shù)據(jù)類型”列表中刪除創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表(2)使用系統(tǒng)存儲(chǔ)過(guò)程sp_addtype可以創(chuàng)建用戶自定義數(shù)據(jù)類型?;菊Z(yǔ)法如下:
sp_addtype[@typ_ename=]type,[@phystype=]system_data_type[,[@nulltype=]'null_type']【例3-1】使用sp_addtype在JXGL中創(chuàng)建一個(gè)名為code的自定義數(shù)據(jù)類型。
USEJXGLGOsp_addtypecode,'char(6)','NULL'GO3.1T-SQL語(yǔ)言的數(shù)據(jù)類型其中:
type_name:用戶定義數(shù)據(jù)類型的名稱。
@phystype:用戶定義數(shù)據(jù)類型所基于的系統(tǒng)數(shù)據(jù)類型名稱,包括其長(zhǎng)度、精度、小數(shù)位數(shù)。
@nulltype:是否允許為空值。值為'NULL'或'NOTNULL',默認(rèn)值為'NOTNULL'。
提示:只能刪除還沒(méi)有被用戶綁定的用戶定義數(shù)據(jù)類型?;蛘哒f(shuō),不能刪除正在被表或其他數(shù)據(jù)庫(kù)對(duì)象使用的用戶定義數(shù)據(jù)類型。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表任務(wù):規(guī)范存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)環(huán)境,設(shè)計(jì)JXGL數(shù)據(jù)庫(kù)中表的結(jié)構(gòu)。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.2設(shè)計(jì)“高職院校教學(xué)管理系統(tǒng)”中表的結(jié)構(gòu)創(chuàng)建用戶數(shù)據(jù)庫(kù)后,還無(wú)法將數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中,即此時(shí)的數(shù)據(jù)庫(kù)是一個(gè)空庫(kù)。必須在數(shù)據(jù)庫(kù)中創(chuàng)建用來(lái)存放數(shù)據(jù)的“容器”,這個(gè)“容器”就是表。表是數(shù)據(jù)庫(kù)中最重要的對(duì)象,是用來(lái)存儲(chǔ)和操縱數(shù)據(jù)的邏輯結(jié)構(gòu)。開發(fā)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)需要經(jīng)過(guò)一個(gè)“兩次抽象”的過(guò)程,在第一次抽象過(guò)程中,要分析所開發(fā)的數(shù)據(jù)庫(kù)系統(tǒng)包含哪些實(shí)體,分析每個(gè)實(shí)體應(yīng)該至少包含的屬性,以及實(shí)體之間的聯(lián)系,并使用E-R圖將抽象結(jié)果表示出來(lái);第二次抽象過(guò)程,需要將E-R圖轉(zhuǎn)換為數(shù)據(jù)模型即數(shù)據(jù)庫(kù)表,每個(gè)屬性就是表中的每個(gè)列或字段。在設(shè)計(jì)表的過(guò)程中,最重要的任務(wù)之一,是為表確定主鍵。按以上原則及“高職院校教學(xué)管理系統(tǒng)”數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)結(jié)果,確定系統(tǒng)數(shù)據(jù)庫(kù)表的邏輯結(jié)構(gòu)如教材中的表3-2至3-10所示。3.2設(shè)計(jì)“高職院校教學(xué)管理系統(tǒng)”中表的結(jié)構(gòu)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表任務(wù):使用SSMS及T-SQL的CREATETABLE語(yǔ)句創(chuàng)建JXGL數(shù)據(jù)庫(kù)表。3.3創(chuàng)建表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.3.1使用SSMS創(chuàng)建表3.3.2使用T-SQL語(yǔ)句創(chuàng)建表依據(jù)不同的分類標(biāo)準(zhǔn),SQLServer2005中的表有以下分類。按照表中數(shù)據(jù)存儲(chǔ)的時(shí)間分為永久表和臨時(shí)表。永久表一旦創(chuàng)建,除非人工刪除,否則一直存在;臨時(shí)表中的數(shù)據(jù)只在數(shù)據(jù)庫(kù)運(yùn)行期間臨時(shí)存在,退出連接數(shù)據(jù)庫(kù)后,表也將從內(nèi)存中刪除。按照表的用途分為系統(tǒng)表和用戶表。系統(tǒng)表用來(lái)維護(hù)SQLServer服務(wù)器工作,存儲(chǔ)系統(tǒng)級(jí)信息;用戶表一般為永久表,由用戶創(chuàng)建,用于開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。使用SSMS創(chuàng)建數(shù)據(jù)庫(kù)JXGL中的student_info表:,步驟如教材所述。
3.3.1使用SSMS創(chuàng)建表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表
創(chuàng)建表的T-SQL語(yǔ)句是CREATETABLE,基本語(yǔ)法如下:CREATETABLEtable_name(column_namedata_type[column_constraint][,column_namedata_type[column_constraint]…][,<table_constraint>])3.3.2使用T-SQL語(yǔ)句創(chuàng)建表其中:
table_name:表名稱。表名必須符合標(biāo)識(shí)符規(guī)則,最多包含128個(gè)字符,在數(shù)據(jù)庫(kù)中必須唯一。
column_name:列的名稱,列名稱必須符合標(biāo)識(shí)符規(guī)則,在表中必須唯一。
data_type:指定列的數(shù)據(jù)類型。
column_constraint:列級(jí)約束。對(duì)應(yīng)列采取的限制措施,如非空性、默認(rèn)值、唯一性、完整性等(關(guān)于約束的概念將在任務(wù)四中介紹)。
table_constraint:表級(jí)約束。當(dāng)完整性約束涉及該表的多個(gè)屬性列時(shí),必須定義在表級(jí)上。這些定義連同對(duì)應(yīng)的列約束被存儲(chǔ)在系統(tǒng)中。當(dāng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行相關(guān)操作時(shí),系統(tǒng)自動(dòng)檢查操作的合法性。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表1.【例3-2】使用CREATETABLE語(yǔ)句創(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語(yǔ)句創(chuàng)建表
提示:選擇表teacher_info,右擊,在快捷菜單中選擇“編寫表腳本為”→“CREATE到”→“新建查詢窗口”或“文件”或“剪貼板”命令,可以在不同的位置產(chǎn)生創(chuàng)建該表的SQL腳本。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表任務(wù):使用SSMS及T-SQL的ALTERTABLE語(yǔ)句、DROPTABLE語(yǔ)句修改表結(jié)構(gòu)或刪除用戶表。3.4管理表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.4.1使用SSMS管理表3.4.2使用T-SQL管理表1.查看表在“對(duì)象資源管理器”中查看該表的常規(guī)、權(quán)限和擴(kuò)展屬性。2.修改表(1)在“對(duì)象資源管理器”中選擇某個(gè)表,在該窗口中對(duì)表進(jìn)行修改,如添加、刪除列,更改列名、數(shù)據(jù)類型、列寬度。(2)在“對(duì)象資源管理器”中選擇某個(gè)表,打開“表屬性”對(duì)話框,修改表的權(quán)限屬性值。3.刪除表在“對(duì)象資源管理器”中選擇某個(gè)表,打開“刪除對(duì)象”對(duì)話框,確認(rèn)被刪除對(duì)象后,單擊“確定”按鈕。4.重命名表在“對(duì)象資源管理器”中選擇某個(gè)表,在表名位置上直接輸入新的表名即可重命名該表。3.4.1使用SSMS管理表
提示:修改表結(jié)構(gòu)時(shí),一是盡量在沒(méi)有數(shù)據(jù)操作的情況下進(jìn)行,二是修改包含數(shù)據(jù)的表結(jié)構(gòu)時(shí)要保證修改前后數(shù)據(jù)類型的兼容性,否則會(huì)造成數(shù)據(jù)丟失。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表1.查看表使用系統(tǒng)存儲(chǔ)過(guò)程sp_helptable_name可以查看指定表的所有屬性信息。2.修改表使用ALTERTABLE語(yǔ)句可以修改表結(jié)構(gòu),包括添加新列及其約束,刪除原有的列及其約束,更改數(shù)據(jù)類型、列寬度等?;菊Z(yǔ)法如下:
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ù)類型、列寬度,一個(gè)ALTERTABLE語(yǔ)句中只包含一個(gè)ALTERCOLUMN子句。
ADD子句:添加新列及其約束,一個(gè)ALTERTABLE語(yǔ)句中只包含一個(gè)ADD子句。
DROP子句:刪除列或列約束,刪除列時(shí)在DROP后加關(guān)鍵字COLUMN。一個(gè)ALTERTABLE語(yǔ)句中只包含一個(gè)DROP子句。。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表(1)修改列?!纠?-3】修改表book_info中的列book_name,數(shù)據(jù)類型改為nvarchar型,列寬度為20。代碼如下:
ALTERTABLEbook_infoALTERCOLUMNbook_namenvarchar(20)GO(2)刪除列及其約束。當(dāng)列包含約束時(shí),不能直接進(jìn)行修改或刪除,必須首先刪除約束?!纠?-4】修改表book_info中的列book_id,數(shù)據(jù)類型改為int型。代碼如下:
ALTERTABLEbook_infoALTERCOLUMNbook_idintGO3.4.2使用T-SQL管理表執(zhí)行該代碼,提示修改主鍵列數(shù)據(jù)類型出錯(cuò),則需要執(zhí)行如下代碼,先刪除該列中的約束:
ALTERTABLEbook_infoDROPPK_book_infoGO創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表【例3-5】刪除表book_info中的列book_id。代碼如下:
USEJXGLGOALTERTABLEbook_infoDROPPK_book_infoGOALTERTABLEbook_infoDROPCOLUMNbook_idGO3.4.2使用T-SQL管理表創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表(3)添加新列及其約束。【例3-6】向表book_info中添加一個(gè)新列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ù)庫(kù)表(4)添加約束?!纠?-7】修改課程信息表course_info,將列course_id設(shè)置為表的主鍵。代碼如下:
USEJXGLGOALTERTABLEcourse_infoADDCONSTRAINTpk_course_infoPRIMARYKEY(course_id)GO3.4.2使用T-SQL管理表
提示:一個(gè)ALTERTABLE語(yǔ)句只能修改一列,但可以添加或刪除多個(gè)列,只需在各列名之間用逗號(hào)“,”隔開。默認(rèn)情況下刪除的是約束,要修改或刪除帶約束的列,必須首先刪除約束。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.刪除表使用DROPTABLE語(yǔ)句刪除表?!纠?-8】使用DROPTABLE語(yǔ)句,刪除數(shù)據(jù)庫(kù)JXGL中的表classroom_info。代碼如下:USEJXGLGODROPTABLEclassroom_infoGO3.4.2使用T-SQL管理表
提示:表一旦被刪除,表的結(jié)構(gòu)定義、數(shù)據(jù)、全文索引、約束和索引都將從數(shù)據(jù)庫(kù)中永久刪除,原來(lái)存放表及其索引的存儲(chǔ)空間被釋放給其他數(shù)據(jù)庫(kù)對(duì)象。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.5操作表中的數(shù)據(jù)任務(wù):使用SSMS及T-SQL的INSERTINTO語(yǔ)句向表中輸入數(shù)據(jù),使用SSMS及T-SQL的DELETE、UPDATE語(yǔ)句刪除、更新表中的數(shù)據(jù)。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.5.1使用SSMS操作表中的數(shù)據(jù)3.5.2使用T-SQL操作表中的數(shù)據(jù)
提示:①對(duì)標(biāo)識(shí)列、允許為空的列、有默認(rèn)值的列、計(jì)算列、能自動(dòng)取值的列,可以不輸入具體的值,系統(tǒng)會(huì)為這些列自動(dòng)賦值。除以上幾列外,其余的必須輸入數(shù)據(jù),否則系統(tǒng)會(huì)提示錯(cuò)誤。②表的某些列可能會(huì)帶有某種約束條件,輸入、修改數(shù)據(jù)時(shí),必須符合這些設(shè)置的條件。如果不小心輸入了不符合要求的數(shù)據(jù),系統(tǒng)會(huì)彈出提示信息框提示用戶輸入的數(shù)據(jù)非法。如圖3-6所示。③對(duì)設(shè)置默認(rèn)值的列在輸入非法數(shù)據(jù)時(shí)會(huì)以默認(rèn)值自動(dòng)取代。④輸入貨幣型數(shù)據(jù)的格式為“$12.22”。3.5.1使用SSMS操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表1.使用INSERT語(yǔ)句輸入數(shù)據(jù)使用T-SQL的INSERTINTO語(yǔ)句,可以向表中輸入數(shù)據(jù)?;菊Z(yǔ)法如下:INSERT[INTO]<table_name|view_name>[columnlist]VALUES(valueslist|selectstatement)3.5.2使用T-SQL操作表中的數(shù)據(jù)其中:columnlist:要輸入數(shù)據(jù)的列的清單。valueslist:要向表中輸入的數(shù)據(jù)的清單。selectstatement:通過(guò)查詢向當(dāng)前表中輸入數(shù)據(jù)的查詢語(yǔ)句。使用創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表INSERT語(yǔ)句輸入數(shù)據(jù)時(shí)應(yīng)注意以下問(wèn)題:⑴當(dāng)向表中所有列輸入數(shù)據(jù)時(shí),columnlist子句可以缺省。若缺省該子句,數(shù)據(jù)清單中數(shù)據(jù)的順序一定與表中列的順序一致。⑵當(dāng)要輸入數(shù)據(jù)的表中包含有標(biāo)識(shí)列、允許為空的列、設(shè)置默認(rèn)值的列時(shí),可以不輸入該列的值。⑶當(dāng)向字符型、日期型列輸入數(shù)據(jù)時(shí),要以單引號(hào)引起來(lái)。(1)向表中輸入一行數(shù)據(jù)?!纠?-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ì)南市燕子山路號(hào),'250014')圖3-7向表中插入一行數(shù)據(jù)GO3.5.2使用T-SQL操作表中的數(shù)據(jù)注意:columnlist子句缺省時(shí),數(shù)據(jù)清單中數(shù)據(jù)的順序和數(shù)目一定與表中列的順序和數(shù)目一致。代碼如下:INSERTINTOteacher_infoVALUES('TG0013',N'汪虹','TG',1,N'副教授',,N'濟(jì)南市解放路','250014')GO創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表(2)輸入一行中的部分列。當(dāng)表中包含設(shè)置了默認(rèn)值及允許為null值的列時(shí),可不輸入數(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ù)庫(kù)表(3)輸入多行數(shù)據(jù)。使用INSERT…SELECT語(yǔ)句可以一次向表中插入多行數(shù)據(jù),其中SELECT語(yǔ)句可以從其他表中查詢出多行數(shù)據(jù)。【例3-11】將表table_3(請(qǐng)用戶自行創(chuàng)建該表)中的所有數(shù)據(jù)插入到表book_info中去。代碼如下:USEJXGLGOINSERTbook_infoSELECT*--“*”表示查詢出表table_3中的所有列FROMtable_3GO3.5.2使用T-SQL操作表中的數(shù)據(jù)
提示:使用SELECT語(yǔ)句查詢出的數(shù)據(jù),與將插入數(shù)據(jù)的列的數(shù)目、數(shù)據(jù)類型、順序和寬度要一致。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表(3)輸入多行數(shù)據(jù)。使用INSERT…SELECT語(yǔ)句可以一次向表中插入多行數(shù)據(jù),其中SELECT語(yǔ)句可以從其他表中查詢出多行數(shù)據(jù)?!纠?-11】將表table_3(請(qǐng)用戶自行創(chuàng)建該表)中的所有數(shù)據(jù)插入到表book_info中去。代碼如下:USEJXGLGOINSERTbook_infoSELECT*--“*”表示查詢出表table_3中的所有列FROMtable_3GO3.5.2使用T-SQL操作表中的數(shù)據(jù)
提示:使用SELECT語(yǔ)句查詢出的數(shù)據(jù),與將插入數(shù)據(jù)的列的數(shù)目、數(shù)據(jù)類型、順序和寬度要一致。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表2.使用DELETE語(yǔ)句刪除表中的數(shù)據(jù)行表中沒(méi)有意義的數(shù)據(jù),使用DELETE語(yǔ)句以行為單位刪除?;菊Z(yǔ)法如下:DELETE[FROM]table_name|view_nameWHEREsearch_condition【例3-12】刪除表book_info中書價(jià)(book_price)高于30元錢的書的信息。代碼如下:DELETEFROMbook_infoWHEREbook_price>=30GO3.5.2使用T-SQL操作表中的數(shù)據(jù)
其中:參數(shù)search_condition是一個(gè)邏輯表達(dá)式,用來(lái)描述被刪除的數(shù)據(jù)應(yīng)該滿足的條件。當(dāng)該子句缺省時(shí),表(或視圖)中的數(shù)據(jù)都將被刪除,但表結(jié)構(gòu)(視圖定義)仍然存在于數(shù)據(jù)庫(kù)中。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表
提示:使用DELETE語(yǔ)句一次最少刪除一行數(shù)據(jù),而不是刪除表中指定的部分列的數(shù)據(jù)。刪除行時(shí),系統(tǒng)不會(huì)提供確認(rèn)信息,所以用戶使用該語(yǔ)句要謹(jǐn)慎。
提示:當(dāng)缺少WHERE子句時(shí),刪除整張表。【例3-13】刪除表book_info中所有書的信息。代碼如下:USEJXGLGODELETEbook_infoGO3.使用UPDATE語(yǔ)句更新表中的數(shù)據(jù)使用UPDATE語(yǔ)句可以更新表的一行、一行中的某些列,也可以更新表中所有行或所有行的某些列?;菊Z(yǔ)法如下:UPDATEtable_nameSETcolumn_name=express|NULL|DEFAULT[,…n][WHERElogical_express]3.5.2使用T-SQL操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表其中:SET子句:指定要被更新的列及其新的值。WHERE子句:指定修改條件,只有滿足條件的那些行的列值才被修改為SET子句指定的數(shù)據(jù)。express:新數(shù)據(jù)可以是常量或表達(dá)式。(1)更新表中所有行的某一列?!纠?-14】將表student_grade中所有同學(xué)的成績(jī)提高5分。USEJXGLGOUPDATEstudent_gradeSETgrade=grade+5GO3.5.2使用T-SQL操作表中的數(shù)據(jù)
其中:“grade=grade+5”表示將grade列的值在原來(lái)值的基礎(chǔ)上增加5。。創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表(2)更新表中某些行的某一列?!纠?-15】將表student_grade中學(xué)號(hào)為J07072141的同學(xué)所有課程的成績(jī)提高5分(該同學(xué)選修了4門課程)。代碼如下:USEJXGLGOUPDATEstudent_gradeSETgrade=grade+5WHEREstud_id='J07072141'GO3.5.2使用T-SQL操作表中的數(shù)據(jù)創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表(3)更新表中多個(gè)行的多個(gè)列?!纠?-16】將表student_grade中成績(jī)?yōu)?0分以下的同學(xué)的成績(jī)提高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ù)庫(kù)表任務(wù):理解第一范式、第二范式、第三范式的含義及作用,在表中應(yīng)用標(biāo)識(shí)列、計(jì)算列的方法。
創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.6.1范式3.6.2關(guān)于標(biāo)識(shí)列和計(jì)算列3.6知識(shí)進(jìn)階構(gòu)造關(guān)系型數(shù)據(jù)庫(kù)必須遵循一定的規(guī)則,在關(guān)系型數(shù)據(jù)庫(kù)中這種規(guī)則稱為范式。關(guān)系型數(shù)據(jù)庫(kù)中關(guān)系(表)必須滿足一定的要求,即滿足不同的范式。目前關(guān)系型數(shù)據(jù)庫(kù)有6種范式:第一范式(簡(jiǎn)稱1NF)、第二范式(簡(jiǎn)稱2NF)、第三范式(簡(jiǎn)稱3NF)、第四范式(簡(jiǎn)稱4NF)、第五范式(簡(jiǎn)稱5NF)和第六范式(簡(jiǎn)稱6NF)。滿足最低要求的范式是第一范式,在第一范式的基礎(chǔ)上進(jìn)一步滿足更多要求的稱為第二范式,其余范式依此類推。一般說(shuō)來(lái),關(guān)系型數(shù)據(jù)庫(kù)只需滿足第三范式即可。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表1.第一范式在任何一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中,第一范式是對(duì)關(guān)系模式的基本要求。反之,不滿足第一范式的數(shù)據(jù)庫(kù)不是關(guān)系數(shù)據(jù)庫(kù)。第一范式指表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值。即實(shí)體集(表)中的某個(gè)屬性有多個(gè)值或者重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性就可能需要定義一個(gè)新的實(shí)體集,新的實(shí)體集由重復(fù)的屬性構(gòu)成。新實(shí)體集與原來(lái)實(shí)體集之間為一對(duì)多關(guān)系。簡(jiǎn)而言之,第一范式就是關(guān)系模式中無(wú)重復(fù)的列。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表2.第二范式第二范式是在第一范式基礎(chǔ)上建立起來(lái)的,即滿足第二范式必須先滿足第一范式。第二范式要求表中的每行必須可以被唯一區(qū)分,為實(shí)現(xiàn)區(qū)分,通常需要為表加上一個(gè)列以存儲(chǔ)各個(gè)行的唯一標(biāo)識(shí),通常就是主鍵,實(shí)體的其他屬性完全依賴于主鍵。簡(jiǎn)而言之,第二范式就是非主鍵屬性不能部分依賴(必須完全依賴)于主鍵。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表3.第三范式滿足第三范式必須先滿足第二范式。第三范式要求一個(gè)數(shù)據(jù)庫(kù)表中不能包含已經(jīng)在其他表中包含的非主鍵,或者說(shuō)只能包含另一個(gè)表中的主鍵。例如,存在一個(gè)系信息表(department_info),其中每個(gè)系有系編號(hào)、系名稱、系主任、該系的教師人數(shù)等信息。那么在教師信息表中列出系編號(hào)后就不能再將系名稱、系主任、該系的教師人數(shù)等與系有關(guān)的信息加入教師信息表(teacher_info)中。如果不存在系信息表,則根據(jù)第三范式也應(yīng)該構(gòu)建它,否則會(huì)有大量的數(shù)據(jù)冗余。簡(jiǎn)而言之,第三范式就是屬性不依賴于其他表的非主鍵。3.6.1范式創(chuàng)建和管理SQLServer2005數(shù)據(jù)庫(kù)表1.標(biāo)識(shí)列(IDENTITY列)標(biāo)識(shí)列是這樣的列:給定一個(gè)初始值,稱為種子;給定一個(gè)遞增值,稱為步
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大型活動(dòng)廣告投放策略合同
- 2025年度地下綜合管廊工程勞務(wù)分包施工合同
- 2025年度葡萄酒莊園旅游合作開發(fā)合同
- 2025年度智能化家居裝修合同服務(wù)協(xié)議
- 2025年度新能源車輛充電站借款合同糾紛處理流程
- 2025年度兒童游樂(lè)場(chǎng)加盟管理合同范本
- 2025年度知識(shí)產(chǎn)權(quán)質(zhì)押貸款合同編寫指南
- 2025年度新能源項(xiàng)目過(guò)橋資金借款申請(qǐng)專項(xiàng)合同
- 2025年度冷鏈運(yùn)輸與醫(yī)藥電商合作合同
- 2025年度車輛租賃與廣告位合作合同范本
- 《游戲界面設(shè)計(jì)專題實(shí)踐》課件-知識(shí)點(diǎn)5:圖標(biāo)繪制準(zhǔn)備與繪制步驟
- 自動(dòng)扶梯安裝過(guò)程記錄
- MOOC 材料科學(xué)基礎(chǔ)-西安交通大學(xué) 中國(guó)大學(xué)慕課答案
- 智慧供熱管理系統(tǒng)方案可行性研究報(bào)告
- 帕金森病的言語(yǔ)康復(fù)治療
- 中國(guó)城市居民的健康意識(shí)和生活方式調(diào)研分析報(bào)告
- 上海星巴克員工手冊(cè)
- 貓狗創(chuàng)業(yè)計(jì)劃書
- 復(fù)產(chǎn)復(fù)工試題含答案
- 部編版語(yǔ)文三年級(jí)下冊(cè)第六單元大單元整體作業(yè)設(shè)計(jì)
- 售后服務(wù)經(jīng)理的競(jìng)聘演講
評(píng)論
0/150
提交評(píng)論