预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第三章关系数据库标准语言SQL章3.5数据更新节3.6视图课型新授课课时2节课班级2005级11、12班教学熟练掌握数据更新语句:INSERT,UPDATE,DELETE目掌握视图的含义和有关操作标教学数据更新语句重视图是虚表的概念点视图的用途难点教学关键教学讲解与课件演示。方法教具计算机大屏幕投影。复习数据查询内容引入数据如何插入到表中,如何修改和删除。内容讲3.4数据更新解3.4.1插入数据内两种插入数据方式:插入单个元组;插入子查询结果容1.插入单个元组语句格式INSERTINTO<表名>[(<属性列1>[,<属性列2>…])VALUES(<常量1>[,<常量22>]…)功能:将新元组插入指定表中。INTO子句:指定要插入数据的表名及属性列属性列的顺序可与表定义中的顺序不一致没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致指定部分属性列:插入的元组在其余属性列上取NULL值VALUES子句:提供的值必须与INTO子句匹配。包括值的个数和值的类型[例1]将一个新学生记录(学号:95020;姓名:陈冬;性别:男;年龄:18岁;所在系:IS)插入到Student表中。INSERTINTOStudentVALUES('95020','陈冬','男',18,'IS');[例2]插入一条选课记录('95020','1')。INSERTINTOSC(Sno,Cno)VALUES('95020','1');新插入的记录在Grade列上取空值2.插入子查询结果语句格式INSERTINTO<表名>[(<属性列1>[,<属性列2>…)]<子查询>;功能:将子查询结果插入指定表中INTO子句(与插入单条元组类似)指定要插入数据的表名及属性列属性列的顺序可与表定义中的顺序不一致没有指定属性列:表示要插入的是一条完整的元组指定部分属性列:插入的元组在其余属性列上取空值子查询SELECT子句目标列必须与INTO子句匹配值的个数值的类型[例3]对每一个系,求学生的平均年龄,并把结果存入数据库。第一步:建表CREATETABLEDeptage(SdeptCHAR(15)/*系名*/AvgageSMALLINT);/*学生平均年龄*/第二步:插入数据INSERTINTODeptage(Sdept,Avgage)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;第二种方法:创建表的同时插入数据CREATETABLEDeptage(Sdept,Avgage)ASSELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;DBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则实体完整性,参照完整性,用户定义的完整性,对于有NOTNULL约束的属性列是否提供了非空值,对于有UNIQUE约束的属性列是否提供了非重复值对于有值域约束的属性列所提供的属性值是否在值域范围内3.4.2修改数据语句格式UPDATE<表名>SET<列名1>=<表达式1>[,<列名2>=<表达式2>]…[WHERE<条件>];功能:修改指定表中满足WHERE子句条件的元组SET子句指定修改方式,要修改的列,修改后取值。WHERE子句指定要修改的元组,缺省表示要修改表中的所有元组三种修改方式:修改某一个元组的值;修改多个元组的值;带子查询的修改语句1.修改某一个元组的值[例4]将学生95001的年龄改为22岁。UPDATEStudentSETSage=22WHERESno='95001';2.修改多个元组的值[例5]将所有学生的年龄增加1岁。UPDATEStudentSETSage=Sage+1;[例6]将信息系所有学生的年龄增加1岁。UPDATEStudentSETSage=Sage+1WHERESdept='IS';3.带子查询的修改语句[例7]将计算机科学系全体学生的成绩置零。UPDATESCSETGrade=0WHERE'CS'=(SELETESdeptFROMStudentWHEREStudent.Sno=SC.Sno);[例]将选修“数据库”课程的学生成绩增加10%。UPDATESCSETGrade=Grade*1.1WHERECno=(SELETECnoFROMCourseWHERECname=“数据库”);DBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则实体完整性主码不允许修改(有子记录不允许修改,否则允许)用户定义的完整性NOTNULL约束UNIQUE约束值域约束3.4.3删除数据语句格式:DELETEFROM<表名>[WHERE<条件>];功能:删除指定表中满足WHERE子句条件的元组。WHERE子句指定要删除的元组。缺省表示要修改表中的所有