数据库课程设计-职工工资管理系统

数据库课程设计-职工工资管理系统XXX大学《数据库原理及应用课程设计》设计报告…

大家好,又见面了,我是你们的朋友全栈君。

 

                                                                XXX大学

 

 

                                       《数据库原理及应用课程设计》设计报告

                                          

 

 

 

                                            题   目            职工工资管理系统           

                                           学生姓名                                                 

                                           学   号                                                      

                                           专业班级                                                 

                                           学    院                                                    

                                           指导教师                                                 

                                           完成时间                                                 

 

 

1 需求分析

本系统的主要目的是,明确查询公司职工某年某月的工资情况,通过职工工资管理系统,能明确的察看到从入职以来,每位职工的每月工资情况。同时也能查询到职工本身的一些基本信息。(这次的设计以2018年5月为例)

设计如下面所示的数据项:

职工信息包括读者职工号,姓名,性别,出生日期,年龄,部门,职位,入职时间;

工资信息包括职工号,工资年份,月份,原始工资,津贴,所得税,最终工资。

2 概念结构设计

概念结构E-R图如下所示。

数据库课程设计-职工工资管理系统

 

3 逻辑结构设计

(1)E-R图转换成关系模式如下:

职工(职工号,姓名,性别,出生日期,年龄,部门,职位,入职时间)

F = {职工号→姓名,职工号→性别,职工号→出生日期,职工号→年龄,职工号→部门,职工号→职位,职工号→入职时间}

候选码:职工号,最高符合BCFN。

工资(职工号,工资年份,月份,原始工资,津贴,所得税,最终工资)

F = {职工号,工资年份,月份→原始工资,职工号,工资年份,月份→津贴,职工号,工资年份,月份→所得税,职工号,工资年份,月份→最终工资}

候选码:职工号,工资年份,月份,最高符合BCNF。

 

 

(2)关系模式中属性的详细说明。

                                                                     职工信息表

字段名

数据类型

约束条件

说明

mno

INT

主键,自增

职工号

mname

VARCHAR(50)

唯一,不能为空

职工姓名

sex

VARCHAR(2)

不能为空

职工性别

birthday

DATE

不能为空

出生日期

age

INT

可以为空

职工年龄

dept

VARCHAR(50)

可以为空

所在部门

post

VARCHAR(50)

可以为空

职工职位

start_date

DATE

可以为空

入职时间

 

 

                                                               工资信息表

字段名

数据类型

约束条件

说明

mno

VARCHAR(50)

主键,自增

职工号

year

VARCHAR(50)

主键

工资年份

month

VARCHAR(50)

主键

月份

wage_jop

float

可以为空

原始工资

allowance

float

可以为空

津贴

tax

float

可以为空

所得税

real_wage

float

可以为空

最终工资

 

4 建表及主要操作SQL语句

(1)建立基本表

//create database mis;

//use mis;

//职工表

create table member(

mno char(15) not null,

mname varchar(15) unique,

sex char(5) not null check(sex=’男’ or sex=’女’),

birthday date not null,

age int not null,

dept varchar(10) not null,

post varchar(15) not null,

start_date date not null

);

 

 

//职工工资表

create table wage(

mno char(15) not null,

year varchar(10) ,

month varchar(10) ,

wage_jop float not null,

allowance float ,  /*津贴*/

tax float not null,/*所得税*/

real_wage float not null

);

(2)录入模拟数据

insert into member

values(‘0001′,’李勇’,’男’,(‘1985-01-02′),’33’,’研发部’,’研发部长’,(‘2012-05-11’));

Insert into member

values(‘0002′,’刘晨’,’男’,(‘1987-01-02′),’31’,’研发部’,’项目策划’,(‘2012-06-01’));

Insert into member

values(‘0003′,’王敏’,’女’,(‘1985-11-02′),’33’,’财务部’,’财务会计’,(‘2011-06-11’));

Insert into member

values(‘0004′,’张立’,’男’,(‘1990-01-02′),’20’,’人事部’,’人事部长’,(‘2011-05-11’));

工资表(以2018年5月为例)

insert into wage

values(‘0001′,’2018‘,’5‘,‘5400’,’0′,’100′,’5300′);

