人事管理系统数据库课程设计报告书

上传人:仙*** 文档编号:99964140 上传时间:2022-06-01 格式:DOC 页数:44 大小:4.14MB
收藏 版权申诉 举报 下载
人事管理系统数据库课程设计报告书_第1页
第1页 / 共44页
人事管理系统数据库课程设计报告书_第2页
第2页 / 共44页
人事管理系统数据库课程设计报告书_第3页
第3页 / 共44页
资源描述:

《人事管理系统数据库课程设计报告书》由会员分享,可在线阅读,更多相关《人事管理系统数据库课程设计报告书(44页珍藏版)》请在装配图网上搜索。

1、数据库管理实务实验报告课程号:B0900980实验项目:数据库设计、创建、管理,数据库操作学号姓名欢同组人学号自己实验地点工程学院机房(文波)指导教师肖慎勇时间20XX6月评语(要求):按时完成实验;实验容和过程记录完整;回答问题完整、正确;实验报告的撰写认真、格式符合要求。成绩教师签字肖慎勇一、实验目的1理解并掌握数据库设计的概念、方法和步骤。2初步应用数据库设计方法。了解需求分析的容。3重点运用ER模型进行概念设计,然后将ER模型转换为关系模型。4深入理解SQL Server 2005数据库的存储结构。5深入理解SQL Server 2005的数据类型、表对象设计与定义。6掌握SQL Se

2、rver 2005Management studio的应用。运用交互方式和命令方式建立数据库和表。7认识和掌握Transact-SQL 的数据库操作。8深入理解视图意义。掌握SQL Server 中创建、管理与应用视图的方法。9深入理解数据库安全的概念。10深入理解SQL Server 2005的安全体系框架。11掌握登录与服务器角色的概念、操作与应用。掌握数据库用户、固定角色、自定义角色、架构的概念、操作与应用。掌握数据库权限的概念、操作与应用。12理解事务的概念。13深入理解并掌握服务器编程的意义及方法。14能够编写各种自定义函数和存储过程。15理解触发器,并能够编写、应用触发器。二、实验

3、设备(环境)及要求PC、 Windows XP、SQL SERVER 2005三、实验容及要求 实验项目:人事综合管理系统 通过调查、收集信息、分析,写出分析与设计报告。1. 简要的系统需求分析包括业务分析、功能需求分析、信息需求分析。试分析该系统的基本业务,计算机信息系统需要完成的基本功能、信息系统需要处理的信息。2. 概念设计设计系统的概念模型,采用ER模型。3. 逻辑设计将ER模型为关系模型,指出每个关系的主键、外键和必要的约束。4. 写出数据库的物理设计包括存储组织结构、表的结构设计等。5. T-SQL命令方式创建数据库的操作利用SQL命令创建数据库文件、表、索引、联系和主键、外键等约

4、束。(实验报告应写出实验的过程,包括必要的截图。)6. 利用T-SQL命令增加、删除、修改数据。7. 利用T-SQL命令进行数据的检索和统计根据自己设计的数据库和输入的数据,写出至少10个查询要求及对应的SQL查询命令,应该包含如下功能:投影和选择;多表连接;分组统计与HAVING;子查询;查询结果保存。8. 利用SQL命令创建视图对象根据开发的系统的需要,至少设计三个视图:基于单表的、包含多表连接的、包含统计运算的。利用SQL对视图进行查询。9. 对视图进行插入、删除、修改数据操作。体会视图与表的异同。10. 编写自定义函数。(1)编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字

5、符串。写出源代码。(2) 编写一个自定义函数,能够实现参数化查询的功能。自己设定函数的具体要求,然后编写出来。11. 编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。自己确定过程的具体要求,然后编写出来。12. 编写一个实现修改表的触发器,实现完整性控制。13. 设置服务器身份验证模式。用命令创建若干不同验证模式的登录账户。14. 将部分登录赋予服务器角色。然后撤消。15. 将部分登录映射到你的数据库中成为用户。16. 创建自定义角色、架构。17. 通过角色给用户授权。18. 直接给用户授权,验证其获得权限前后的操作差别。19. 删除用户和自定义的角色。四、回答问题1你如何认

