人事管理系统数据库课程设计_第1页
人事管理系统数据库课程设计_第2页
人事管理系统数据库课程设计_第3页
人事管理系统数据库课程设计_第4页
人事管理系统数据库课程设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年4月19日人事管理系统数据库课程设计文档仅供参考<数据库管理实务>实验报告课程号:B0900980实验项目:数据库设计、创立、管理,数据库操作学号姓名潘欢同组人学号姓名自己实验地点工程学院机房(文波)指导教师肖慎勇时间6月评语(要求):按时完成实验;实验内容和过程记录完整;回答问题完整、正确;实验报告的撰写认真、格式符合要求。成绩教师签字肖慎勇一、实验目的1.理解并掌握数据库设计的概念、方法和步骤。2.初步应用数据库设计方法。了解需求分析的内容。3.重点运用ER模型进行概念设计,然后将ER模型转换为关系模型。4.深入理解SQLServer数据库的存储结构。5.深入理解SQLServer的数据类型、表对象设计与定义。6.掌握SQLServerManagementstudio的应用。运用交互方式和命令方式建立数据库和表。7.认识和掌握Transact-SQL的数据库操作。8.深入理解视图意义。掌握SQLServer中创立、管理与应用视图的方法。9.深入理解数据库安全的概念。10.深入理解SQLServer的安全体系框架。11.掌握登录与服务器角色的概念、操作与应用。掌握数据库用户、固定角色、自定义角色、架构的概念、操作与应用。掌握数据库权限的概念、操作与应用。12.理解事务的概念。13.深入理解并掌握服务器编程的意义及方法。14.能够编写各种自定义函数和存储过程。。15.理解触发器,并能够编写、应用触发器。二、实验设备(环境)及要求PC、WindowsXP、SQLSERVER三、实验内容及要求实验项目:人事综合管理系统经过调查、收集信息、分析,写出分析与设计报告。1.简要的系统需求分析包括业务分析、功能需求分析、信息需求分析。试分析该系统的基本业务,计算机信息系统需要完成的基本功能、信息系统需要处理的信息。2.概念设计设计系统的概念模型,采用ER模型。3.逻辑设计将ER模型为关系模型,指出每个关系的主键、外键和必要的约束。4.写出数据库的物理设计包括存储组织结构、表的结构设计等。5.T-SQL命令方式创立数据库的操作利用SQL命令创立数据库文件、表、索引、联系和主键、外键等约束。(实验报告应写出实验的过程,包括必要的截图。)6.利用T-SQL命令增加、删除、修改数据。7.利用T-SQL命令进行数据的检索和统计根据自己设计的数据库和输入的数据,写出至少10个查询要求及对应的SQL查询命令,应该包含如下功能:投影和选择;多表连接;分组统计与HAVING;子查询;查询结果保存。8.利用SQL命令创立视图对象根据开发的系统的需要,至少设计三个视图:基于单表的、包含多表连接的、包含统计运算的。利用SQL对视图进行查询。9.对视图进行插入、删除、修改数据操作。体会视图与表的异同。10.编写自定义函数。(1)编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字符串。写出源代码。(2)编写一个自定义函数,能够实现参数化查询的功能。自己设定函数的具体要求,然后编写出来。11.编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。自己确定过程的具体要求,然后编写出来。12.编写一个实现修改表的触发器,实现完整性控制。13.设置服务器身份验证模式。用命令创立若干不同验证模式的登录账户。14.将部分登录赋予服务器角色。然后撤消。15.将部分登录映射到你的数据库中成为用户。16.创立自定义角色、架构。17.经过角色给用户授权。18.直接给用户授权,验证其获得权限前后的操作差别。19.删除用户和自定义的角色。四、回答问题1.你如何认识需求分析在系统开发中的地位和重要性?答:我觉得需求分析就是把客户的功能描述转化为开发员所能理解的功能描述,并在客户描述的基础上去除不合理的地方,补充系统缺失的地方,最后为系统的概要设计,详细设计提供准确,有效的数据基础。在需求分析中要把系统所要处理的业务理解透彻,并把其中的信息整理归类。然后还需要把整个系统所要实现的功能的逻辑思路理清楚,这些工作都是系统开发能够继续做下去的基础。如果需求分析没有做好,或者说对整个系统的总体框架不明晰,则在后面的设计中会很混乱,出现很多的问题。因此我觉得需求分析能够说是系统开发的核心部分,做好这步,后面的就能清晰的进行了。2.设计ER图、关系模型分别属于数据库设计的哪一阶段?答:ER图属于概念设计阶段;关系模型处于逻辑设计阶段3.主键、外键对于关系数据库的意义何在?答:主键是对表的约束,保证数据的唯一性!外键是建立表于表之间的联系,方便程序的编写!主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。4.在数据库存储结构设计时要考虑哪些因素?答:首先要确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排,确定系统配置。同时要综合考虑存取时间、存储空间利用率和维护代价3个方面的因素。把它们进行权衡,选择一个折中的方案。5.在表设计时对于数据类型的选择和使用如何考虑?答:(1)首先要清楚理解数据库中各种数据类型的用法和范围;(2)应该根据字段的实际类型来考虑数据类型;(3)要估计表中数据的大小范围,来确定数据类型的大小,避免空间不足或者浪费。6.交互式如何实现表之间的联系?SQL命令如何实现表之间的联系?答:(1)交互式:在管理平台中,展开要操作的数据库,选择”数据库关系图”选项,然后单击鼠标右键,在弹出的快捷菜单中选择”新建数据库关系图”命令,在弹出的窗口中选择要建立关系的表后,则会弹出数据库关系图设计窗口。然后右键单击关系图的空白页面,在弹出的快捷菜单中,能够新建或添加数据库中已定义的表,在该表的关联菜单中选择”属性”选项,能够创立或定义该表的关系、键、索引和约束或修改当前的附加特性。(2)SQL命令:ALTERTABLEADDCONSTRAINTconstraint_namePRIMARYKEY[CLUSTERED|NONCLUSTERED][FOREIGNKEY]REFERENCESref_table7.如果在定义表时进行了主键、外键以及约束等完整性设置,对于数据的输入有何影响?试举例说明。答:定义主键:定义主键来强制不允许空值的指定列中输入值的唯一性。如果在数据库中为表定义了主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。如果主键包含不止一列,则在一列中允许有重复值,但主键中所有列值的每个组合必须唯一。定义外键:外键引用完整性表示得到正常维护的表之间的关系。表中的数据只应指向另一个表中的现有行,不应指向不存在的行。主键约束:使用单列或者多列组合,表示每一条记录的唯一性,值不能为空;外键约束:

