您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 子项目4表数据的管理
子项目4表数据的管理★情景描述根据需求分析的要求,实验室财务管理系统采用模块化管理,当需要添加新模块时,只需要在页面增加相应模块链接锚文本即可,这样的设计可以满足系统可扩展性的需要。该系统进行界面设计完成后,就可以编写功能代码,通过调用SQL语句完成数据表的增添、更新、删除操作。4.1增添记录数据表是数据库存储数据的一种逻辑结构,数据表创建好后,往往是一张空表。因此,向表是添加数据是表操作的首要步骤4.1.1使用图形工具添加数据(1)在对象资源管理器中,选中要添加数据的表tbuserinfo,右键,在弹出的快捷菜单中选择命令“打开表”,如图4-2所示。(2)在打开的表窗口内,根据字段的意义和字段的数据类型,输入用户信息。输入完毕后,单击工具栏上的,关闭窗口。(3)再通过“打开表”菜单,在打开的表窗口内,可以检查数据是否保存成功。4.1.2使用SQL语句添加数据使用图形工具向表中添加数据是比较方便的,但是也容易产生一些错误。要完成实验室财务管理系统的开发,不可能使用手动方式去完成添加数据的操作,还需要使用程序调用SQL语句,向数据表中添加数据。鼠标右键单击数据库tbuserinfo,选择快捷菜单中的“编写表脚本为”,在弹出的二级子菜单中选择“INSERT到”,在弹出的三级子菜单中选择“新查询编辑器窗口”,出现如图4-3所示的窗口。所产生的代码如下:INSERTINTO[FM].[dbo].[tbuserinfo]([userid],[username],[userpwd],[usertype],[userflag])VALUES(userid,bigint,,username,varchar(20),,userpwd,varchar(20),,usertype,char(2),,userflag,char(1),)插入数据的语法格式为:INSERT[INTO]表名[(字段列表)]VALUES(相应的值列表)增添记录的规则如下:1插入指定属性列时,插入数据的顺序必须与指定列顺序一致。2如果INSERT语句违反约束或规则,或者是插入的数据与该列定义的数据类型不兼容,则插入操作将失败,并且数据库引擎会提示错误信息。3如果VALUES后面的值是字符型的,必须要用单引号引起来。4INSERT语句后可以使用SELECT(在后面章节会讲解)语句增添多条记录,但是一旦加载的值出现违反规则或约束的情况,就会导致终止整个语句,不会插入任何行。(1)插入一条记录--增加用户信息INSERTINTOtbuserinfo(userid,username,userpwd,usertype,userflag)VALUES(15,'李华','李华','2','1')方法二:--打开实验室财务管理系统USEFMGO--增加用户信息INSERTINTOtbuserinfoVALUES(15,'李华','李华','2','1')(2)插入多条记录--打开实验室财务管理系统USEFMGO--新建在读学生表CREATETABLE[dbo].[在读学生表]([userid][bigint]NOTNULL,[username][varchar](20)NULL,[userpwd][varchar](20)NULL,[usertype][char](2)NULL,[userflag][char](1)NULL)GOINSERTINTO在读学生表SELECT*FROMtbuserinfowhereuserflag='1'将代码输入查询窗口中,点击“执行”按钮,就可以看到消息窗口提示:有多少行受到影响,说明执行成功。通过右键“在读学生表”,如图4-5所示,可以发现所有在读学生的信息。练习1、向tbuserinfo表中添加记录Userid为20,username为张荣,userpwd为zhangrong,usertype为2,userflag为14.2更新记录更新操作是是实验室财务管理系统中必不可少的操作,例如,实验室每年都要送走和迎来一批学生,人员的改变就涉及到权限的更改,如下图4-6所示的用户管理界面所示。用户的分为三类,分别为:经费本管理人员、财务管理人员、一般人员,下面主要以“用户管理”模块为例,来说明更新记录的语法格式和基本操作方法。4.2.1使用图形工具更新记录对数据表中更新记录的操作和添加数据过程类似,可以通过以下步骤实现:(1)选择要更新的数据库FM,展开表节点,选中tbuserinfo,右键,在打开的快捷菜单中选择“打开表”,可参见图4-2“打开表”命令菜单。(2)在打开的表窗口内,修改要更新的记录,然后单击工具栏上的,即可。(3)再通过“打开表”菜单,在打开的表窗口内,可以检查数据是否更新成功。4.2.2使用SQL语句更新记录选择需要更新的数据库FM,展开表节点,鼠标右键单击需要更新的数据表tbuserinfo,选择“编写表脚本为”选项,弹出二级子菜单单击“UPDATE到”,在弹出的三级子菜单中选择“新查询编辑器窗口”,出现如图4-7所示的窗口。图4-7更新数据操作所产生的代码如下:UPDATE[FM].[dbo].[tbuserinfo]SET[userid]=userid,bigint,,[username]=username,varchar(20),,[userpwd]=userpwd,varchar(20),,[usertype]=usertype,char(2),,[userflag]=userflag,char(1),WHERE搜索条件,,经过总结,UPDATE的语法格式如下:UPDATE表名SET{列名={表达式|DEFAULT|NULL}[,...n]}[WHERE检索条件表达式]更新记录的规则如下:(1)如果对行的更新违反了某个约束,可者是与数据类型不一致,则取消该语句、返回错误、修改就不会发生。(2)当UPDATE语句在表达式求值过程中遇到算术错误(溢出、被零除或域错误)时,则不进行更新。(1)更新一行记录中的某一列在4.1章节里,我们增加了用户“李华”的基本信息,其中,李华的用户类型为2(一般人员),由于实验室有权限为财务管理人员的学生毕业,现将财务管理人员的权限赋予李华,其中,0经费本管理人员、1财务管理人员、2一般人员。具体的实现过程为:--打开实验室财务管理系统USEFMGO--更新数据UPDATEtbuserinfoSETusertype='1'WHEREusername='李华'GO练习使用SQL语句,向tbuserinfo表中插入一普通用户,然后再将其权限变为超级用户(2)更新一行记录在用户信息表内插入一条数据,但是由于不小心,只插入了用户编号userid为16,现使用UPDATE语句完善用户信息。--打开实验室财务管理系统USEFMGO--增加用户信息INSERTINTOtbuserinfo(userid)VALUES(16)GO--更新数据UPDATEtbuserinfosetusername='张欣',userpwd='ZX',usertype='2',userflag='1'whereuserid='16'练习首先在用户表中插入userid为30,然后,再更新该用户的信息,username为李刚,userpwd为:ligang,usertype为1,userflag为1(3)更新所有记录中的某一列在用户管理模块内,有一个重置密码的功能,如下图4-11所示,用户在忘记密码时,将这一情况反映给经费本管理人员,经费本管理人员将该用户的密码设置为0。但是在系统调试好后,要把所有的用户的密码重置为0,让用户能够登录系统,然后再由用户修改密码。所使用的SQL语句如下:--打开实验室财务管理系统USEFMGO--重置密码UPDATEtbuserinfosetuserpwd='0'GO任务将tbuserinfo表中,所有userflag为1的用户的usertype设置为24.3删除记录随着数据库的使用和对数据的修改,表中可能存在着一些无用的数据,这些数据不仅占用存储空间,还会影响修改和查询的速度。为了提高数据库的执行效率,需要经常对数据库中的数据进行清理,对数据库中不需要或是重复的数据进行删除。在实验室事件模块里,如果用户在此模块新增了实验室事件,在用户还没有提交的情况下,可以修改该事件的明细,如图4-13所示。本部分将以删除事件明细和FM数据库中在4.1所创建的“在读学生表”为例,说明删除记录的语法格式和基本操作方法。4.3.1使用图形工具删除记录4.3.2使用SQL语句删除记录所产生的代码如下:DELETEFROM表名WHERE搜索条件,,DELETE是删除的关键词,表明该操作的性质;FROM表示要删除行来自的表;WHERE后面跟搜索条件,作用是指定待删除的记录应当满足的条件,当WHERE子句省略时,则删除表中的所有记录。删除记录的规则如下:(1)如果DELETE语句在删除数据的时候,违反了某个约束,则会导致操作失败。如果使用DELETE语句删除了多行,而在删除的行中有任何一行违反某个约束或规则,则将取消该条语句的执行,返回错误且不删除任何行。(2)若是没有指定WHERE条件,则删除表中的所有行。(3)如果DELETE语句存在算术错误,如溢出、被零除等,数据库引擎将处理这些错误。(1)删除一条记录删除事件明细界面,我们可以清楚的看到要删除表tbedetail中一条记录,经过查找,该记录所对应的实验室编号(ed_id)为38,删除的SQL代码为:--打开实验室财务管理系统USEFMGO--删除数据DELETEFROMtbedetailWHEREed_id=38GO练习删除tbedetail表中ed_id为10的事件明细(2)删除多条记录在“在读学生表”内存储的是还没有毕业学生的信息,他们的权限有三种:0经费本管理人员、1财务管理人员、2一般人员。现在我们要将所有一般人员删除,统计经费本管理人员和财务管理人员的信息。SQL代码如下:--打开实验室财务管理系统USEFMGO--删除数据DELETEFROM在读学生表WHEREusertype='2'GO练习删除“在读学生表”中所有权限为1的用户(3)删除表内所有数据在统计完“在读学生表”的信息后,需要对该表进行清理,删除该表内的所有数据,具体操作如下:--打开实验室财务管理系统USEFMGO--删除数据DELETEFROM在读学生表练习新建超级用户表,tbuserinfo中的所有超级用户的信息插入到该表中,然后使用删除语句将其删除
本文标题:子项目4表数据的管理
链接地址:https://www.777doc.com/doc-1063324 .html