数据库概论_SQL_数据更新.pptx

数据库概论_SQL_数据更新.pptx

ID:55781304

大小:7.19 MB

页数:23页

时间:2020-06-07

数据库概论_SQL_数据更新.pptx_第1页
数据库概论_SQL_数据更新.pptx_第2页
数据库概论_SQL_数据更新.pptx_第3页
数据库概论_SQL_数据更新.pptx_第4页
数据库概论_SQL_数据更新.pptx_第5页
资源描述:

《数据库概论_SQL_数据更新.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章SQL数据更新SQL数据更新功能InsertDeleteTruncateUpdateOutputMerge@@ROWCOUNT返回受上一语句影响的行数任何不返回行的语句将这一变量设置为0select*fromSselect@@rowcount插入操作的命令格式insertinto表名[(列名[,列名]…]values(值[,值]…)插入一条指定好值的行insertinto表名[(列名[,列名]…](子查询)插入子查询结果中的若干行插入显式行insertintoPROFvalues(P123,“王明”,35,D08,498),(P

2、124,“李明”,38,D01,698)insertintoPROF(pno,pname,dno)values(P123,“王明”,D08)思考:salary取何值?如何防止插入带有空值的行?插入子查询将平均成绩大于90的学生加入到EXCELLENT中insertintoEXCELLENT(sno,grade)selectS#,avg(grade)fromSCgroupby(sno)havingavg(grade)>90selectS#,avg(grade)intoEXCELLENT(sno,grade)fromSCgroupby(s

3、no)havingavg(grade)>90批量插入复制一个数据文件至数据库表中bulkinsert表名from数据文件with(batchsize=指定批处理中的行数,check_constraints,datafiletype=数据文件类型,fieldterminator=字段终止符,maxerrors=所容忍的最大错误数目,rowterminator=行终止符)删除操作的命令格式deletefrom表名[where条件表达式]从表中删除符合条件的元组如果没有where语句,则删除所有元组示例:清除所有选课记录deletefrom

4、SC删除操作示例删除王明老师所有的任课记录deletefromPCwherepnoin(selectpnofromPROFwherepname=“王明”)deletefromXfromPCXjoinPROFonX.pno=PROF.pnowherepname=“王明”删除操作删除低于平均工资的老师记录deletefromPROFwheresalary<(selectavg(salary)fromPROF)思考:是先找到所有符合条件的行,一并删除,还是找到一个删除一个?清空表truncatetable删除表中的所有行,而不记录单个行删除

5、操作truncatetable在功能上与不带where子句的delete语句相同。但truncatetable比delete速度快,且使用的系统和事务日志资源少identity计数器重置为种子值更新操作的命令格式update表名set列名=表达式

6、子查询列名=[,表达式

7、子查询]…[where条件表达式]指定对哪些列进行更新,以及更新后的值是什么示例:老师工资上调5%updatePROFsetsalary=salary*1.05更新操作将D01系系主任的工资改为该系的平均工资updatePROFsetsalary=(selectavg

8、(salary)fromPROFwheredno=D01)wherepno=(selectdeanfromDEPTwheredno=D01)更新操作当C1课程的成绩小于该课程的平均成绩时,将该成绩提高5%updateSCsetgrade=grade*1.05wherecno=C1andgrade<(selectavg(grade)fromSCwherecno=C1)如果是对任何一门课程呢墨菲定律工资超过2000的缴纳10%所得税,其余的缴纳5%所得税①updatePROFsetSAL=SAL*0.9whereSAL>2000②upda

9、tePROFsetSAL=SAL*0.95whereSAL<=2000updatePROFsetSAL=caseSALwhenSAL>2000thenSAL*0.9whenSAL<=2000thenSAL*0.95执行顺序是①,②,还是②,①?1-(1-p)n行拷贝:覆盖多列R(ID,A,B),S(ID,A,B)updateRsetA=(selectS.AfromSwhereR.ID=S.ID),B=(selectS.BfromSwhereR.ID=S.ID)updateRsetR.A=S.A,R.B=S.BfromRjoinSonR

10、.ID=S.IDOutput:记录更新历史执行修改操作只返回影响了多少行的信息,无从获知到底影响到了哪些行。如果在修改操作语句中带上output,就可以输出具体的影响信息output{deleted

11、inserted}.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。