6、识需求分析在系统开发中的地位和重要性?答:我觉得需求分析就是把客户的功能描述转化为开发员所能理解的功能描述,并在客户描述的基础上去除不合理的地方,补充系统缺失的地方,最后为系统的概要设计,详细设计提供准确,有效的数据基础。在需求分析中要把系统所要处理的业务理解透彻,并把其中的信息整理归类。然后还需要把整个系统所要实现的功能的逻辑思路理清楚,这些工作都是系统开发能够继续做下去的基础。如果需求分析没有做好,或者说对整个系统的总体框架不明晰,则在后面的设计中会很混乱,出现很多的问题。所以我觉得需求分析可以说是系统开发的核心部分,做好这步,后面的就能清晰的进行了。2设计ER图、关系模型分别属于数据库设

7、计的哪一阶段?答:ER图属于概念设计阶段;关系模型处于逻辑设计阶段3主键、外键对于关系数据库的意义何在?答:主键是对表的约束,保证数据的唯一性! 外键是建立表于表之间的联系,方便程序的编写!主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。4在数据库存储结构设计时要考虑哪些因素?答:首先要确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排,确定系统配置。同时要综合考虑存取时间、存储空间利用率和维护代价3个方面的因素。把它们进行权衡,选择一个折中的方案。5在表设计时对于数据类型的选择和使用如何考虑?

8、答:(1)首先要清楚理解数据库中各种数据类型的用法和围;(2)应该根据字段的实际类型来考虑数据类型;(3)要估计表中数据的大小围,来确定数据类型的大小,避免空间不足或者浪费。6. 交互式如何实现表之间的联系?SQL命令如何实现表之间的联系?答:(1)交互式:在管理平台中,展开要操作的数据库,选择“数据库关系图”选项,然后单击鼠标右键,在弹出的快捷菜单中选择“新建数据库关系图”命令,在弹出的窗口中选择要建立关系的表后,则会弹出数据库关系图设计窗口。然后右键单击关系图的空白页面,在弹出的快捷菜单中,可以新建或添加数据库中已定义的表,在该表的关联菜单中选择“属性”选项,可以创建或定义该表的关系、键、

9、索引和约束或修改当前的附加特性。(2)SQL命令:ALTER TABLEADD CONSTRAINT constraint_namePRIMARYKEYCLUSTERED|NONCLUSTEREDFOREIGN KEYREFERENCES ref_table7如果在定义表时进行了主键、外键以及约束等完整性设置,对于数据的输入有何影响?试举例说明。答:定义主键 :定义主键来强制不允许空值的指定列中输入值的唯一性。如果在数据库中为表定义了主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。如果主键包含不止一列,则在一列中允许有重复值,但主键中所有列值的每个组合必须唯一。定义外键:外键

10、引用完整性表示得到正常维护的表之间的关系。表中的数据只应指向另一个表中的现有行,不应指向不存在的行。主键约束:使用单列或者多列组合,表示每一条记录的唯一性,值不能为空;外键约束: 是为了加强数据表之间的关键的表中的单列或者多列值,必须依赖另外的表存在;唯一约束:不允许数据库中的某一列数据有重复,但是允许有空值存在。主键和唯一性约束定义了表中记录的唯一性,但是主键列的值不鞥为空,而唯一键约束的列的值可以为空值;8用INSERT INTO 命令输入,如果数据与字段数量和要求不一致有什么问题?当表定义中有默认值的时候,插入记录是否可以省略该字段的数据?答:如果数据与字段数量和要求不一致,那么会插入失

11、败,并且SQL Server将显示错误信息。有默认值时可以省略该字段数据,系统会为该列提供默认值。9HAVING子句有什么作用?答:HAVING字句与WHERE子句一样,也可以起到按条件选择记录的功能,但HAVING子句是作用于组,必须与GROUP BY子句连用,用来指定每一分租应满足的条件。10当通配字符作为普通字符参与匹配查询时,如何解决这样的问题?答:转义,对通配符加。11可否利用视图进行数据的插入、删除、修改? 答:可以通过视图对基础表中的数据进行检索、添加、修改和查询。但是插入、修改、删除数据是只能做单表的,基于多表的视图不可以删除和修改。12根据自己的体会,谈谈视图在数据库体系中的