是为了加强数据表之间的关键的表中的单列或者多列值,必须依赖另外的表存在;唯一约束:不允许数据库中的某一列数据有重复,可是允许有空值存在。主键和唯一性约束定义了表中记录的唯一性,可是主键列的值不鞥为空,而唯一键约束的列的值能够为空值;8.用INSERTINTO命令输入,如果数据与字段数量和要求不一致有什么问题?当表定义中有默认值的时候,插入记录是否能够省略该字段的数据?答:如果数据与字段数量和要求不一致,那么会插入失败,而且SQLServer将显示错误信息。有默认值时能够省略该字段数据,系统会为该列提供默认值。9.HAVING子句有什么作用?答:HAVING字句与WHERE子句一样,也能够起到按条件选择记录的功能,但HAVING子句是作用于组,必须与GROUPBY子句连用,用来指定每一分租内应满足的条件。10.当通配字符作为普通字符参与匹配查询时,如何解决这样的问题?答:转义,对通配符加[]。11.可否利用视图进行数据的插入、删除、修改?答:能够经过视图对基础表中的数据进行检索、添加、修改和查询。可是插入、修改、删除数据是只能做单表的,基于多表的视图不能够删除和修改。12.根据自己的体会,谈谈视图在数据库体系中的作用。模式答:利用视图能够简化用户操作数据的方式。可将经常使用的连接、投影、联合查询和选择查询定义为视图,这样每次对特定的数据执行进一步操作时,不必指定所有条件和限定。除此之外还能够定制数据,导出数据。还能够用GRANT和REVOKE命令为各种用户授予在视图上的操作权限,这样经过视图,用户只能查询或修改她们各自所能见到的数据,数据库中的其它数据对她们来说是不可见的或不可修改的。保证数据库的安全性。13.视图是如何保存的?视图中的数据是否真的存储在文件中?答:保存视图将更改服务器上的视图定义。当您保存视图时,基础数据库引擎将使用新的视图定义。在查询和视图设计器中打开视图定义并对其进行修改。(1)在查询和视图设计器中打开视图定义并对其进行修改。(2)从”文件”菜单中单击”保存view_name”,其中view_name是打开的视图的名称。14.SQLSERVER有几种身份验证模式?区别是什么?不同验证模式的登录账户有何区别?答:有两种(1)windows身份验证模式,是默认的验证模式,使用windows操作系统的安全机制验证用户身份,只要用户能够经过windows用户账号验证,而且是SQLServer的登录账户,即可连接到SQLServer而不用进行身份验证,只适用于能够提供有效身份验证的windows操作系统。(2)混合的验证模式:在该模式下,Windows和SQLServer两种验证模式都可用,对可信任连接用户,直接采用windows的身份验证,否则采用SQLServer模式,用户在连接SQLServer时必须提供登录名和密码,SQLServer自己执行认证处理,如果输入的登录信息与系统表syslogins中的某几条记录相匹配时表明登录成功。15.Sa账户有何特点?答:Sa账户是SQLServer的特殊账户,sa账户拥有服务器和所有的数据库。即Sa账户拥有最高的管理权限,能够执行服务器范围内所有操作。它是以SQLServer身份验证的,因此必须设置一个密码。同时,sa账户的属性不能够更改,密码能够修改。Sa登录时无法删除的。16.共有几种服务器角色?最高权限的角色是什么?能够创立数据库的角色是哪个?答:共有8种固定服务器角色,分别是:sysadmin,serveradmin,setupadmin,securityadmin,processadmin,dbcreator,diskadmin,bulkadmin;同时每一个登录用户都属于public服务器角色。最高权限的角色是sysadmin;能够创立数据库的角色是:sysadmin,dbcreator;17.数据库用户和登录账户有什么关系?guest是什么用户?有何作用?答:这是两种不同级别的安全机制,登录账户是SQLServer级的安全性设置,而数据库用户则是数据库级的安全性设置。登录账户用于登录服务器,可是当某一用户要访问某个数据库时,除了能够成为服务器的一个登录以外,还必须成为这个数据库的用户账户,即获得一定的授权。数据库用户账号在一般情况下是从某个登录账户中映射过来的。Guest是来宾用户,是用来共享文件的。任何一个登录都能够以此身份访问数据库。Guest自动本身只具有public权限。也能够由其它用户授权。18.数据库角色有哪两类?PUBLIC角色有何特点?答:数据库角色分为固定的数据库角色和用户定义数据库角色。每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库内。用户定义数据库角色是用户根据工作的职能定义一系列角色,并给每个角色指派了适合这项工作的权限。从而在数据库中管理这些权限。PUBLIC角色的特点:默认不具有任何权限,但用户可对此角色进行授权,她不能被删除,是所有user自动拥有的角色。数据库中的每个用户都属于public数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给public角色。如果没有给用户专门授予对某个对象的权限,她们就使用指派给public角色的权限。19.用户与架构有什么关系?系统默认架构是什么?怎样为用户指定架构?答:SQLServer中数据库用户和构架是隐式连在一起的,架构将用户和权限之间建立了一个间接地方式。数据库架构是一个独立于数据库用户的非重复命名空间,能够将架构视为对象的容器。每个数据库用户都是与该用户同名架构的所有者;而在SQLServer中构架和用户是不同的实体。一个对象只能属于一个架构,就像一个文件只能存放于一个文件夹中一样。与文件夹不同的是,架构是不能嵌套的。系统默认架构是dbo架构;经过使用CREATEUSER和ALTERUSER语句,能够分配一个默认架构;也能够经过SSMS在该用户的属性下面分配一个默认架构。20.什么是安全对象?怎样为数据库用户指定查询表的权限?答:安全对象是SQLServer数据库引擎授权系统控制对其进行访问的资源。安全对象范围有服务器、端点和架构。21.简述自定义函数、存储过程和触发器的异同。答:(1)自定义函数、存储过程、和触发器都是模块化设计的类型。(2)函数最后是返回一个值,在表示式中调用,定义函数时要定义函数的函数名、参数、函数值类型和函数体。(3)存储过程经编译后放在数据库服务器端,供客户端调用,处理一件事或完成一个功能,有单独的调用命令。调用过程时,是实际参数与形参的传递(值传递和名传递两种)。定义过程时需定义过程名、参数、过程体。它能够实现完整性控制机。(4)触发器实质是一种特殊类型的存储过程,它在插入、修改或删除时触发执行。能够实现由主键和外键所不能保证的参照完整性和数据的一致性。22.什么是游标?应用游标的步骤是什么?答:游标是对表的运用的一种机制,相当于在表上定义一条指针,把表中的数据按一行一行的来读取。把表中的数据取出来放在高级语言的变量中,是SQL语言与高级语言之间的桥梁。应用游标的步骤:(1)声明游标(2)打开游标,即把外存上的数据调入内存,运行查询(3)提取数据(4)关闭游标(5)释放游标五、分析讨论经过实验我觉得最重要的是系统分析,逻辑设计和物理设计时一定要认真想清楚每张表的属性和它们之间的相互联系,这样在后面使用查询的时候才不会出错,如果前面没做好,后面做查询的时候就会出现各种错误,如数据结构定义不统一,外键冲突等问题。除此之外要做好一个数据库系统,要掌握好学习中的每一步,平时上课学习很有用,好好学了,做的时候就会比较轻松。除此之外,我觉得函数和触发器那部分比较难,只会实现简单的查询、删除、修改控制。对基于多表的带参函数运用还比较弱。以下为本次实验的过程记录报告撰写。(可包括必要的截图)人事综合管理系统信管1003潘欢1.简要的系统需求分析人事管理系统是非常通用的管理信息系统,是企事业单位实现办公自动化的前提和基础。一个公司要正常运作必定有一个健全的人事管理系统,来管理员工的信息,包括员工编号、姓名、性别、民族工资及奖惩考勤情况。除此之外,系统还供员工查询个人和公共信息,管理员对员工信息进行更改或删除,管理公司的人事变更和管理,大大提高公司内部员工管理的工作效率。1.1业务分析(1)部门管理:对公司的部门进行编号,将每一个部门的部门号、部门名称、部门描述和部门负责人信息统一保存在部门信息档案中。当新增或去除某个部门时,将其信息添加到部门信息档案或或从中删除。当部门信息发生变化时,修改对应和相关的属性值。(2)员工信息管理:对公司里的所有员工进行统一编号;将每一位员工的信息录入到员工信息档案中。对新聘用的员工,将其信息加入到员工信息档案中;对于解雇的员工,将其信息从信息档案中删除。当员工的信息发生变动时,修改员工信息档案中相应的属性。同时供员工自己查询使用。其下还包含有个人家庭关系和个人呢工作学习的经历,各放在一张表格中。(3)员工职务调动管理:同样对公司员工的职务进行统一编号;登记员工调动前后的具体职务,以及调动时间。(4)奖惩管理:根据每个员工的编号登记奖惩原因和奖惩金额及奖惩月份。(5)考勤管理:根据员工编号,登记员工每个月的全勤,出差,请假时日和加班迟到早退信息。(6)工资管理:对所有员工的每笔工资进行编号,记录工资记录表。1.2功能需求分析(1)一般用户能够查询个人信息和修改自己的登录密码;(2)管理员能够查询所有员工的信息并能够做添加、修改、删除的操作。2.概念设计ER模型设计部门部门部门编号部门名称部门职能描述部门负责人编号用户管理用户管理用户名密码用户类型员工员工员工编号姓名籍贯婚姻状况文化程度政治面貌······性别民族身份证号生日考勤考勤考勤编号考勤月份法定休假天数旷工天数员工编号全勤天数出差天数病假天数事假天数······员工调动员工调动调动编号调动日期员工编号调动前职务调动后职务批复部门编号奖惩奖惩员工编号奖惩编号处罚金额奖励事由奖励金额处罚事由家庭关系家庭关系家庭编号工作单位与本人关系员工编号年龄性别姓名工作经历工作经历职务学校/单位名称终止日期开始日期员工编号编号工资工资工资编号处罚金额奖励金额员工编号基本工资考勤月份管理员管理员员工属于调动查询部门维护工作经历家庭关系附有附有员工调动工资考勤查询查询修改查询修改管理员查询修改查询修改查询修改维护3.逻辑结构设计将ER模型转化为关系模型(1)部门(部门编号+部门名称+部门简介+部门负责人);PS:部门编号为主码(2)员工信息(员工编号+姓名+性别+民族+生日+政治面貌+文化程度+婚姻状况+籍贯+身份证号+工作证号+办公电话+手机号码+部门编号+职务+状态+工资+备注)Ps:员工编号为主码,部门编号为外码(3)职务调动信息(调动编号+员工编号+调动前职务+调动后职务+调动日期+批复部门号)PS:调动编号为主码,员工编号为外码(4)奖惩信息(奖惩编号+员工编号+奖励事由+奖励金额+处罚事由+处罚金额)PS:奖惩编号为主码+员工编号为外码(5)考勤信息(考勤月份+员工编号+全勤天数+出差天数+病假天数+事假天数+旷工天数+迟到时间+早退时间+…)PS:考勤月份为主码,员工编号为外码(6)工资信息(工资编号+员工编号+基本工资+奖励金额+处罚金额+考勤月份)PS:工资编号为主码,员工编号和考勤月份为外码(7)管理员信息(用户名+密码+用户类型)PS:用户名为主码;4.数据库的物理设计(1)具体表的结构设计部门:编号字段名称数据结构约束条件1部门编号intNotnullprimarykey2部门名称varchar(40)Notnull3部门职能描述Varchar(400)null4部门负责人编号Char(3)Notnull员工:编号字段名称数据结构约束条件1员工编号Char(4)Notnullprimarykey2姓名Varchar(50)Notnull3性别Char(2)null4民族varchar(40)null5生日datetimenull6政治面貌varchar(40)null7文化程度varchar(40)null8婚姻状况varchar(20)null9籍贯varchar(60)null10身份证号varchar(20)null11办公电话varchar(30)null12手机号码varchar(30)null13部门编号intnull14职务varchar(20)null15员工状态(1-在职,2-兼职,3,试用,4-离职,5-退休)tinyintnull员工调动:编号字段名称数据结构约束条件1调动编号Char(2)Notnullprimarykey2员工编号Char(4)Notnull3调动前职务Varchar(20)Null4调动后职务Varchar(20)null5调动日期DatetimeNull6批复部门编号intNotnull奖惩:编号字段名称数据结构约束条件1奖惩编号Char(2)Notnullprimarykey2员工编号Char(4)Notnull3奖励事由Varchar(200)Null4奖励金额smallintNull5处罚事由Varchar(200)Null6处罚金额smallintnull考勤:编号字段名称数据结构约束条件1考勤编号Char(3)Notnullprimarykey2考勤月份DatetimeNotnull3员工编号intNotnull4全勤天数Decimal(4,1)Null5出差天数Decimal(4,1)Null6病假天数Decimal(4,1)Null7事假天数Decimal(4,1)Null8旷工天数Decimal(4,1)Null9法定休假天数Decimal(4,1)Null10迟到时间(分)TinyintNull11早退时间(分)TinyintNull12一类加班天数(法定节假日加班)IntNull13二类加班天数(周六或周日加班)IntNull14三类加班天数(日常加班)IntNull工资:编号字段名称数据结构约束条件1工资编号Char(3)Notnullprimarykey2员工编号Char(4)Notnull3基本工资moneyNull4考勤月份DatetimeNotnull5奖励金额moneyNull6处罚金额moneynull用户管理:编号字段名称数据结构约束条件1用户名Varchar(40)Notnullprimarykey2密码Varchar(40)Notnull3用户类型(1-系统管理员,2-普通用户tinyintNotnull家庭关系:编号说明数据结构约束条件1编号tinyintNotnullprimarykey2员工编号intNotnull3姓名Varchar(50)Null4性别Char(2)Null5年龄tinyintNull6与本人关系Varchar(20)Null7工作单位Varchar(40)null工作经历:编号说明数据结构约束条件1编号tinyintNotnullprimarykey2员工编号intNotnull3开始日期Char(10)null4终止日期Char(10)null5学校/单位名称Varchar(50)null6职务Varchar(20)null5.T-SQL命令方式创立数据库文件、表、索引、联系和主键、外键等约束(1)创立数据库createdatabaseHrSysALTERDATABASEHrSySADDFILE(NAME=HrSys_dat2,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\HrSys_dat2.ndf'SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)LOGON(NAME='HrSys_LOG',FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\HrSys_log.ldf',SIZE=3,MAXSIZE=20,FILEGROWTH=1)(2)创立表useHrSyscreatetable部门(部门编号intprimarykey,部门名称varchar(40)notnull,部门职能描述varchar(400),部门负责人编号char(4)notnull,)createtable员工(员工编号char(4)primarykey,姓名varchar(50)notnull,性别char(2),民族varchar(40),生日varchar(20),政治面貌varchar(40),文化程度varchar(40),婚姻状况varchar(20),籍贯varchar(60),身份证号varchar(20),办公电话varchar(30),手机号码varchar(40),部门编号intnotnull,职务varchar(20),状态tinyint,工资decimal(9,2))createtable考勤(考勤编号intprimarykey,考勤月份datetimenotnull,员工编号char(4)notnull,全勤天数 Decimal(4,1),出差天数 Decimal(4,1),病假天数 Decimal(4,1),事假天数 Decimal(4,1),旷工天数 Decimal(4,1),法定休假日 Decimal(4,1),迟到时间 Tinyint,早退时间 Tinyint,法定假日加班 Decimal(4,1),周末加班 Decimal(4,1),日常加班 Decimal(4,1),)createtable员工调动(调动编号char(2)primarykey,员工编号char(4)notnull,调动前职务varchar(20),调动后职务varchar(20),调动日期char(10),批复部门编号int)createtable工资(工资编号char(3)primarykey,员工编号char(4)notnull,基本工资money,考勤月份datetimenotnull,奖励金额money,处罚金额money,)altertable工资add总共资as基本工资+奖励金额-处罚金额createtable用户管理(用户名varchar(40)PRIMARYKEY,密码varchar(40)NOTNULL,用户类型tinyintNOTNULL)insertintoUsersvalues('Admin','8888',1)createtable奖惩(奖惩编号char(10)primarykey,员工编号char(4)notnull,奖励事由varchar(200),奖励金额smallint,处罚事由varchar(200),处罚金额smallint,)reatetable家庭关系(家庭编号char(2)primarykey,员工编号char(4)notnull,姓名varchar(50)notnull,性别char(2),年龄tinyint,与本人关系varchar(20),工作单位varchar(40))createtable工作经历(编号 tinyintprimarykey,员工编号char(4)notnull,开始日期 Char(10),终止日期 Char(10),学校/单位名称 Varchar(50),职务 Varchar(20))(3)创立索引(4)修改表来创立外键关系和约束6.利用T-SQL命令增加、删除、修改数据(1)向表中增加属性列(2)修改、添加和删除数据例如:更新工资表的结果为7.利用T-SQL命令进行数据的检索和统计(1)投影和选择(2)多表连接选择在技术部或企划部的员工姓名和所在部门名称选择总共资在4000元以上的员工编号,姓名,职务,工资和考勤月份信息选择有信息存在员工表,家庭关系表,工资表的员工的编号、姓名、籍贯、家庭关系、与本人关系、基本工资信息(3)分组统计与HAVING统计每个部门的男女人数select部门编号,性别,count(*)as人数from员工groupby部门编号,性别选择基本工资在2500以上的员工SELECT员工编号,avg(基本工资)FROM工资groupby员工编号havingavg(基本工资)>2500(4)子查询选择没有信息在家庭关系表中的员工信息SELECT*FROM员工WHEREnotEXISTS(SELECT*FROM家庭关系WHERE家庭关系.员工编号=员工.员工编号)select员工编号,姓名,生日,籍贯,身份证号,职务,办公电话from员工whereEXISTS(SELECT*FROM工作经历WHERE员工.员工编号=工作经历.员工编号)(5)查询结果保存select姓名,职务,办公电话,手机号码,调动前职务intoB_INfofrom员工,员工调动where员工.员工编号=员工调动.员工编号select*fromB_INfo8.利用SQL命令创立数据库视图(1)基于单表的建立视图员工常见信息CREATEVIEW员工常见信息(员工编号,姓名,职位,办公电话,手机号码,部门编号)ASSELECT员工编号,姓名,职务,办公电话,手机号码,部门编号FROMdbo.员工sp_helptext员工常见信息(2)包含多表连接的建立视图员工考勤信息,员工基本信息和考勤情况CREATEVIEW员工考勤信息(员工姓名,职位,办公电话,旷工天数,事假天数,病假天数)ASSELECT姓名,职务,办公电话,旷工天数,事假天数,病假天数FROMdbo.员工,dbo.考勤WHERE(datename(yy,考勤月份)='')sp_helptext员工考勤信息(3)包含统计运算的建立视图view1,查询所有职工的职工号、姓名、部门名和份工资,并按部门名顺序排列;createviewview1asselecttop50员工.员工编号,员工.姓名,部门.部门名称,工资.总工资from员工,部门,工资whereyear(考勤月份)=''orderby部门名称sp_helptextview1建立视图view2,查询所有员工的员工编号、姓名和平均工资;createviewview2asselect员工.员工编号,员工.姓名,avg(基本工资)as平均工资from员工,工资where员工.员工编号=工资.员工编号GROUPBY员工.员工编号,员工.姓名sp_helptextview2(4)利用SQL对视图进行查询9.对视图进行插入、删除、修改数据操作插入:删除:修改:10.编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字符串(2)带参数的函数,经过员工编号返回员工信息createfunction员工情况(@个人编号varchar(4))returnstableasreturn(select姓名,职务,办公电话from员工where员工编号=@个人编号)select*from员工情况('4002')11.编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。自己确定过程的具体要求,然后编写出来。(1)利用游标读取员工表中的每一行数据:declarecur_员工cursorglobalscrolldynamicforselect员工编号,姓名,职务,文化程度,籍贯,身份证号,手机号码from员工opencur_员工fetchnextfromcur_员工while@@fetch_status=0beginfetchnextfromcur_员工end(2)创立带参数的存储过程,从表员工,家庭关系,工资的连接中返回输入的员工姓名的员工编号、姓名、籍贯、婚姻状况、基本工资、家人姓名、与自己的关系、工作单位信息。createprocyg_info@姓名varchar(20)asselect员工.员工编号,员工.姓名,籍贯,婚姻状况,基本工资,家庭关系.姓名,与本人关系,工作单位from员工innerjoin家庭关系on员工.员工编号=家庭关系.员工编号join工资on家庭关系.员工编号=工资.员工编号where员工.姓名like@姓名execyg_info'陈礼貌'12.编写一个实现修改表的触发器,实现完整性控制。(1)更新员工表信息useHrSysCREATETRIGGERworkeridON员工FORUPDATEASIF(update(员工编号))BEGINDECLARE@BHOCHAR(4),@BHNCHAR(4)SELECT@BHO=员工编号FROMDELETEDSELECT@BHN=员工编号FROMINSERTEDUPDATE工资SET工资.员工编号=@BHNWHERE工资.员工编号=@BHOUPDATE考勤SET考勤.员工编号=@BHNWHERE考勤.员工编号=@BHOUPDATE奖惩SET奖惩.员工编号=@BHNWHERE奖惩.员工编号=@BHOUPDATE工作经历SET工作经历.员工编号=@BHNwHERE工作经历.员工编号=@BHOUPDATE员工调动SET员工调动.员工编号=@BHNWHERE员工调动.员工编号=@BHOUPDATE家庭关系set家庭关系.员工编号=@BHNWHERE家庭关系.员工编号=@BHOENDUPDATEdbo.员工SET员工编号='1012'WHERE员工编号='1002'(2)删除员工编号CREATETRIGGERYGDELONdbo.员工FORDELETEASBEGINDECLARE@BHCHAR(4)SELECT@BH=员工编号FROMDELETEDIFEXISTS(SELECT*FROM部门WHERE部门负责人编号=@BH)UPDATEdbo.部门SET部门负责人编号=NULLWHERE部门负责人编号=@BHE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论