资源描述:
《实验五:数据更新、视图》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验四:数据更新、视图广东医学院信息工程学教研室实验内容:1、插入数据2、修改数据3、删除数据4、级联更新5、表间更新6、创建视图7、删除视图8、更新视图表2:Courese首先用约10分钟时间把课本115页-117页的例子联系一下。特别是带子查询的语句。删除数据的部分先别做。恢复不小心删除数据从日志恢复,软件logexplore课内练习表2:Courese1、更新多列用SQL语句更新“刘华华“记录,把他的性别Ssex改为女,年龄Sage改为20。updatestudentsetssex='女',sage=20wheresname='刘华华'2、
2、替换把学生表种所有姓李的学生改为姓欧阳的。UPDATEstudentSETsname=REPLACE(sname,'李','欧阳')REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法REPLACE(‘ABC',‘B',‘D')3、级联更新尝试以下操作:删除学生表里面学生名叫“陈冬”的数据deletefromstudentwheresname='陈冬’把学生表里面名字叫“张蓝”的学号改为2008updatestudentsetsno='2008'wheresname='张蓝‘用代码:按条件先删除子表的纪录,再
3、删除父表的纪录。或者可以用触发器。4、表间复制数据:复制表数据到另外一个新表(a表原来不存在)select*intoafromstudent;建立a、b、c三个表以备用。select*intoafromstudent;select*intobfromstudent;select*intocfromstudent;5、删除重复记录(不保留任何重复记录)首先在a表里面操作:selectdistinct*froma就可以得到删除所有重复记录的结果集。6、如果该表需要删除重复的记录(重复记录保留1条)对b表进行操作:selectdistinct*into
4、Tmpfrombdroptablebselect*intobfromTmpdroptableTmp7、跨表删除相同数据:删除表b中字段Sno和表c中字段Sno一样的记录Deletebwhereexists(select1frombwhereb.sno=c.sno)DELETEbFROMbINNERJOINcONb.sno=c.sno表格A,表格B,两个表格的结构都是相同的,结构如id,A1,A2,A3,A4。id是相同,且唯一的。问题:用表格B来更新表格A情况1:如果表格A和表格B中id相同而B1、B2、B3、B4中有不同的情况下,就根据表格B来
5、更新相应的表格A的内容。情况2:如果表格B中id在表格A中不存在,则把表格B中的id行添加到表格A中。Deletetable删除表内容,保留结构Droptable删除整个表表2:Courese优点:1、一表或多表的查询数据的独立集合,减少重复的sql,为编程人员或客户提供了方便。2、安全性:每个用户可通过一组少量的视图来访问数据库,限制了用户的访问数据存储的数据。3、简化结构:由多表查询变成了针对试图的单表查询。4、隔离变化:即使底层的数据源发生变化,数据也能保持一致5、数据的完整:DBMS自动校验数据,确保数据的完整性约束。缺点:如果试图连接复
6、杂,查询起来需要花费时间。更新限制:视图是只读的,但原表结构更新时,视图无法同步更新。表2:Courese1、建立信息系学生的视图CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept='IS'2、建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。CREATEVIEWIS_Student1ASSELECTSno,Sname,SageFROMStudentWHERESdept='IS'withCHECKOPTION3、建立信息系选修了1号课程的学生
7、的视图。CREATEVIEWIS_S1(Sno,Sname,Grade)ASSELECTStudent.Sno,Sname,GradeFROMStudent,SCWHERESdept='IS'ANDStudent.Sno=SC.SnoANDSC.Sno='1'4、建立信息系选修了1号课程且成绩在90分以上的学生的视图。CREATEVIEWIS_S2ASSELECTSno,Sname,GradeFROMIS_S1WHEREGrade>=905、定义一个反映学生出生年份的视图。CREATEVIEWBT_S(Sno,Sname,Sbirth)ASSEL
8、ECTSno,Sname,2004-SageFROMStudent6、将学生的学号及他的平均成绩定义为一个视图。CREATEVIEWS_