12、作用。 模式答:利用视图可以简化用户操作数据的方式。可将经常使用的连接、投影、联合查询和选择查询定义为视图,这样每次对特定的数据执行进一步操作时,不必指定所有条件和限定。除此之外还可以定制数据,导出数据。还可以用GRANT和REVOKE命令为各种用户授予在视图上的操作权限,这样通过视图,用户只能查询或修改他们各自所能见到的数据,数据库中的其他数据对他们来说是不可见的或不可修改的。保证数据库的安全性。13视图是如何保存的?视图中的数据是否真的存储在文件中?答:保存视图将更改服务器上的视图定义。 当您保存视图时,基础数据库引擎将使用新的视图定义。在查询和视图设计器中打开视图定义并对其进行修改。(1

13、)在查询和视图设计器中打开视图定义并对其进行修改。(2)从“文件”菜单中单击“保存 view_name”,其中 view_name 是打开的视图的名称。14SQL SERVER有几种身份验证模式?区别是什么?不同验证模式的登录账户有何区别?答:有两种(1)windows身份验证模式,是默认的验证模式,使用windows操作系统的安全机制验证用户身份,只要用户能够通过windows用户账号验证,并且是SQL Server的登录账户,即可连接到SQL Server而不用进行身份验证,只适用于能够提供有效身份验证的windows操作系统。(2)混合的验证模式:在该模式下,Windows和SQL Se

14、rver两种验证模式都可用,对可信任连接用户,直接采用windows 的身份验证,否则采用SQL Server模式,用户在连接SQL Server时必须提供登录名和密码,SQL Server自己执行认证处理,如果输入的登录信息与系统表syslogins中的某几条记录相匹配时表明登录成功。15Sa账户有何特点? 答:Sa账户是SQL Server的特殊账户,sa账户拥有服务器和所有的数据库。即Sa账户拥有最高的管理权限,可以执行服务器围所有操作。它是以SQL Server身份验证的,所以必须设置一个密码。同时,sa账户的属性不可以更改,密码可以修改。Sa登录时无法删除的。16共有几种服务器角色?

15、最高权限的角色是什么?能够创建数据库的角色是哪个?答:共有8种固定服务器角色,分别是:sysadmin,serveradmin,setupadmin,securityadmin,processadmin,dbcreator,diskadmin,bulkadmin;同时每一个登录用户都属于public服务器角色。最高权限的角色是sysadmin;能够创建数据库的角色是:sysadmin,dbcreator;17数据库用户和登录账户有什么关系?guest是什么用户?有何作用?答:这是两种不同级别的安全机制,登录账户是SQL Server级的安全性设置,而数据库用户则是数据库级的安全性设置。登录账户

16、用于登录服务器,但是当某一用户要访问某个数据库时,除了可以成为服务器的一个登录以外,还必须成为这个数据库的用户账户,即获得一定的授权。数据库用户账号在一般情况下是从某个登录账户中映射过来的。Guest是来宾用户,是用来共享文件的。任何一个登录都可以以此身份访问数据库。Guest自动本身只具有public权限。也可以由其他用户授权。18数据库角色有哪两类?PUBLIC角色有何特点?答:数据库角色分为固定的数据库角色和用户定义数据库角色。每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库。用户定义数据库角色是用户根据工作的职能定义一系列角

17、色,并给每个角色指派了适合这项工作的权限。从而在数据库中管理这些权限。PUBLIC角色的特点:默认不具有任何权限,但用户可对此角色进行授权,他不能被删除,是所有user自动拥有的角色。数据库中的每个用户都属于 public 数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给 public 角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给 public 角色的权限。 19用户与架构有什么关系?系统默认架构是什么?怎样为用户指定架构?答:SQL Server 2000中数据库用户和构架是隐式连在一起的,架构将用户和权限之间建立了一个间接地方式。数据库架构是一

