資源描述:
《關(guān)系數(shù)據(jù)庫語言SQL課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL(續(xù)2)第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL3.1SQL概述3.2學(xué)生-課程數(shù)據(jù)庫3.3數(shù)據(jù)定義3.4數(shù)據(jù)查詢3.5數(shù)據(jù)更新3.6空值的處理3.7視圖3.8小結(jié)3.5數(shù)據(jù)更新3.5.1插入數(shù)據(jù)3.5.2修改數(shù)據(jù)3.5.3刪除數(shù)據(jù)3.5.1插入數(shù)據(jù)兩種插入數(shù)據(jù)方式插入元組插入子查詢結(jié)果可以一次插入多個(gè)元組1.插入元組語句格式INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]VALUES(<常量1>[,<常量2>]…);功能將新元組插入指定表中插入元組(續(xù))INT
2、O子句指定要插入數(shù)據(jù)的表名及屬性列屬性列的順序可與表定義中的順序不一致沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致指定部分屬性列:插入的元組在其余屬性列上取空值插入元組(續(xù))VALUES子句提供的值必須與INTO子句匹配值的個(gè)數(shù)值的類型插入元組(續(xù))[例3.69]將一個(gè)新學(xué)生元組(學(xué)號:201215128;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入到Student表中。INSERTINTOStudent(Sno,Sname,Ssex,Sdept,Sage)VALUES('201215128','陳冬','男','IS',18)
3、;插入元組(續(xù))[例3.71]插入一條選課記錄('200215128','1')。INSERTINTOSC(Sno,Cno)VALUES('201215128','1');關(guān)系數(shù)據(jù)庫管理系統(tǒng)將在新插入記錄的Grade列上自動(dòng)地賦空值?;蛘撸篒NSERTINTOSCVALUES('201215128','1',NULL);插入元組(續(xù))[例3.70]將學(xué)生張成民的信息插入到Student表中。INSERTINTOStudentVALUES('201215126','張成民','男’,18,'CS');2.插入子查詢結(jié)果語句格式INSERTINTO<表名>[(<屬性列1>[,
4、<屬性列2>…)]子查詢;INTO子句子查詢SELECT子句目標(biāo)列必須與INTO子句匹配值的個(gè)數(shù)值的類型插入子查詢結(jié)果(續(xù))[例3.72]對每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫第一步:建表CREATETABLEDept_age(SdeptCHAR(15)/*系名*/Avg_ageSMALLINT);/*學(xué)生平均年齡*/第二步:插入數(shù)據(jù)INSERTINTODept_age(Sdept,Avg_age)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;插入子查詢結(jié)果(續(xù))關(guān)系數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行插入語句時(shí)會(huì)檢查所插元組是否破壞
5、表上已定義的完整性規(guī)則實(shí)體完整性參照完整性用戶定義的完整性NOTNULL約束UNIQUE約束值域約束3.5數(shù)據(jù)更新3.5.1插入數(shù)據(jù)3.5.2修改數(shù)據(jù)3.5.3刪除數(shù)據(jù)3.5.2修改數(shù)據(jù)語句格式UPDATE<表名>SET<列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…[WHERE<條件>];功能修改指定表中滿足WHERE子句條件的元組SET子句給出<表達(dá)式>的值用于取代相應(yīng)的屬性列如果省略WHERE子句,表示要修改表中的所有元組修改數(shù)據(jù)(續(xù))三種修改方式修改某一個(gè)元組的值修改多個(gè)元組的值帶子查詢的修改語句1.修改某一個(gè)元組的值[例3.73]將學(xué)生201215121的年齡改
6、為22歲UPDATEStudentSETSage=22WHERESno='201215121';2.修改多個(gè)元組的值[例3.74]將所有學(xué)生的年齡增加1歲。UPDATEStudentSETSage=Sage+1;3.帶子查詢的修改語句[例3.75]將計(jì)算機(jī)科學(xué)系全體學(xué)生的成績置零。UPDATESCSETGrade=0WHERESnoIN(SELETESnoFROMStudentWHERESdept='CS');修改數(shù)據(jù)(續(xù))關(guān)系數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行修改語句時(shí)會(huì)檢查修改操作是否破壞表上已定義的完整性規(guī)則實(shí)體完整性主碼不允許修改用戶定義的完整性NOTNULL約束UNIQUE約
7、束值域約束3.5數(shù)據(jù)更新3.5.1插入數(shù)據(jù)3.5.2修改數(shù)據(jù)3.5.3刪除數(shù)據(jù)3.5.3刪除數(shù)據(jù)語句格式DELETEFROM<表名>[WHERE<條件>];功能刪除指定表中滿足WHERE子句條件的元組WHERE子句指定要?jiǎng)h除的元組缺省表示要?jiǎng)h除表中的全部元組,表的定義仍在字典中刪除數(shù)據(jù)(續(xù))三種刪除方式刪除某一個(gè)元組的值刪除多個(gè)元組的值帶子查詢的刪除語句1.刪除某一個(gè)元組的值[例3.76]刪除學(xué)號為201215128的學(xué)生記錄。DELETEFROMStudentWHERESno=201215128';2.刪除多個(gè)元組的值[例3