人事管理系统数据库课程设计(SQL Server)

上传人:r****d 文档编号:66282589 上传时间:2022-03-27 格式:DOC 页数:44 大小:4.15MB
收藏 版权申诉 举报 下载
人事管理系统数据库课程设计(SQL Server)_第1页
第1页 / 共44页
人事管理系统数据库课程设计(SQL Server)_第2页
第2页 / 共44页
人事管理系统数据库课程设计(SQL Server)_第3页
第3页 / 共44页
资源描述:

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

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

2、握SQL Server 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. 删除用户和自定义的角色。四、回

6、答问题1你如何认识需求分析在系统开发中的地位和重要性?答:我觉得需求分析就是把客户的功能描述转化为开发员所能理解的功能描述,并在客户描述的基础上去除不合理的地方,补充系统缺失的地方,最后为系统的概要设计,详细设计提供准确,有效的数据基础。在需求分析中要把系统所要处理的业务理解透彻,并把其中的信息整理归类。然后还需要把整个系统所要实现的功能的逻辑思路理清楚,这些工作都是系统开发能够继续做下去的基础。如果需求分析没有做好,或者说对整个系统的总体框架不明晰,则在后面的设计中会很混乱,出现很多的问题。所以我觉得需求分析可以说是系统开发的核心部分,做好这步,后面的就能清晰的进行了。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视图是如何保存的?视图中的数据是否真的存储在文件中?答:保存视图将更改服务器上的视图定义。 当您保存视图时,基础数据库引擎将使用新的视图定义。在查询和视图设计器中打开视图定

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

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

15、。16共有几种服务器角色?最高权限的角色是什么?能够创建数据库的角色是哪个?答:共有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、一步,平时上课学习很有用,好好学了,做的时候就会比较轻松。除此之外,我觉得函数和触发器那部分比较难,只会实现简单的查询、删除、修改控制。对基于多表的带参函数运用还比较弱。 以下为本次实验的过程记录报告撰写。(可包括必要的截图)人事综合管理系统信管1003 1009030340 潘欢 人事管理系统是非常通用的管理信息系统,是企事业单位实现办公自动化的前提和基础。一个公司要正常运作必定有一个健全的人事管理系统,来管理员工的信息,包括员工编号、姓名、性别、民族工资及奖惩考勤情况。除此之外,系统还供员工查询个人和公共信息,管理员对员工信息进行更改或删除,管理公司的人事变更和管理,大大提高公司内部员工管

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

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

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

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

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

27、0)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)Null4调动后职务V

28、archar(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(4,1)Nul

29、l5出差天数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基本工资moneyNull4

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

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

32、QLDataHrSys_dat2.ndfSIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)LOG ON ( NAME=HrSys_LOG, FILENAME=C:Program FilesMicrosoft SQL ServerMSSQLDataHrSys_log.ldf, SIZE=3, MAXSIZE=20, FILEGROWTH=1 )(2)创建表use HrSyscreate table 部门(部门编号int primary key,部门名称varchar(40) not null,部门职能描述varchar(400),部门负责人编号char(4)not nu

33、ll,)create table 员工(员工编号char(4) primary key,姓名varchar(50) not null,性别char(2),民族varchar(40),生日varchar(20),政治面貌varchar(40),文化程度varchar(40),婚姻状况varchar(20),籍贯varchar(60),身份证号varchar(20),办公 varchar(30),手机号码varchar(40), 部门编号int not null,职务varchar(20),状态tinyint,工资decimal(9,2)create table 考勤(考勤编号 int prima

34、ry key,考勤月份datetime not null,员工编号char(4) not null,全勤天数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),)create table 员工调动(调动编号char(2) primary key,员工编号char(4) not null,调动前职务v

35、archar(20),调动后职务varchar(20),调动日期char(10),批复部门编号int)create table 工资(工资编号char(3) primary key,员工编号char(4) not null,基本工资money,考勤月份datetime not null,奖励金额money,处罚金额money,)alter table 工资add 总共资as 基本工资+奖励金额-处罚金额create table 用户管理(用户名varchar(40)PRIMARY KEY,密码 varchar(40) NOT NULL,用户类型tinyint NOT NULL)insert i