18、个独立于数据库用户的非重复命名空间,可以将架构视为对象的容器。每个数据库用户都是与该用户同名架构的所有者;而在SQL Server 2005中构架和用户是不同的实体。一个对象只能属于一个架构,就像一个文件只能存放于一个文件夹中一样。与文件夹不同的是,架构是不能嵌套的。系统默认架构是dbo架构;通过使用CREATE USER 和ALTER USER 语句,可以分配一个默认架构;也可以通过SSMS在该用户的属性下面分配一个默认架构。20. 什么是安全对象?怎样为数据库用户指定查询表的权限?答:安全对象是SQL Server 数据库引擎授权系统控制对其进行访问的资源。安全对象围有服务器、端点和架构。

19、21简述自定义函数、存储过程和触发器的异同。答:(1)自定义函数、存储过程、和触发器都是模块化设计的类型。(2)函数最后是返回一个值,在表达式中调用,定义函数时要定义函数的函数名、参数、函数值类型和函数体。(3)存储过程经编译后放在数据库服务器端,供客户端调用,处理一件事或完成一个功能,有单独的调用命令。调用过程时,是实际参数与形参的传递(值传递和名传递两种)。定义过程时需定义过程名、参数、过程体。它可以实现完整性控制机。(4)触发器实质是一种特殊类型的存储过程,它在插入、修改或删除时触发执行。能够实现由主键和外键所不能保证的参照完整性和数据的一致性。22什么是游标?应用游标的步骤是什么?答:

20、游标是对表的运用的一种机制,相当于在表上定义一条指针,把表中的数据按一行一行的来读取。把表中的数据取出来放在高级语言的变量中,是SQL语言与高级语言之间的桥梁。应用游标的步骤:(1)声明游标(2)打开游标,即把外存上的数据调入存,运行查询(3)提取数据(4)关闭游标(5)释放游标五、分析讨论通过实验我觉得最重要的是系统分析,逻辑设计和物理设计时一定要认真想清楚每表的属性和它们之间的相互联系,这样在后面使用查询的时候才不会出错,如果前面没做好,后面做查询的时候就会出现各种错误,如数据结构定义不统一,外键冲突等问题。除此之外要做好一个数据库系统,要掌握好学习中的每一步,平时上课学习很有用,好好学了

21、,做的时候就会比较轻松。除此之外,我觉得函数和触发器那部分比较难,只会实现简单的查询、删除、修改控制。对基于多表的带参函数运用还比较弱。以下为本次实验的过程记录报告撰写。(可包括必要的截图)人事综合管理系统信管10031009030340欢1.简要的系统需求分析 人事管理系统是非常通用的管理信息系统,是企事业单位实现办公自动化的前提和基础。一个公司要正常运作必定有一个健全的人事管理系统,来管理员工的信息,包括员工编号、性别、民族工资及奖惩考勤情况。除此之外,系统还供员工查询个人和公共信息,管理员对员工信息进行更改或删除,管理公司的人事变更和管理,大大提高公司部员工管理的工作效率。1.1业务分析

22、(1)部门管理:对公司的部门进行编号,将每一个部门的部门号、部门名称、部门描述和部门负责人信息统一保存在部门信息档案中。当新增或去除某个部门时,将其信息添加到部门信息档案或或从中删除。当部门信息发生变化时,修改对应和相关的属性值。(2)员工信息管理:对公司里的所有员工进行统一编号;将每一位员工的信息录入到员工信息档案中。对新聘用的员工,将其信息加入到员工信息档案中;对于解雇的员工,将其信息从信息档案中删除。当员工的信息发生变动时,修改员工信息档案中相应的属性。同时供员工自己查询使用。其下还包含有个人家庭关系和个人呢工作学习的经历,各放在一表格中。(3)员工职务调动管理:同样对公司员工的职务进行

23、统一编号;登记员工调动前后的具体职务,以及调动时间。(4)奖惩管理:根据每个员工的编号登记奖惩原因和奖惩金额及奖惩月份。(5)考勤管理:根据员工编号,登记员工每个月的全勤,出差,请假时日和加班迟到早退信息。(6)工资管理:对所有员工的每笔工资进行编号,记录工资记录表。1.2功能需求分析(1)一般用户可以查询个人信息和修改自己的登录密码;(2)管理员可以查询所有员工的信息并可以做添加、修改、删除的操作。2.概念设计ER模型设计部门部门编号部门名称部门职能描述部门负责人编号用户管理用户名密码用户类型员工员工编号XX籍贯婚姻状况文化程度政治面貌性别民族XX号生日考勤考勤编号考勤月份法定休假天数旷工天

