数据库系与统(三.3) .ppt
文本预览下载声明
* 3.5 数据更新-插入数据 插入子结果查询 [例5]将平均成绩大于90的学生加入到EXCELLENT中。 EXCELLENT表结构为EXCELLENT(Sno,avgScore),其中avgScore为平均成绩 insert into EXCELLENT ( Sno, avgScore) select Sno , avg(avgScore) from SC group by (Sno) having avg(avgScore) 90 * 3.5 数据更新-插入数据 插入子结果查询 RDBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则 实体完整性 参照完整性 用户定义的完整性 NOT NULL约束 UNIQUE约束 值域约束 * 3.5 数据更新 插入数据 修改数据 删除数据 * 3.5 数据更新-修改数据 语句格式 UPDATE 表名 SET 列名=表达式[,列名=表达式]… [WHERE 条件]; 功能 修改指定表中满足WHERE子句条件的元组的指定列值 * 3.5 数据更新-修改数据 SET子句 要修改的列 修改后取值 WHERE子句 指定要修改的元组 缺省表示要修改表中的所有元组 * 3.5 数据更新-修改数据 三种修改方式 修改某一个元组的值 修改多个元组的值 带子查询的修改语句 * 3.5 数据更新-修改数据 修改某一元组的值 [例6] 将学生200215121的年龄改为22岁 UPDATE Student SET Sage=22 WHERE Sno= 200215121 ; * 3.5 数据更新-修改数据 修改多个元组的值 [例7] 将所有教师工资上调5% Update Prof Set Sal = Sal * 1.05 ; * 3.5 数据更新-修改数据 修改多个元组的值 [例8] 将所有学生的年龄增加1岁 UPDATE Student SET Sage= Sage+1; * 3.5 数据更新-修改数据 带子查询的修改语句 [例9] 将1系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE ‘1= (SELETE Dno FROM Student WHERE Student.Sno = SC.Sno); * 3.5 数据更新-修改数据 带子查询的修改语句 [例10]将所有计算机系的教师工资上调10%。 Update Prof Set Sal = Sal * 1.1 Where Dno in ( Select Dno From Dept Where Dname = ‘计算机’); * 3.5 数据更新-修改数据 带子查询的修改语句 [例11]当某同学1号课的成绩低于该课程平均成绩时,将该同学该门课成绩提高5%。 Update SC Set Grade = Grade * 1.05 Where Cno= ‘1’ and Grade ( Select AVG(Grade) From SC Where Cno = ‘1’ ) ; * 3.5 数据更新-修改数据 带子查询的修改语句 [例12]将1系系主任的工资改为该系的平均工资。 update Prof set Sal = (select avg(Sal) from Prof where Dno = ‘1’) where Pno = (select Dean from Dept where Dno = ‘1’) * 3.5 数据更新-修改数据 RDBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则 * 3.5 数据更新 插入数据 修改数据 删除数据 * 3.5 数据更新-删除
显示全部