数据库原理课程设计报告-工资管理系统(2)
`departmentId` int(11) NOT NULL,//员工所属部门号,外键 `basicSalary` int(11) NOT NULL,//员工的基本工资,外键
`departmentAllowance` int(11) NOT NULL,//员工所在部门的补贴,外键 `isGet` int(11) NOT NULL,//员工是否领取工资 PRIMARY KEY (`staffId`), )
创建员工表
CREATE TABLE `staff` (
`staffId` int(11) NOT NULL AUTO_INCREMENT,//员工编号,主键自增 `staffName` varchar(255) NOT NULL,//员工姓名 `staffAge` int(11) DEFAULT NULL,//员工年龄 `staffSex` varchar(255) DEFAULT NULL,//员工性别 `staffPhone` varchar(255) DEFAULT NULL,//员工电话
`departmentId` int(11) DEFAULT NULL,//员工所在部门,外键 `professionId` int(11) DEFAULT NULL,//员工所属工种,外键 PRIMARY KEY (`staffId`), )
创建考勤表
CREATE TABLE `works` (
`staffId` int(11) NOT NULL,//员工编号,外键 `workDate` date NOT NULL,//工作日 `isWork` int(11) NOT NULL,//是否打卡 )
4.3 创建存储过程
/*创建查询部门全部员工的存储过程,只有一个输入参数:部门编号*/ DROP PROCEDURE IF EXISTS `dpt_staff`; DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `dpt_staff`(`id` int) BEGIN
SELECT * FROM staff where departmentId=id; END ;;
DELIMITER ;
/*调用该存储过程*/
Call dpt_staff(部门编号(1或2));
/*创建查询单人月工资的存储过程,一个输入参数:员工编号;一个输出参数:月总工资;*/
DROP PROCEDURE IF EXISTS `monthSalary`; DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `monthSalary`(IN `id` int,OUT `c` int) BEGIN
DECLARE a INT; DECLARE b INT;
/*把查询到的结果赋值给变量*/
SELECT basicSalary into a FROM salary WHERE staffId=id;
SELECT departmentAllowance into b FROM salary WHERE staffId=id; set c = a+b;
select c as monthSalary; END
;;
DELIMITER ;
/*创建生成年终奖的存储过程,一个输入参数:员工编号*/ DROP PROCEDURE IF EXISTS `yearBonus`; DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `yearBonus`(`id` int) BEGIN
DECLARE a INT DEFAULT 1000; DECLARE b DOUBLE;
DECLARE c INT DEFAULT 12; DECLARE month_Salary INT; /*调用存储过程monthSalary(),得到其输出参数*/ call monthSalary(id,month_Salary); SET b=(month_Salary*c+a)/c; SELECT b; END ;;
DELIMITER ;
/*调用存储过程*/
Call yearBonus(员工编号)
4.4 创建视图
/*创建部门员工考勤情况的试图*/
DROP VIEW IF EXISTS `dpt_stf_workinfo`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `dpt_stf_workinfo` AS SELECT department.departmentId, staff.staffId,
staff.professionId, works.isWork, works.workDate FROM
department
INNER JOIN profession ON profession.departmentId = department.departmentId
INNER JOIN staff ON staff.professionId = profession.professionId AND staff.departmentId = department.departmentId INNER JOIN works ON works.staffId = staff.staffId ;
/*创建员工是否领取工资的试图*/ DROP VIEW IF EXISTS `isgetsalary`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` VIEW `isgetsalary` AS SELECT staff.staffId, staff.staffName, salary.isGet FROM staff
INNER JOIN salary ON salary.staffId = staff.staffId ;
/*创建各个员工工资情况的试图*/ DROP VIEW IF EXISTS `salaryinfo`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `salaryinfo` AS SELECT department.departmentId, staff.staffId, staff.staffName, staff.professionId,
department.departmentAllowance, profession.basicSalary FROM
department
INNER JOIN profession ON profession.departmentId = department.departmentId
INNER JOIN staff ON staff.professionId = profession.professionId AND staff.departmentId = department.departmentId ;
4.5 创建触发器
/*创建一个有员工离职的时候,离职员工表添加一条记录,员工表删除对应员工信息的触发器*/
DROP TRIGGER IF EXISTS `update_allowance`; DELIMITER ;;
CREATE TRIGGER `update_allowance` AFTER UPDATE ON `department`
FOR EACH ROW begin
update salary set departmentAllowance=new.departmentAllowance
where departmentId=departmentId; end
/*创建一个一个员工离职,对应工资表的数据全部清除*/ DROP TRIGGER IF EXISTS `delete_salary`; DELIMITER ;;
CREATE TRIGGER `delete_salary` AFTER DELETE ON `staff` FOR EACH ROW begin
delete from salary where staffId=old.staffId; end
总结
在这一周的课程设计中我学到了许多书本之外的东西,动手能力得到了提高,对数据库系统的设计流程有了进一步的了解。虽然本周时间比较紧,五天其中有三天考试,但是我还是下来了。当然在本次课程设计中我也学到了很多应用软件的知识,比如navicate for mysql和PowerDesigner之间的联合运用,数据流图的绘制还有就是对工资管理的需求分析更加熟悉等。在这里感谢王老师,游老师的帮助,其次感谢祥哥的指导。
参考文献
[1] 孙建伶,林怀忠. 数据库原理与应用. 北京:高等教育出版社 2006.5 [2] 梁方明. SQL Server 2000. 北京:希望电子出版社 2002.7
[3] 王珊,萨师煊. 数据库系统概论(第四版). 北京:高等教育出版社 2006.5 [4] 李树有. 数据库应用系统开发与实例. 北京:人民邮电出版社 2005.9 [5] 孟彩霞. 数据库系统原理与应用(本科). 北京:人民邮电出版社 2008.3 [6] 陶宏才. 数据库原理及设计. 北京:清华大学出版社 2004.4
…… 此处隐藏:2085字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




