资源描述:
《第11讲 数据更新及视图.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十一讲§3.5数据更新§3.6视图3.5.1插入数据插入数据是指把新的记录插入到一个已存在的表中,使用语句INSERTINTO,可分为以下几种情况。1)插入一个元组语法格式为:INSERTINTO<表名>[(<列名1>[,<列名2>…])]VALUES(<常量1>[,<常量2>…])3.5数据更新SQL语言的数据操纵语句DML主要包括插入数据、修改数据和删除数据三种语句:[例1]在Student表中插入一条学生记录(学号:05010;姓名:郑冬;性别:女;年龄:21;系别:CS)。INSERTINTOStudent(Sno,Sname
2、,Ssex,Sage,Sdept)VALUES(‘05010’,‘郑冬’,‘女’,21,‘CS’)或者:INSERTINTOStudentVALUES(‘95010’,‘郑冬’,‘女’,21,‘CS’)注意1:当新增元组指明了每个列值,且和表中属性列的排列顺序一致,则INTO子句中的列名可省略。INSERTINTOSC(SNO,CNO)VALUES(‘05010',‘3')[例2]在SC表中插入一条选课记录(’05010’,’3’)注意2:对于INTO子句中没有出现的属性列,则新元组在这些列上将取空值。(见P115)思考:其他写法2)插
3、入多个元组[例3]对每一个系求学生的平均年龄,并把结果存入数据库;假设当前有一空表Deptage(Sdept,Avgage)。INSERTINTODeptageSELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept语法格式为:INSERTINTO<表名>[(<列名1>,…)]<子查询>用于生成要插入的批量数据3.5.2修改数据SQL使用UPDATE语句对表中的一行或多行记录的某些列值进行修改,其语法格式为:UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>]…[WHERE<条件>]其
4、中:<表名>是指要修改的表;SET子句给出要修改的列及其修改后的值;WHERE子句指定要修改的元组应当满足的条件,WHERE子句省略时,则修改表中的所有元组。考虑:在日常应用中,执行修改数据操作的实例有哪些?[例4]修改学号为05003的学生姓名为王小敏,年龄为23。[例5]将所有学生年龄增加1岁。[例6]将所有数学系学生的3号课成绩全部清零。UPDATEStudentSETSname=‘王小敏’,Sage=23WHERESno=’05003’UPDATEStudentSETsage=sage+1UPDATESCSETGrade=0WH
5、ERECno=‘3’andSnoIN(SELECTSnoFROMstudentWHERESdept=‘MA’)3.5.3删除数据使用DELETE语句可以删除表中的一行或多行记录,其语法格式为:DELETEFROM<表名>[WHERE<条件>]其中,<表名>是指要删除元组的表。WHERE子句指定待删除的记录应当满足的条件;WHERE子句省略时,则删除表中的所有记录。考虑:日常应用中,删除数据的实例有哪些?[例7]删除学号为‘05002’的学生。[例8]删除所有课程信息DELETEFROMStudentWHERESno=‘05002’DEL
6、ETEFROMCourse注意:执行此语句后,Course表即为一个空表,但其定义仍存在数据字典中。综合练习1:图书馆DBperson(pno,pname,dept)book(bno,bname,class,author,pub,price)loan(pno,bno,btime,rtime)1)删除‘MA’系的所有借书记录;2)将‘李平’的还书时间均置为空值;3)将(‘11012’,’王敏’,‘IS’)插入person;4)表TJXX(dept,num)中保存着每个系未还书的总数:删除TJXX中的所有记录;将当前每个系未还书的统计情况保
7、存到该表中;综合练习2:salesperson(sname,age,salary)orders(cname,sname,amount)custormer(cname,city,type)1)向salesperson中插入30岁Jack的记录,薪水未知;2)向新表high(sname,age)插入记录,这个表中的销售人员的薪水至少是100000;3)删除客户ABERCONSTRUCTION的所有订单记录;4)将所有的销售员的工资加10%;视图的特点:虚表,是从一个或几个基本表(或视图)导出的表;只存放视图的定义,不存放视图对应的数据;基表
8、中的数据发生变化,从视图中查询出的数据也随之改变;视图一经定义,可以和基本表一样被查询。但对视图的更新操作则有一定的限制。3.6视图3.6.1定义视图1建立视图语句格式CREATEVIEW<视图名>[(<列