insert into wage

values(‘0002′,’2018‘,’5‘,’5000′,’500′,’100′,’4900’);

insert into wage

values(‘0003′,’2018‘,’5‘,‘4000’,’100′,’150′,’3850′);

insert into wage

values(‘0004′,’2018‘,’5‘,’4000′,’0′,’150′,’3850’);

(3)常用查询

/*查询某个人的所得工资,以查询工号为0002的员工为例*/

select member.mname,wage_jop ,allowance ,tax,real_wage

from member , wage

where wage.mno=’0002′ and wage.mno=member.mno;

/*查询某个部门工资不少于三千的人员信息*/

select * from member

where mno in(

select mno

from wage

where dept=’研发部’ and member.mno=wage.mno and real_wage>=3000);

/*修改员工信息*/

update member

set post = ‘财务部长‘

where mname=’王敏’;

/*分组查询—统计每个部门的职工人数*/

select dept,count(mno) from member group by dept;

/*嵌套查询—查询津贴为零的职工号和职工姓名*/

select mno,mname from member

where mno in(select mno from wage where allowance=’0′);

 

5总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144698.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js正则截取指定字符串_java正则表达式提取字符串

    js正则截取指定字符串_java正则表达式提取字符串一、javascript正则表达式的基本知识1javascript正则对象创建和用法声明javascript正则表达式varreCat=newRegExp(“cat”);你也可以varreCat=/cat/;//Perl风格(推荐)2学习最常用的testexecmatchsearchreplacesplit6个方法1)test检查指定的字符串是否存在vardata=“123123″;varreCat=/123/gi;alert(r

    2022年9月20日
  • Log4net中ConversionPattern的代码解释[通俗易懂]

    Log4net中ConversionPattern的代码解释[通俗易懂]      layout type=”log4net.Layout.PatternLayout”>        param name=”Header” value=”———————–header————————–” />        param name=”Footer” value=”——————–

    2022年8月22日
  • 如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)[通俗易懂]

    如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)[通俗易懂]修改mysql端口号(mysql的端口号)2020-05-0722:12:00共10个回答如何查看mysql默认端口号和修改端口号登录mysql,使用命令showglobalvariableslike’port’;查看端口号修改端口在配置文件my.ini,修改后重新启动.[mysqld]port=3506如何修改修改mysql默认端口号3306在配置文件my.ini中找到port修改port的值…

    2022年10月3日
  • 精雕软件怎么把图片转成灰度图_bmp灰度图怎么转精雕浮雕图和做刀路?[通俗易懂]

    精雕软件怎么把图片转成灰度图_bmp灰度图怎么转精雕浮雕图和做刀路?[通俗易懂]1、文件–输入–点阵图像(选择灰度图,bmp格式的)2、绘制–绘制出一个你需要做的图案的形状,注意计算比例尺3、用你绘制的图形来截取灰度图,截取你要的图案部分,截取的部分就是你要做出来的路径部分,如果要用到好几张图的元素的话你就多导入几张图,然后拼接图案。做的过程中可以切换显示模式来看看渲染的效果。4、艺术曲面–图像纹理–位图转网格–图形聚中5、刀具路径–路径向导–根据你的各种不同…

    2022年6月20日
  • IntelliJ IDEA中创建java项目

    IntelliJ IDEA中创建java项目IntelliJIDEA支持java、Android、Maven、Gradle、Kotlin等类型的项目,同时AndroidStudio就是在其基础上二次开发出来的,功能非常强大。本文以IntelliJIDEA2018.2.5版本为例介绍如何创建java项目。1.依次选择菜单:File->New->Project…,打开NewProject界面。2.在左侧的项目类型里选择:Java,点击Next按钮。3.在出现的界面中选中“Createprojectfromtempl

    2022年7月8日
  • BP算法详解_bp算法的基本思想

    BP算法详解_bp算法的基本思想说到神经网络,大家看到这个图应该不陌生:这是典型的三层神经网络的基本构成,LayerL1是输入层,LayerL2是隐含层,LayerL3是隐含层,我们现在手里有一堆数据{x1,x2,x3,…,

    2022年8月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号