24、数员工编号全勤天数出差天数病假天数事假天数员工调动调动编号调动日期员工编号调动前职务调动后职务批复部门编号奖惩员工编号奖惩编号处罚金额奖励事由奖励金额处罚事由家庭关系家庭编号工作单位与本人关系员工编号年龄性别XX工作经历职务学校/单位名称终止日期开始日期员工编号编号工资工资编号处罚金额奖励金额员工编号基本工资考勤月份管理员员工属于调动查询部门维护工作经历家庭关系附有附有员工调动工资考勤查询查询修改查询修改管理员查询修改查询修改查询修改维护3.逻辑结构设计将ER模型转化为关系模型(1)部门(部门编号+部门名称+部门简介+部门负责人);PS:部门编号为主码(2)员工信息(员工编号+性别+民族+生日

25、+政治面貌+文化程度+婚姻状况+籍贯+号+工作证号+办公+手机+部门编号+职务+状态+工资+备注)Ps:员工编号为主码,部门编号为外码(3)职务调动信息(调动编号+员工编号+调动前职务+调动后职务+调动日期+批复部门号)PS:调动编号为主码,员工编号为外码(4)奖惩信息(奖惩编号+员工编号+奖励事由+奖励金额+处罚事由+处罚金额)PS:奖惩编号为主码+员工编号为外码(5)考勤信息(考勤月份+员工编号+全勤天数+出差天数+病假天数+事假天数+旷工天数+迟到时间+早退时间+)PS:考勤月份为主码,员工编号为外码(6)工资信息(工资编号+员工编号+基本工资+奖励金额+处罚金额+考勤月份)PS:工资编

26、号为主码,员工编号和考勤月份为外码(7)管理员信息(用户名+密码+用户类型)PS:用户名为主码;4.数据库的物理设计(1)具体表的结构设计部门:编号字段名称数据结构约束条件1部门编号intNot nullprimary key2部门名称varchar(40)Not null3部门职能描述Varchar(400)null4部门负责人编号Char(3)Not null员工:编号字段名称数据结构约束条件1员工编号Char(4)Not null primary key2Varchar(50)Not null3性别Char(2)null4民族varchar(40)null5生日datetimenull6

27、政治面貌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)Not null primary key2员工编号Char(4)Not null3调动前职务Varchar(20)Null

28、4调动后职务Varchar(20)null5调动日期DatetimeNull6批复部门编号intNot null奖惩:编号字段名称数据结构约束条件1奖惩编号Char(2)Not null primary key2员工编号Char(4)Not null3奖励事由Varchar(200)Null4奖励金额smallintNull5处罚事由Varchar(200)Null6处罚金额smallintnull考勤:编号字段名称数据结构约束条件1考勤编号Char(3)Not null primary key2考勤月份DatetimeNot null3员工编号intNot null4全勤天数Decimal(

29、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)Not nullprimary key2员工编号Char(4)Not null3基本工资mon

30、eyNull4考勤月份DatetimeNot null5奖励金额moneyNull6处罚金额moneynull用户管理:编号字段名称数据结构约束条件1用户名Varchar(40)Not nullprimary key2密码Varchar(40)Not null3用户类型(1-系统管理员,2-普通用户tinyintNot null家庭关系:编号说明数据结构约束条件1编号tinyintNot nullprimary key2员工编号intNot null3Varchar(50)Null4性别Char(2)Null5年龄tinyintNull6与本人关系Varchar(20)Null7工作单位Var

31、char(40)null工作经历:编号说明数据结构约束条件1编号tinyintNot nullprimary key2员工编号intNot null3开始日期Char(10)null4终止日期Char(10)null5学校/单位名称Varchar(50)null6职务Varchar(20)null5.T-SQL命令方式创建数据库文件、表、索引、联系和主键、外键等约束(1)创建数据库createdatabase HrSysALTERDATABASE HrSySADDFILE(NAME=HrSys_dat2,FILENAME=C:Program FilesMicrosoft SQL ServerM

32、SSQLDataHrSys_dat2.ndfSIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)LOGON(NAME=HrSys_LOG,FILENAME=C:Program FilesMicrosoft SQL ServerMSSQLDataHrSys_log.ldf,SIZE=3,MAXSIZE=20,FILEGROWTH=1)(2)创建表44 / 44use HrSyscreatetable 部门(部门编号intprimarykey,部门名称varchar(40)notnull,部门职能描述varchar(400),部门负责人编号char(4)notnull,)c

33、reatetable 员工(员工编号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,考勤月份datetimenot n

34、ull,员工编号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),调动日期

35、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)insertinto Users values(Admin,8888,1)createtable奖惩(奖惩编

36、号char(10)primary key,员工编号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),终止日

