資源描述:
《《關(guān)系數(shù)據(jù)庫(kù)SQL》PPT課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、數(shù)據(jù)庫(kù)系統(tǒng)概論(第4版)薩師煊王珊主編1第三章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL3.1SQL概述3.2數(shù)據(jù)定義3.3查詢3.4數(shù)據(jù)更新3.5視圖3.6數(shù)據(jù)控制(4.2-4.3)3.7嵌入式SQL(8.1)3.8小結(jié)23.4數(shù)據(jù)更新3.4.1插入數(shù)據(jù)3.4.2修改數(shù)據(jù)3.4.3刪除數(shù)據(jù)33.4.1插入數(shù)據(jù)兩種插入數(shù)據(jù)方式插入單個(gè)元組插入子查詢結(jié)果4插入單個(gè)元組語(yǔ)句格式INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]VALUES(<常量1>[,<常量2>]…)功能將新元組插入指定表中。5插入單個(gè)元組[例1]將一個(gè)
2、新學(xué)生記錄(學(xué)號(hào):95020;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。INSERTINTOStudentVALUES('95020','陳冬','男','IS',18);6插入單個(gè)元組[例2]插入一條選課記錄('95020','1')。INSERTINTOSC(Sno,Cno)VALUES('95020','1');新插入的記錄在Grade列上取空值7插入單個(gè)元組INTO子句指定要插入數(shù)據(jù)的表名及屬性列屬性列的順序可與表定義中的順序不一致沒(méi)有指定屬性列:表示要插入的是一條完整的元組
3、,且屬性列屬性與表定義中的順序一致指定部分屬性列:插入的元組在其余屬性列上取空值VALUES子句提供的值必須與INTO子句匹配值的個(gè)數(shù)值的類型82.插入子查詢結(jié)果語(yǔ)句格式INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]子查詢;功能將子查詢結(jié)果插入指定表中92.插入子查詢結(jié)果[例3]對(duì)每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫(kù)。第一步:建表CREATETABLEDeptage(SdeptVarChar(20),/*系名*/AvgageSmallInt);/*學(xué)生平均年齡*/102.插入子查詢結(jié)果第
4、二步:插入數(shù)據(jù)INSERTINTODeptage(Sdept,Avgage)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;112.插入子查詢結(jié)果在SQLServer中,若想把從表table1中查詢的結(jié)果放入table2,可不必專門建立表table2,只需用下面語(yǔ)句,就會(huì)自動(dòng)建立table2,并把從table1中查詢的結(jié)果放入table2:Selectcolumn1,column2,…Intotable2Fromtable1Where……122.插入子查詢結(jié)果selectSn
5、o,Cnointosc1fromscWhereCno=‘1’132.插入子查詢結(jié)果select*intosc2fromscWheresno='05001'142.插入子查詢結(jié)果DBMS在執(zhí)行插入語(yǔ)句時(shí)會(huì)檢查所插元組是否破壞表上已定義的完整性規(guī)則實(shí)體完整性參照完整性用戶定義的完整性對(duì)于有NOTNULL約束的屬性列是否提供了非空值對(duì)于有UNIQUE約束的屬性列是否提供了非重復(fù)值對(duì)于有值域約束的屬性列所提供的屬性值是否在值域范圍內(nèi)15思考:在SQLServer中如何復(fù)制一個(gè)表(包括其中的數(shù)據(jù))?Select*IntoNew
6、TableFromOldTable163.4數(shù)據(jù)更新3.4.1插入數(shù)據(jù)3.4.2修改數(shù)據(jù)3.4.3刪除數(shù)據(jù)173.4.2修改數(shù)據(jù)語(yǔ)句格式UPDATE<表名>SET<列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…[WHERE<條件>];功能修改指定表中滿足WHERE子句條件的元組18修改數(shù)據(jù)(續(xù))三種修改方式修改某一個(gè)元組的值修改多個(gè)元組的值帶子查詢的修改語(yǔ)句191.修改某一個(gè)元組的值[例4]將學(xué)生95001的年齡改為22歲。UPDATEStudentSETSage=22WHERESno='95001';202.修改多
7、個(gè)元組的值[例5]將所有學(xué)生的年齡增加1歲。UPDATEStudentSETSage=Sage+1;212.修改多個(gè)元組的值[例6]將信息系所有學(xué)生的年齡增加1歲。UPDATEStudentSETSage=Sage+1WHERESdept='IS';223.帶子查詢的修改語(yǔ)句[例7]將計(jì)算機(jī)科學(xué)系全體學(xué)生的成績(jī)置零。UPDATESCSETGrade=0WHERESnoIN(SelectSnoFromStudentWhereSdept=‘CS’)23DBMS在執(zhí)行修改語(yǔ)句時(shí)會(huì)檢查修改操作是否破壞表上已定義的完整性規(guī)則2
8、43.4數(shù)據(jù)更新3.4.1插入數(shù)據(jù)3.4.2修改數(shù)據(jù)3.4.3刪除數(shù)據(jù)253.4.3刪除數(shù)據(jù)DELETEFROM<表名>[WHERE<條件>];功能刪除指定表中滿足WHERE子句條件的元組WHERE子句指定要?jiǎng)h除的元組缺省表示要修改表中的所有元組263.4.3刪除數(shù)據(jù)三種刪除方式刪除某一個(gè)元組的值刪除多個(gè)元組的值帶子查詢的刪除語(yǔ)句271.刪除某