SQL语句之数据更新(删除数据)
1、不在需要的数据,就要执行删除操作,删除语法如下:
DELETE FROM 表名称 [ WHERE 删除条件(s) ] ;
其中,WHERE子句里面,依然可以使用子查询进行操作。
范例:删除雇员编号是7566的雇员信息
DELETE FROM myemp WHERE empno=7566 ;
范例:删除雇员编号是7788、7902的雇员信息
DELETE FROM myemp WHERE empno=7788 OR empno=7902 ;
DELETE FROM myemp WHERE empno IN(7788, 7902) ;
注意:用了rollback回退操作!所以7566的数据还存在
范例:删除高于公司平均工资的雇员信息
DELETE FROM myemp WHERE sal>(SELECT AVG(sal) FROM myemp)
范例:删除全部记录
DELETE FROM myemp ;
一定要记住,在任何的系统之中,删除操作都属于极其危险的操作。实际上,一个稳定的系统,对于删除操作,都是具备一个逻辑删除和物理删除的两种方式:
◆ 物理删除:直接执行DELETE FROM,彻底从表中删除记录。
◆ 逻辑删除:增加一个逻辑的字段,例如:有一个flag字段,如果flag=1表示已经被删除,如果flag=0表示没有被删除。
如果真执行的是删除操作,那么,就相当于修改了flag字段的内容,同时在每次查询的时候,只需要增加一个WHERE限定条件(SELECT * FROM ... WHERE flag=1)。
【总结】
1、 更新操作,要比查询操作,更加的简单(语法都固定)。
2、 所有的更新操作,每次更新完成之后,都一定会返回更新的数据行数,如果没有更新,则返回0。
上一期头条文章作品我们分享了用SQL+Excel准数据库工作表区域删除的形式完美呈现了对Excel准数据库实施删除数据的功能。从中我们先是用了SQL查询语句“Select 字段列表 From [准数据库Excel数据表$区域] Where 待删除数据的条件”,然后再用Excel数据区域的.Delete方法,轻松实现了Excel准数据库数据表数据的删除,再次打破了“Excel Home”论坛里大多数大咖宣称的用SQL不能对Excel准数据库数据的删除的纠结瓶颈。
今天,我们来继续来继续分享用SQL方法对Excel准数据库数据记录的修改。修改是可以直接办到的,那就是用SQL的Update操作实现的,为了我们操作的友好性,我们还是应该先查询要修改的数据记录并将要修改的数据记录内容传递到字段内容修改区域,再在此基础上修改并将修改的语句信息回传给Update实施真正意义上的SQL修改操作。如何具体实现呢?今天我们就手把手以完整的成型案例给各位粉丝朋友细细分享吧!
我们在修改前的回传参数应该力求智能分析我们是否真正修改过字段域内容,如果修改过则要返回修改状态为真,若比对后发现只是原封不动地回传原数据则我们必须给出数据原样覆盖的提示。还有就是修改或者覆盖了数据的结果应该及时反馈到工作表中去定位,这样更方便用户看到修改的数据。
一、SQL查询待修改Excel准数据库数据工作表数据语法规范
语法:Select 字段列表 From [准数据库Excel数据表$区域] Where 待修改的条件
说明:查询当前操作表待修改的数据记录信息
举例:Select 字段列表 From [Sheet2$A1:D] Where 序号=…
二、SQL修改Excel准数据库数据工作表数据语法规范
语法:Update [准数据库Excel数据表$区域] Set 字段名1=值1,字段名2=值2……Where 条件
说明:实施对当前操作表修改数据记录
举例:Update [Sheet2$A1:D] Set 姓名=‘张飞’,年龄=25 Where 序号=5
三、VBA后台修改数据记录窗体设计
在该窗体里,我们增设有提示作用的ActiveX类型的标签以及下拉组合框、文本框、命令按钮等。界面如下图所示
图1 后台修改数据记录的VBA窗体设计
四、修改数据记录的操作体验
(一)选择Excel前端界面的表单下拉组合框的操作类别“修改数据”列表项,准备弹出修改数据记录的窗体。如下图所示
图2 选择表单下拉组合框的“修改数据”选项
(二)在弹出的修改数据窗体中,修改字段区域呈禁用状态(只有输入或选择【序号】关键字才能激活修改字段区域)。此时,如果我们点击标题栏的<X>按钮,则弹出取消数据修改的消息框提示。如下图所示
图3 点击修改数据窗体标题栏的<X>按钮
(三)在弹出的修改数据窗体中如果在序号字段域下拉组合框未输入或选择任何序号。而此时,如果直接点击<保存修改的数据>按钮,则会以消息框方式提示序号字段关键字区域为空,建议用户必须先输入或选择序号字段关键字的情况。如下图所示
图4 序号字段关键字区域为空的情况
(四)在弹出的修改数据窗体中如果在序号字段域下拉组合框输入或选择了序号,但却人为地删除了原有呈现的修改字段区域本来出现的基础数据的情况下。而此时,如果点击<保存修改的数据>按钮,则会以消息框方式提示修改字段域内容未输入完善的情况。如下图所示
图5 修改字段域内容未输入完善的情况
(五)如果在弹出的修改数据窗体中选择或输入了序号字段域关键字内容,则后续的修改字段域将反馈出由序号决定的记录信息,此时我们如果不在这些原有数据基础上加以修改,而直接点击<保存修改的数据>按钮,则会以消息框方式提示只是对原数据原样覆盖的提示。如下图所示
图6 修改字段域内容原封不动显示简单覆盖
(六)如果在弹出的修改数据窗体中选择或输入了序号字段域内容,则后续的修改字段域将反馈出由序号决定的记录信息,此时我们如果在这些原有数据基础上加以修改,然后点击<保存修改的数据>按钮,则会以消息框方式提示对异动数据修改成功的提示。如下图所示
图7 修改字段域内容修改后显示修改成功
(七)数据成功修改或原样覆盖后,会反映到应用操作的工作表,我们这里以Sheet2作为SQL操作表。如下图所示
图8 成功修改或原样覆盖的数据记录反映到操作表
好了,看了结果,那我们来看看后台VBA代码如何实现的吧,注意哦,我的代码都加了详尽的注释,目的是为了大家更好理解!
五、SQL修改准数据库Excel的VBA后台功能代码解析截图
(一)模块1中相关“修改数据”功能的代码截图
图9 “修改数据”模块1中代码截图1
(二)修改数据记录窗体的代码截图
图10 修改数据记录窗体代码截图1
图11修改数据记录窗体代码截图2
图12 修改数据记录窗体代码截图3
到这里,我们在准数据库Excel中实现数据记录的修改操作就算分享完了。总结起来,就是先用SQL查询待修改序号关键字对应的记录情况,并将查询到的记录信息反馈到修改窗体的修改字段域中便于用户修改;其次就是将修改窗体里指定记录的修改信息和修改条件信息一并回传到外部模块1中去,再利用SQL的Update方法施加对Excel准数据库数据表记录的真正意义上的修改操作;最后,精准定位SQL操作的工作表Sheet2中修改的记录呈选定状态,以便让用户更醒目看到是那条记录被作了修改或覆盖操作。各位粉丝朋友可以大胆去尝试实现准数据库Excel工作表数据记录的修改吧,相信大家一定能学会哦,好了,各位去动手试试,嘿嘿!
好了,希望本次分享能给各位工作带来工作上同样的帮助。另外,下期头条文章作品我们将继续分享关于Excel准数据库数据记录用SQL方式的多角度查询以及原始数据恢复等操作,敬请大家多多留意关注哦!
最后,还是非常感谢大家不离不弃的持续关注、推广和点评我的原创作品哦!谢谢!顺便温馨提醒各位粉丝朋友,疫情快过了,但天气开始热了,各位粉丝朋友也要多加注意防暑降温哦!
下一篇:三寸天堂为什么是三寸
发表评论