37、期Char(10),学校/单位名称Varchar(50),职务Varchar(20)(3)创建索引(4)修改表来创建外键关系和约束6.利用T-SQL命令增加、删除、修改数据(1)向表中增加属性列(2)修改、添加和删除数据例如:更新工资表的结果为7.利用T-SQL命令进行数据的检索和统计(1)投影和选择(2)多表连接选择在技术部或企划部的员工和所在部门名称选择总共资在4000元以上的员工编号,职务,工资和考勤月份信息选择有信息存在员工表,家庭关系表,工资表的员工的编号、籍贯、家庭关系、与本人关系、基本工资信息(3)分组统计与HAVING统计每个部门的男女人数select 部门编号,性别,coun

38、t(*)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,职

39、务,办公,手机,调动前职务into B_INfofrom 员工,员工调动where 员工.员工编号=员工调动.员工编号select*from B_INfo8.利用SQL命令创建数据库视图(1)基于单表的建立视图员工常用信息CREATEVIEW 员工常用信息(员工编号,职位,办公,手机,部门编号)ASSELECT 员工编号,职务,办公,手机,部门编号FROM dbo.员工sp_helptext 员工常用信息(2)包含多表连接的建立视图员工考勤信息,员工基本信息和20XX考勤情况CREATEVIEW 员工考勤信息(员工,职位,办公,旷工天数,事假天数,病假天数)ASSELECT,职务,办公,旷工天

40、数,事假天数,病假天数FROM dbo.员工, dbo.考勤WHERE(datename(yy,考勤月份)=2012)sp_helptext 员工考勤信息(3)包含统计运算的建立视图view1,查询所有职工的职工号、部门名和20XX份工资,并按部门名顺序排列;createview view1asselecttop 50 员工.员工编号,员工.,部门.部门名称,工资.总工资 from 员工,部门,工资whereyear(考勤月份)=2011orderby 部门名称 sp_helptext view1建立视图view2,查询所有员工的员工编号、和平均工资;createview view2 asse