36、nto Users values(Admin,8888,1)create table 奖惩(奖惩编号 char(10)primary key,员工编号 char(4) not null,奖励事由 varchar(200),奖励金额 smallint,处罚事由 varchar(200),处罚金额 smallint,)reate table 家庭关系(家庭编号 char(2) primary key, 员工编号 char(4) not null,姓名 varchar(50) not null,性别 char(2),年龄 tinyint,与本人关系 varchar(20),工作单位 varchar(

37、40)create table 工作经历(编号tinyint primary key,员工编号 char(4) not null,开始日期Char(10),终止日期Char(10),学校/单位名称Varchar(50),职务Varchar(20)(3)创建索引(4)修改表来创建外键关系和约束6.利用T-SQL命令增加、删除、修改数据(1)向表中增加属性列(2)修改、添加和删除数据例如:更新工资表的结果为(1)投影和选择(2)多表连接选择在技术部或企划部的员工姓名和所在部门名称选择总共资在4000元以上的员工编号,姓名,职务,工资和考勤月份信息选择有信息存在员工表,家庭关系表,工资表的员工的编号

38、、姓名、籍贯、家庭关系、与本人关系、基本工资信息(3)分组统计与HAVING统计每个部门的男女人数select 部门编号,性别,count(*) as 人数from 员工group by 部门编号,性别选择基本工资在2500以上的员工SELECT 员工编号,avg(基本工资)FROM 工资group by 员工编号having avg(基本工资)2500(4)子查询选择没有信息在家庭关系表中的员工信息SELECT * FROM 员工 WHERE not EXISTS (SELECT * FROM 家庭关系 WHERE 家庭关系.员工编号=员工.员工编号)select 员工编号,姓名,生日,籍贯

39、,身份证号,职务,办公 from 员工where EXISTS(SELECT * FROM 工作经历 WHERE 员工.员工编号=工作经历.员工编号)(5)查询结果保存select 姓名,职务,办公 ,手机号码,调动前职务into B_INfofrom 员工,员工调动where 员工.员工编号=员工调动.员工编号select *from B_INfo(1)基于单表的建立视图员工常用信息CREATE VIEW 员工常用信息(员工编号,姓名,职位,办公 ,手机号码,部门编号)AS SELECT 员工编号,姓名,职务,办公 ,手机号码,部门编号FROM dbo.员工sp_helptext 员工常用信

40、息(2)包含多表连接的建立视图员工考勤信息,员工基本信息和2012年考勤情况CREATE VIEW 员工考勤信息(员工姓名,职位,办公 ,旷工天数,事假天数,病假天数)AS SELECT 姓名,职务,办公 ,旷工天数,事假天数,病假天数FROM dbo.员工, dbo.考勤WHERE (datename(yy,考勤月份)=2012)sp_helptext 员工考勤信息(3)包含统计运算的建立视图view1,查询所有职工的职工号、姓名、部门名和2011年份工资,并按部门名顺序排列;create view view1asselect top 50 员工.员工编号,员工.姓名,部门.部门名称,工资.

41、总工资 from 员工,部门,工资 where year(考勤月份)=2011 order by 部门名称 sp_helptext view1建立视图view2,查询所有员工的员工编号、姓名和平均工资;create view view2 as select 员工.员工编号,员工.姓名,avg(基本工资)as 平均工资from 员工,工资where 员工.员工编号=工资.员工编号GROUP BY 员工.员工编号,员工.姓名sp_helptext view2(4)利用SQL对视图进行查询9.对视图进行插入、删除、修改数据操作插入:删除:修改:10.编写一个自定义函数,将一个字符串作为自变量,返回颠

42、倒顺序的字符串(2)带参数的函数,通过员工编号返回员工信息create function 员工情况(个人编号varchar(4)returns tableasreturn(select 姓名,职务,办公 from 员工where 员工编号=个人编号)select * from 员工情况(4002)11. 编写利用游标进行数据处理的存储过程。并在存储过程中应用事务的概念。自己确定过程的具体要求,然后编写出来。(1)利用游标读取员工表中的每一行数据:declare cur_员工cursorglobal scroll dynamicforselect 员工编号,姓名,职务,文化程度,籍贯,身份证号,

43、手机号码from 员工open cur_员工fetch next from cur_员工while fetch_status=0beginfetch next from cur_员工end(2)创建带参数的存储过程,从表员工,家庭关系,工资的连接中返回输入的员工姓名的员工编号、姓名、籍贯、婚姻状况、基本工资、家人姓名、与自己的关系、工作单位信息。create proc yg_info 姓名varchar(20) asselect 员工.员工编号,员工.姓名,籍贯,婚姻状况,基本工资,家庭关系.姓名,与本人关系,工作单位from 员工inner join 家庭关系on 员工.员工编号=家庭关系.

44、员工编号join 工资on 家庭关系.员工编号=工资.员工编号where 员工.姓名like 姓名exec yg_info 陈礼貌12. 编写一个实现修改表的触发器,实现完整性控制。(1)更新员工表信息use HrSysCREATE TRIGGER workerid ON 员工FOR UPDATEASIF (update(员工编号) BEGINDECLARE BHO CHAR(4),BHN CHAR(4) SELECT BHO=员工编号FROM DELETED SELECT BHN=员工编号FROM INSERTEDUPDATE 工资 SET 工资.员工编号=BHN WHERE 工资.员工编号

45、=BHOUPDATE 考勤 SET 考勤.员工编号=BHN WHERE 考勤.员工编号=BHOUPDATE 奖惩 SET 奖惩.员工编号=BHN WHERE 奖惩.员工编号=BHO UPDATE 工作经历 SET 工作经历.员工编号=BHN wHERE 工作经历.员工编号=BHOUPDATE 员工调动 SET 员工调动.员工编号=BHN WHERE 员工调动.员工编号=BHOUPDATE 家庭关系 set 家庭关系.员工编号=BHN WHERE 家庭关系.员工编号=BHO ENDUPDATE dbo.员工SET 员工编号=1012 WHERE 员工编号=1002(2)删除员工编号CREATE

46、TRIGGER YGDELON dbo.员工FOR DELETEAS BEGIN DECLARE BH CHAR(4) SELECT BH=员工编号FROM DELETED IF EXISTS (SELECT * FROM 部门WHERE 部门负责人编号=BH) UPDATE dbo.部门 SET 部门负责人编号=NULL WHERE 部门负责人编号=BHEnddelete from 员工where 员工编号=200113. 设置服务器身份验证模式。用命令创建若干不同验证模式的登录账户。(1)在控制面板了面创建用户(2)创建Windows身份验证和SQL Server的登录账户14. 将部分登

47、录赋予服务器角色。然后撤消。exec sp_addsrvrolemember 四叶草,sysadminexec sp_addsrvrolemember ZY-20080929TQYO满天星,dbcreatorexec sp_helpsrvrolemember sysadminexec sp_helpsrvrolemember dbcreator撤销服务器角色成员:exec sp_dropsrvrolemember 四叶草,sysadminexec sp_dropsrvrolemember ZY-20080929TQYO满天星,dbcreator15. 将部分登录映射到你的数据库中成为用户。us

48、e HrSysgocreate user 四叶草 from login 四叶草create user ZY-20080929TQYO满天星 from login ZY-20080929TQYO满天星16. 创建自定义角色、架构。(1)创建自定义角色create role role1create role role2create role role3 authorization 四叶草(2)创建自定义架构create schema sc1create schema sc2 authorization 四叶草create schema sc3/把sc2的所有权转让给ZY-20080929TQYO满

49、天星,它就可以直接使用sc2下的表alter authorization on schema: sc2to ZY-20080929TQYO满天星17. 通过角色给用户授权。use HrSysGRANT update ON 员工TO role1GRANT SELECT ON 工资TO role1EXEC sp_addrolemember role1,四叶草用户四叶草获得对员工表的更新和对工资表的查询权限GRANT update ON 部门TO role2GRANT SELECT ON 考勤TO role2EXEC sp_addrolemember role2,ZY-20080929TQYO满天星

50、用户满天星获得对部门表的更新和对考勤表的查询权限,连接数据库服务器后可以看到HrSys数据库中的部门表和考勤表exec sp_helprolemember role1exec sp_helprolemember role218. 直接给用户授权,验证其获得权限前后的操作差别。例如:赋予用户user1 对部门表插入和对员工表查询的权限,则在用户user1下可以看到HrSys数据库中的表部门和员工表,可以队员工表进行插入却不可以进行查询;而在员工表上可以查询而不能进行其他操作,授权是局部的权利,被授权者只能执行获得权利的操作,维护数据库的安全性。19. 删除用户和自定义的角色。exec sp_droprolemember role3,四叶草drop role role3drop user 四叶草drop role role1exec sp_droprolemember role2,ZY-20080929TQYO满天星drop role role2drop user ZY-20080929TQYO满天星drop user 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交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!