41、lect 员工.员工编号,员工.,avg(基本工资)as 平均工资from 员工,工资where 员工.员工编号=工资.员工编号GROUPBY 员工.员工编号,员工.sp_helptext view2(4)利用SQL对视图进行查询9.对视图进行插入、删除、修改数据操作插入:删除:修改:10.编写一个自定义函数,将一个字符串作为自变量,返回颠倒顺序的字符串(2)带参数的函数,通过员工编号返回员工信息createfunction 员工情况(个人编号varchar(4)returnstableasreturn(select,职务,办公from 员工where 员工编号=个人编号)select*fro

42、m 员工情况(4002)11. 编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。自己确定过程的具体要求,然后编写出来。(1)利用游标读取员工表中的每一行数据:declare cur_员工cursorglobalscrolldynamicforselect 员工编号,职务,文化程度,籍贯,号,手机from 员工open cur_员工fetchnextfrom cur_员工whilefetch_status=0beginfetchnextfrom cur_员工end(2)创建带参数的存储过程,从表员工,家庭关系,工资的连接中返回输入的员工的员工编号、籍贯、婚姻状况、基本工资、家人

43、、与自己的关系、工作单位信息。createproc yg_info varchar(20)asselect 员工.员工编号,员工.,籍贯,婚姻状况,基本工资,家庭关系.,与本人关系,工作单位from 员工innerjoin 家庭关系on 员工.员工编号=家庭关系.员工编号join 工资on 家庭关系.员工编号=工资.员工编号where 员工.likeexec yg_info 礼貌12. 编写一个实现修改表的触发器,实现完整性控制。(1)更新员工表信息use HrSysCREATETRIGGER workerid ON 员工FORUPDATEASIF(update(员工编号)BEGINDECLA

44、REBHO CHAR(4),BHN CHAR(4)SELECTBHO=员工编号FROM DELETEDSELECTBHN=员工编号FROM INSERTEDUPDATE 工资SET 工资.员工编号=BHNWHERE 工资.员工编号=BHOUPDATE 考勤SET 考勤.员工编号=BHNWHERE 考勤.员工编号=BHOUPDATE 奖惩SET 奖惩.员工编号=BHNWHERE 奖惩.员工编号=BHO UPDATE 工作经历SET 工作经历.员工编号=BHNwHERE 工作经历.员工编号=BHOUPDATE 员工调动SET 员工调动.员工编号=BHNWHERE 员工调动.员工编号=BHOUPDA

45、TE 家庭关系set 家庭关系.员工编号=BHNWHERE 家庭关系.员工编号=BHOENDUPDATE dbo.员工SET 员工编号=1012WHERE 员工编号=1002(2)删除员工编号CREATETRIGGER YGDELON dbo.员工FORDELETEASBEGINDECLAREBH CHAR(4)SELECTBH=员工编号FROM DELETEDIFEXISTS(SELECT*FROM 部门WHERE 部门负责人编号=BH)UPDATE dbo.部门SET 部门负责人编号=NULLWHERE 部门负责人编号=BHEnddeletefrom 员工where 员工编号=200113

46、. 设置服务器身份验证模式。用命令创建若干不同验证模式的登录账户。(1)在控制面板了面创建用户(2)创建Windows身份验证和SQL Server的登录账户14. 将部分登录赋予服务器角色。然后撤消。execsp_addsrvrolemember四叶草,sysadminexecsp_addsrvrolememberZY-20080929TQYO满天星,dbcreatorexecsp_helpsrvrolemembersysadminexecsp_helpsrvrolememberdbcreator撤销服务器角色成员:execsp_dropsrvrolemember四叶草,sysadminex

47、ecsp_dropsrvrolememberZY-20080929TQYO满天星,dbcreator15. 将部分登录映射到你的数据库中成为用户。useHrSysgocreateuser 四叶草 fromlogin 四叶草createuser ZY-20080929TQYO满天星 fromlogin ZY-20080929TQYO满天星16. 创建自定义角色、架构。(1)创建自定义角色createrole role1createrole role2createrole role3 authorization 四叶草(2)创建自定义架构createschema sc1createschema s

48、c2 authorization 四叶草createschema sc3/把sc2的所有权转让给ZY-20080929TQYO满天星,它就可以直接使用sc2下的表alterauthorizationonschema: sc2to ZY-20080929TQYO满天星17. 通过角色给用户授权。use HrSysGRANTupdateON 员工TO role1GRANTSELECTON 工资TO role1EXECsp_addrolememberrole1,四叶草用户四叶草获得对员工表的更新和对工资表的查询权限GRANTupdateON 部门TO role2GRANTSELECTON 考勤TO

49、role2EXECsp_addrolememberrole2,ZY-20080929TQYO满天星用户满天星获得对部门表的更新和对考勤表的查询权限,连接数据库服务器后可以看到HrSys数据库中的部门表和考勤表execsp_helprolememberrole1execsp_helprolememberrole218. 直接给用户授权,验证其获得权限前后的操作差别。例如:赋予用户user1 对部门表插入和对员工表查询的权限,则在用户user1下可以看到HrSys数据库中的表部门和员工表,可以队员工表进行插入却不可以进行查询;而在员工表上可以查询而不能进行其他操作,授权是局部的权利,被授权者只能执行获得权利的操作,维护数据库的安全性。19. 删除用户和自定义的角色。execsp_droprolememberrole3,四叶草droprole role3dropuser 四叶草droprole role1execsp_droprolememberrole2,ZY-20080929TQYO满天星droprole role2dropuser ZY-20080929TQYO满天星dropuser user1删除角色时要先删除角色中的成员

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!