数据库课程设计源代码

合集下载

数据库课程设计小型管理系统源码

数据库课程设计小型管理系统源码

数据库课程设计小型管理系统源码一、概述随着信息技术的飞速发展,数据库管理系统在各个领域得到了广泛的应用。

数据库课程通常会设计一个小型的管理系统作为课程项目,以帮助学生加深对数据库原理和应用的理解。

在本文中,我们将介绍一个小型管理系统的源码设计,涉及数据库的设计、前端界面和后端代码的编写。

二、数据库设计1. 数据库概述我们选用MySQL作为本系统的数据库管理系统,因为MySQL是一款成熟稳定、性能优越的关系型数据库管理系统,对学生来说也比较容易上手。

2. 数据表设计我们将设计两张主要的数据表,分别是学生信息表和课程信息表。

具体的字段设计如下:- 学生信息表(Student)- 学号(ID)- 尊称(Name)- 芳龄(Age)- 性莂(Gender)- 专业(Major)- 课程信息表(Course)- 课程编号(ID)- 课程名称(Name)- 学分(Credit)- 授课教师(Teacher)3. 数据库连接在系统的后端代码中,需要使用相应的数据库连接方式来连接MySQL 数据库,并对数据表进行增删改查操作。

三、前端界面设计1. 技术选择我们选择使用HTML、CSS和JavaScript来构建系统的前端界面,这些技术简单易用,并且能够实现较为复杂的交互效果。

2. 界面布局我们将设计两个主要的界面,分别是学生信息管理界面和课程信息管理界面。

在这两个界面中,用户可以进行对应数据表的增删改查操作。

3. 交互效果通过JavaScript语言的编写,我们可以实现一些动态的交互效果,比如表单验证、数据的实时更新等。

四、后端代码编写1. 技术选择在后端代码的编写中,我们选择使用Java语言来实现,因为Java具有跨评台性、稳定性好、易于维护等优点。

2. 数据库操作在后端代码中,需要对数据库进行相应的增删改查操作,需要使用MySQL提供的JDBC API来实现数据库连接和数据操作。

3. 接口设计我们将设计各种接口来实现前端界面和后端代码的交互,比如增加学生信息、删除课程信息、更新学生信息等接口。

数据库课程设计说明书---设计简易的数据库管理系统DBMS

数据库课程设计说明书---设计简易的数据库管理系统DBMS

一、设计要求:(1) 设计内容创建和修改表的定义:1、实现:CREATE TABLE <表名> (<列名><数据类型>[<列完整性约束条件>][,<列名><数据类型>[<列完整性约束条件>]…][,<表完整性约束条件>] );2、实现:ALTER TABLE <表名> [ADD <新列名><数据类型>[<列完整性约束>]] [DROP<列完整性约束名>][MODIFY <列名><数据类型>]。

(2) 设计要求1、设计和实现表的物理存储结构;2、语句以命令行和图形化界面两种形式实现;3、分析设计内容,画出程序流程图,设计表的存储结构;4、提交课程设计报告。

(3) 任务步骤1、分析命令语句,得到表名、列名和数据类型等信息;2、根据命令中的关键词确定表和字段的属性;3、创建一个表文件,写入表结构信息;4、打开一个表文件,修改表结构信息;5、演示建立了一个表,并修改了表结构。

二、需求分析:数据库系统能够有效地组织和管理大量的数据。

研究数据库管理系统的实现技术,对于掌握数据库系统的原理和技术,了解数据库系统的内部结构,开发高效的数据库应用系统,具有重要意义。

在建立了数据库之后,首先需要建立表,之后才能进行记录的插入。

这个程序的设计就是实现创建和修改表的定义。

三、设计思想:(1)总体思路此课程设计主要要完成的任务是创建和修改表的定义,因此程序中共包含四个可选项:“新建表”、“修改表”、“显示表的信息”、“保存操作并退出”。

另外,由于是数据库的操作,因此需要将建立的表的信息存储,在执行程序时应该调用已存储的表的信息,并且应该有日志文件以记录对表的操作。

下面依次介绍主要结构、保存表信息、提取表信息、日志文件和主菜单中的四个选项;(2)主要结构1、每一个都有一个固定结构,因此我首先建立了一个表的结构体,具体形式如下:typedef struct{char table_name[10];//表名int property_num;//属性的个数char property_name[10000][10];//属性名int property_type[1000];//属性类型(1=int,2=char)int property_null[100];//属性是否为空(1=允许,2=不允许)int property_key[10];//是否主码(1=是主键,2=不是主键)}TABLE;2、我用一个TABLE型的数组将所有的表联系在一起,具体定义为TABLE table[10000];3、定义一个int型变量记录表的个数,具体定义为int table_num=0。

数据库课程设计---MAC帧封装程序设计

数据库课程设计---MAC帧封装程序设计

网络原理课程设计——项目文档报告MAC帧封装程序设计专业:网络工程班级:08网络1班一、概述学生成绩管理系统是—个关系数据库应用系统。

在数据库应用系统的开发过程中,数据库设计所要解决的问题是:设计优化的数据库逻辑和物理结构,使之满足用户的信息管理要求和数据操作要求,有效的支持数据库应用系统的开发和运行。

二、需求分析学生信息管理系统的主要任务是实现对某高校学生及其相关信息的管理,所有信息由学生信息数据库统一保存和管理。

学生信息数据库主要包括学生基本信息、任课教师的基本信息、所开课程的基本信息和各学生成绩管理。

因此要实现的功能如下所示:1、完成数据的录入和修改,并提交数据库保存。

其中的数据包括:学生信息、教师信息、课程设置、学生成绩等。

2、实现信息查询。

如成绩查询、教师授课情况查询、课程表查询等。

3、信息具有一定安全性,如只有一定的权限,才能进行数据的录入和修改。

故需要设置操作员并对其权限机型设置,并设置密码。

4、具有数据备份和数据恢复功能。

E-R图:三、数据库逻辑设计1、将实体转换为关系模式学生(学号,姓名,年龄,性别,班级);主键为:学号。

教师(教师号,姓名,性别,职称);主键为:教师号。

课程(课程号,课程名);主键为:课程号。

2、联系转换为关系模式成绩(学号,课程号,成绩);主键为(学好,课程号)3、基本表学生信息表(Stu):课程信息表(Cou):成绩表(Gra):3、建立索引:①对Stu表在Stu-ID上建立非聚焦索引②对Tea表在Tea-ID上建立非聚焦索引③对Cou表在Cou-ID上建立非聚焦索引④对Gra表在Stu-ID,Cou-ID上建立非聚焦索引,在Gra上建立聚焦索引。

四、软件功能设计程序运行开始界面如下图所示:点击“添加班级”按钮可进行班级注册,如下图所示:点击“更新成绩”按钮可对学生成绩进行录入,如下图所示:学生注册界面如下图所示:成绩查询界面如下图所示:教师授课情况查询如下图所示:五、程序源代码1、创建各表代码:学生信息表(Stu)create table Stu (Stu-ID char(10) primary key,Stu-Name char(10) not null,Stu-Sex char(4),Stu-date date,Stu-Pass char(20));班级信息表(Cla):create table Cla(Cla-ID char(8) primary key,Cla-Col char(10),Cla-Name char(10));教师信息表(Tea):create table Tea(Tea-ID char(6) primary key,Tea-Name char(8) not null,Tea-PS char(10) not null, );课程信息表:create table Cou(Cou-ID char(6) primary key,Cou-Name char(10) not null,);成绩表:create table Gra(Stu-ID char(10),Cou-ID char(6),Grade integer,primary key(Stu-ID,Cou-ID));2、建立索引CREATE NONCLUSTERED INDEX StuIndex on Stu (Stu-ID);CREATE NONCLUSTERED INDEX CouIndex on Cou(Cou-ID);CREATE NONCLUSTERED INDEX TeaIndex on Tea(Tea-ID);CREATE NONCLUSTERED INDEX GraIndex on Gra(Stu-ID,Cou-ID);4、学生成绩查询declare yb1 cursor forselect Stu-ID,Stu-Name from Stuwhere Stu-ID=:ss and Stu-Pass=:mm;open yb1;String sa,sb,sc;fetch yb1 into :sa,:sb;if sqlca.sqlcode<>0 thenmessageBox("您好!","请检查帐号密码并重新输入");elselb_3.additem("学号: "+sa+" 学生姓名: "+sb);end ifclose yb1;declare yb2 cursor forselect Cou.Cou-Name,Gra.Grade Gradefrom Stu,Cou,Grawhere Cou.Cou-ID in(select Cou.Cou-ID from Cou where Stu.Stu-ID in(select Gra.Stu-ID from Grawhere Gra.Stu-ID=:ss))and Stu.Stu-ID=Gra.Stu-ID and Cou.Cou-ID=Gra.Cou-ID open yb2;fetch yb2 into :sb,:sc;do while sqlca.sqlcode=0lb_1.additem(sb+" "+sc);fetch yb2 into :sb,:sc;loopclose yb2;declare yb3 cursor forselect sum(Gra.Grade),avg(Gra.Grade) from Gragroup by Gra.Stu-IDhaving Gra.Stu-ID=:ss;open yb3;fetch yb3 into :sb,:sc;lb_4.additem("总成绩:"+sb+" 平均成绩:"+sc);close yb3;5、学生成绩录入insert into Gra values(:xm,:xb,:cj);commit;dw_1.retrieve()6、学生注册open yb;String sa,sb,sc;fetch yb into :sa,:sb,:sc;if sqlca.sqlcode=0 thenmessageBox("提示","该学号已经存在");close yb;elseinsert into Stu values(:xh,:xm,:xb,:rq,:mm);close yb;commit;end if7、教师授课查询declare yb cursor forselect Tea.Tea-Name,Cou.Cou-Name from Cou,TeawhereCou.Cou-ID in(select teacher_Cou.Cou-ID from teacher_Cou where Tea.Tea-ID=teacher_Cou.Tea-ID);open yb;String sa,sb,sc;fetch yb into :sa,:sb;lb_3.additem("教师姓名课程名字");do while sqlca.sqlcode=0lb_1.additem(sa+" "+sb);fetch yb into :sa,:sb;loopclose yb;六、结束语在本次课程设计的软件开发的过程中,我全面实践一个面向数据库的应用系统的开发过程,学习了很多有关的知识。

python数据库课程设计

python数据库课程设计

python 数据库课程设计一、课程目标知识目标:1. 理解数据库的基本概念,掌握Python数据库操作的基本原理;2. 学会使用Python中的SQLite数据库,掌握基本的数据库创建、查询、更新和删除操作;3. 了解数据库的规范化和数据完整性,能够对数据库进行合理的设计。

技能目标:1. 能够独立使用Python编程实现对数据库的连接、操作和关闭;2. 能够运用SQL语句实现对数据库的增、删、改、查功能;3. 能够分析和解决数据库操作过程中遇到的问题,具备一定的数据库编程调试能力。

情感态度价值观目标:1. 培养学生对数据库技术的兴趣,激发他们探索数据世界的热情;2. 培养学生的团队协作精神,使他们学会在项目中进行有效沟通和分工合作;3. 培养学生具备良好的数据伦理意识,尊重和保护个人隐私。

本课程针对高年级学生,结合Python编程和数据库知识,注重实践操作和实际应用。

通过本课程的学习,使学生掌握Python数据库操作技能,培养他们解决实际问题的能力,同时提高他们的团队协作和数据伦理素养。

课程目标具体、可衡量,便于教学设计和评估。

二、教学内容1. 数据库基本概念:数据库的定义、分类及用途;关系型数据库和非关系型数据库的特点;SQL语言的基本概念和用法。

教材章节:第一章 数据库概述2. Python数据库操作:SQLite数据库的安装与使用;Python中数据库连接、游标对象的创建与操作;基本的SQL语句(SELECT、INSERT、UPDATE、DELETE)在Python中的实现。

教材章节:第二章 Python数据库操作3. 数据库设计:数据库规范化理论;实体-关系模型;数据完整性约束;关系数据库设计方法。

教材章节:第三章 数据库设计4. 数据库编程实践:项目案例分析与实现;数据库操作综合应用;团队协作完成项目任务。

教材章节:第四章 数据库编程实践5. 数据库安全与伦理:数据库安全策略;数据备份与恢复;数据隐私保护;数据伦理原则。

xml课程设计报告源代码

xml课程设计报告源代码

xml课程设计报告源代码一、课程目标知识目标:1. 让学生掌握XML(可扩展标记语言)的基本概念,理解其语法结构和文档类型定义(DTD);2. 帮助学生学会使用XML编写和解析数据,并能将其应用于实际项目中;3. 引导学生了解XML与数据库、网络服务等技术的关联,拓展知识视野。

技能目标:1. 培养学生运用XML编写和修改文档的能力;2. 提高学生使用XML解析器进行数据解析的技能;3. 培养学生将XML技术应用于实际问题的解决能力。

情感态度价值观目标:1. 激发学生对计算机编程和数据分析的兴趣,培养其主动学习和探究的精神;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的信息素养,使其认识到XML在现代信息技术中的重要性。

本课程针对高年级学生,课程性质为理论与实践相结合。

在教学过程中,需注重对学生实际操作能力的培养,同时结合学生特点和教学要求,将课程目标分解为具体的学习成果。

教学设计和评估将以此为基础,确保学生能够达到预期学习效果。

二、教学内容1. XML基本概念与语法- XML定义与作用- XML声明与文档结构- 元素、属性、实体与命名空间2. 文档类型定义(DTD)- DTD的基本概念与用途- DTD规则的编写与引用- 验证XML文档与DTD的一致性3. XML解析技术- DOM解析与SAX解析原理- 使用DOM4J解析XML文档- 使用JAXP和JDOM解析XML文档4. XML与数据库- XML与数据库的关联- 使用XML进行数据库数据的导入导出- XML数据查询与更新5. XML应用案例- XML在Web服务中的应用- XML在移动开发中的应用- XML在数据交换与存储中的应用教学内容按照上述五个方面进行组织,确保学生能够系统地学习和掌握XML 技术。

教学大纲将明确教学内容安排和进度,关联课本相应章节,如:- XML基本概念与语法:第1章- 文档类型定义(DTD):第2章- XML解析技术:第3章- XML与数据库:第4章- XML应用案例:第5章三、教学方法为了提高教学效果,激发学生的学习兴趣和主动性,本课程将采用以下多样化的教学方法:1. 讲授法:教师通过生动的语言和形象的比喻,对XML的基本概念、语法、DTD等理论知识进行讲解,帮助学生建立扎实的理论基础。

数据库课程设计概要

数据库课程设计概要

信息工程学院课程设计报告设计名称:数据库课程设计姓名:学号:专业班级:系(院):设计时间:设计地点:指导老师:userName Varchar(16) Not null(主键) 用户名userPassword Varchar(16) Not null 密码userPurview Varchar(8) null 用户权限4 关系图4-15 物理设计数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。

所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。

主要体现在后者。

(1)建立索引:①对课程表在Cno属性列上建立聚集索引,在Cname,Ccredt,Csemester,Cperiod属性列上建立非聚集索引。

②对学生表在Sno属性列上建立聚集索引,在Sname,Ssex,Sage,Sdept属性列上建立非聚集索引③对成绩表在Cno,Sno属性列上建立聚集索引,在grade属性列上建立非聚集索引④对用户表在userName属性列上建立聚集索引,在userPassword,userPurview属性列上建立非聚集索引(2)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排与存储结构,以与确定系统存储参数的配置。

将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。

所以系统将日志文件和数据文件存放在不同磁盘上。

6.数据库建立(1)创建数据库图10-2学生选课系统登录界面图登陆代码为:try{DataBase db = new DataBase();DataSet ds = new DataSet();string sqlStr = "select userPassword,userPurview from 用户表 where userName='" + txtuserName.Text.Trim() + "'"; ds = db.GetDataFormDB(sqlStr);string str1, str2,str3;str1 = ds.Tables[0].Rows[0].ItemArray[0].ToString().Trim();str3 = ds.Tables[0].Rows[0].ItemArray[1].ToString().Trim();str2 = txtPassWord.Text.Trim();if (str1 == str2){if (str3 == comboBox1.Text.ToString().Trim()){Form2 ob_Form2 = new Form2();erInfo[0] = txtuserName.Text.Trim();erInfo[1] = ds.Tables[0].Rows[0].ItemArray[1].ToString();ob_Form2.Show();this.Hide();}else{MessageBox.Show("用户权限错误,请重新输入");comboBox1.Text = "";comboBox1.Focus();}}else{MessageBox.Show("用户名或密码错误,请重新输入");txtuserName.Text = "";txtPassWord.Text = "";txtuserName.Focus();}}catch{MessageBox.Show("用户名或密码错误","错误");}②学生选课系统主界面如图10-3略图10-3学生选课系统主界面③学生信息管理界面如图10-4图10-4学生信息管理界面可以进行学生信息的添加、修改、删除操作。

学生选课管理系统(数据库课程设计)

学生选课管理系统(数据库课程设计)

数据库系统原理及其应用教程课程设计报告设计题目选修课程管理系统的设计与实现指导教师摘要随着计算机技术的日新月异,极大的推动的各个行业的信息化进程。

各大高校也急需进行信息化改革,以促进教学质量和工作效率快速提升.本文是在对各大高校全校公开课学生选课情况进行实地调查后,进行详细分析讨论后撰写的学生选课管理系统数据库设计报告.全文从最初的系统规划,到需求分析、概念设计、逻辑设计、物理设计.每一阶段都进行了详细的分析。

接下来的实现、运行与维护阶段,还进行了对本系统的测试,最后是本次项目开发的心得和体会以及本文的参考文献。

本系统主要功能是对学生选课及相关信息进行管理。

较行业同类产品而言,本系统人机界面设计更加合理、人性化,用户操作简单方便。

数据库的安全性更高,对用户访问权限进行了严格控制。

数据存取速度更快,使用年限更长。

可以很好的满足高校公开课学生选课的要求,极大的提高了学校的工作效率.关键字:学生选课管理系统;分析;设计目录一、概述 ...................................................................................................... 错误!未定义书签。

261.1设计背景ﻩ1.2设计目的................................................................................. 错误!未定义书签。

1。

3设计内容...................................................................................... 错误!未定义书签。

二、需求分析ﻩ错误!未定义书签。

2。

1功能分析.................................................................................... 错误!未定义书签。

数据库管理系统(DBMS)课程设计

数据库管理系统(DBMS)课程设计

数据库系统原理课程设计文档学号:姓名:一、DBMS的实现方式(一)文件存储的设计思想如下:本数据库管理系统(DBMS)主要有一下文件:database.ini:用于存储本数据库管理系统(DBMS)的关系数据库、数据库表信息;[tablename].ini:以关系数据库表名(tablename)命名的.ini文件主要用于存储数据库表的配置信息,如完整性约束,关系表属性名、属性类型、主键等信息;[Tablename]_info.ini:以关系数据库表名(tablename)命名的_info.ini文件主要用于存储数据库表的数据信息(Data information),所有的数据库表数据信息全部存储在此类文件中;[Tablename]_index.ini:以关系数据库表名(tablename)命名的_index.ini文件主要用于存储数据库表的索引文件。

此数据库管理系统(DBMS)中,除数据文件_info.ini、索引文件_ index.ini 外其余的均采用节点名、键名、键值之间的对应关系存储本DBMS系统的关系数据库、数据库表信息和数据库表的配置信息;数据文件的存储,数据文件采用流式文件,字段之间采用Tab间隔开,从左到右根据数据库表的配置信息依次存储关系表数据;在最前端设置一删除标志,为0表示次元组已经被删除,为1表示次元组未被删除;索引文件的建立采用稠密索引方式,每条记录对应于一条索引记录,在索引文件中存放了每条数据元组在数据文件中具体的位置。

这样,由于索引文件较数据文件小很多,故大大加快了数据元组查询速度;图1:文件存储的设计思想(二)DBMS系统流程控制设计思想如下:鉴于此数据库管理系统(DBMS)采用SQL执行,故设计如下程序控制流程:(1)超级管理员、一般管理员、普通用户通过各自的用户名、密码口令登陆系统;(2)对SQL进行编译,本DBMS中采用CCompiler类进行编译,编译过程当中可以对要执行的SQL操作进行信息收集并保存在相应的数据结构(或类)当中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

use kjq111007307/*创建一个部门信息表包含“部门号,部门名,部门经理,人数”属性列*/create table department(depart_no char(2)primary key,depart_name char(30)not null,depart_manage char(6)not null,depart_people int not null)/*创建一个职位信息表包含“职位,基本薪资,福利,失业保险,住房公积金”属性列*/ create table position(pos char(30)primary key,basesalary float not null,benefits float not null,insurances float not null,housing_funds float not null)/*创建一个职工信息表包含"职工号,职工名,性别,年龄,学历,部门号,职位"属性列*/ create table staff_message(staff_no char(4)primary key,staff_name char(10)not null,staff_sex char(2)check(staff_sex in('男','女')),staff_age int not null,staff_edu char(10)not null,staff_dep char(2)not null,staff_job char(30)not null,foreign key(staff_dep)references department(depart_no), foreign key(staff_job)references position(pos))/*创建一个员工考勤表包含“职工号,年月,迟到,缺勤,加班”属性列*/create table staff_days(staff_no char(4),month_date char(6),staff_late int not null,staff_absent int not null,workoverdays int not null,primary key(staff_no,month_date))/*创建一个薪资表包含“职工号,年月,奖金,罚金,真实薪资”属性列*/create table salary(staff_no char(4),month_date char(6),addsalary float not null,subsalary float not null,relsalary float not null,primary key(staff_no,month_date))create index salary_index on salary(month_date asc,staff_no asc); /*部门表信息的录入*//*经理室*/insertinto departmentvalues('01','manage_department','王栋','1');/*财务科*/insertinto departmentvalues('02','financial_department','张鹏','3');/*技术科*/insertinto departmentvalues('03','plan_department','代淑英','5');/*销售科*/insertinto departmentvalues('04','market_department','金加容','6');/*职位表信息的录入*//*经理*/insertinto positionvalues('manager','4500','1125','-45','-36');/*副经理*/insertinto positionvalues('assistant_manager','4000','1000','-40','-32');/*办事*/insertinto positionvalues('clerk','3500','875','-35','-28');/*助理*/insertinto positionvalues('assistant','2000','500','-20','-16');/*职工信息表信息的录入*/insertinto staff_messagevalues('0101','王栋','男','38','硕士','01','manager');insertinto staff_messagevalues('0201','张鹏','男','35','硕士','02','manager');insertinto staff_messagevalues('0202','程雷','男','30','本科','02','clerk');insertinto staff_messagevalues('0203','王晶晶','女','29','本科','02','assistant');insertinto staff_messagevalues('0301','代淑英','女','35','硕士','03','manager'); insertinto staff_messagevalues('0302','刘燕','女','30','本科','03','assistant_manager'); insertinto staff_messagevalues('0303','杨浩','男','27','本科','03','clerk');insertinto staff_messagevalues('0304','程伟','男','31','本科','03','clerk');insertinto staff_messagevalues('0305','唐琦','女','25','本科','03','assistant');insertinto staff_messagevalues('0401','金加容','女','34','本科','04','manager'); insertinto staff_messagevalues('0402','吴辉','男','35','本科','04','assistant_manager'); insertinto staff_messagevalues('0403','陈睿','男','32','本科','04','clerk');insertinto staff_messagevalues('0404','万莉','女','36','本科','04','clerk');insertinto staff_messagevalues('0405','方冬雨','女','31','本科','04','clerk'); insertinto staff_messagevalues('0406','陈晨','女','27','专科','04','assistant'); insertinto staff_daysvalues('0101','201205','0','0','0');insertinto staff_daysvalues('0201','201205','0','0','0');insertinto staff_daysvalues('0202','201205','0','0','0');insertinto staff_daysvalues('0203','201205','0','0','0');insertinto staff_daysvalues('0301','201205','0','0','0');insertinto staff_daysvalues('0302','201205','0','0','0');insertinto staff_daysvalues('0303','201205','0','0','0');insertinto staff_daysvalues('0304','201205','0','0','0');insertinto staff_daysvalues('0305','201205','0','0','0');insertinto staff_daysvalues('0401','201205','0','0','0');insertinto staff_daysvalues('0402','201205','0','0','0');insertinto staff_daysvalues('0403','201205','0','0','0');insertinto staff_daysvalues('0404','201205','0','0','0');insertinto staff_daysvalues('0405','201205','0','0','0'); insertinto staff_daysvalues('0406','201205','0','0','0'); insertinto salaryvalues('0101','201205','0','0','5544'); insertinto salaryvalues('0201','201205','0','0','5544'); insertinto salaryvalues('0202','201205','0','0','4312'); insertinto salaryvalues('0203','201205','0','0','2464'); insertinto salaryvalues('0301','201205','0','0','5544'); insertinto salaryvalues('0302','201205','0','0','4928'); insertinto salaryvalues('0303','201205','0','0','4312'); insertinto salaryvalues('0304','201205','0','0','4312'); insertinto salaryvalues('0305','201205','0','0','2464'); insertinto salaryvalues('0401','201205','0','0','5544'); insertinto salaryvalues('0402','201205','0','0','4928'); insertinto salaryvalues('0403','201205','0','0','4312'); insertinto salaryvalues('0404','201205','0','0','4312'); insertinto salaryvalues('0405','201205','0','0','4312');insertinto salaryvalues('0406','201205','0','0','2464');/*******************触发器***********************//*创建一个触发器当修改考勤表中的加班或迟到或缺勤时,薪资表中的数据有自动更新的功能*/ create trigger xinzi1on staff_daysfor updateas/*定义三个变量late,absent,overdays当考勤表有更新时用来记录新的数据*/declare @late int,@absent int,@overdays int/*给变量赋值*/select @late=staff_late from insertedselect @absent=staff_absent from insertedselect @overdays=workoverdays from inserted/*定义变量来记录组成最终真实薪资的各项薪资*/declare @kkbasesalary float,@kkaddsalary float,@kksubsalary float,@kkbenefits float,@kkinsurances float,@kkhousing_funds float,@kkrelsalarys float/*给组成最终真实薪资的各项薪资赋值*/select @kkbasesalary=(select basesalaryfrom positionwhere pos=(select staff_jobfrom staff_messagewhere staff_no=(select staff_no from inserted)))select @kkaddsalary=(select workoverdays from inserted)*30select @kksubsalary=(select staff_late from inserted)*(-10)+(select staff_absent from inserted)*(-30)select @kkbenefits=@kkbasesalary*(0.25)select @kkinsurances=@kkbasesalary*(-0.01)select @kkhousing_funds=@kkbasesalary*(-0.008)/*用组成真实薪资的各项薪资来给真实薪资赋值*/select @kkrelsalarys=@kkbasesalary+@kkaddsalary+@kksubsalary+@kkbenefits+@kkinsurances+@kkhousing_funds/*利用变量对薪资表中的'加班费,迟到缺勤扣除费'进行更新*/update salaryset addsalary=@kkaddsalarywhere staff_no=(select staff_no from inserted)and month_date=(select month_date from inserted)update salaryset subsalary=@kksubsalarywhere staff_no=(select staff_no from inserted)and month_date=(select month_date from inserted)update salaryset relsalary=@kkrelsalaryswhere staff_no=(select staff_no from inserted)and month_date=(select month_date from inserted)/*创建一个触发器当对考勤表插入新数据时,薪资表有自动对应插入新数据的功能*/ create trigger xinzi2on staff_daysfor insertasbegin/*定义变量来记录薪资表中应插入的各项数据*/declare @jjstaff_no char(4),@jjmonth_date char(6)declare @jjbasesalary float,@jjaddsalary float,@jjsubsalary float,@jjbenefits float,@jjinsurances float,@jjhousing_funds float,@jjrelsalarys float/*给各个变量赋值*/select @jjstaff_no=(select staff_nofrom inserted)select @jjmonth_date=(select month_datefrom inserted)select @jjbasesalary=(select basesalaryfrom positionwhere pos=(select staff_jobfrom staff_messagewhere staff_no=(select staff_no from inserted)))select @jjaddsalary=0select @jjsubsalary=0select @jjbenefits=@jjbasesalary*(0.25)select @jjinsurances=@jjbasesalary*(-0.01)select @jjhousing_funds=@jjbasesalary*(-0.008)select @jjrelsalarys=@jjbasesalary+@jjbenefits+@jjinsurances+@jjhousing_funds/*将新值插入到薪资表中*/insertinto salaryvalues(@jjstaff_no,@jjmonth_date,@jjaddsalary,@jjsubsalary,@jjrelsalarys)end/*对员工信息表创建一个触发器实现当登记新来员工信息时,薪资表和考勤表中自动对应增加新记录的功能*/create trigger staffmessage1on staff_messagefor insertasbegin/*定义变量来记录待插入薪资表和考勤表的数据*/declare @hhstaff_no char(4)select @hhstaff_no=(select staff_no from inserted)/*向考勤表中自动插入新员工的薪资数据,同时薪资表也会自动插入新数据*/insertinto staff_daysvalues(@hhstaff_no,'201206',0,0,0)end/*对员工信息表创建一个触发器来实现当某员工信息从信息表中删除时,薪资表和考勤表能自动删除关于该员工的信息的功能*/create trigger staffmessage2on staff_messagefor deleteasbegin/*删除辞职员工在薪资表中的记录*/deletefrom salarywhere staff_no=(select staff_no from deleted)/*删除辞职员工在考勤表中的记录*/deletefrom staff_dayswhere staff_no=(select staff_no from deleted)end/******************存储过程********************//*创建一个存储过程实现向部门表录入新数据的功能*/create procedure department_insert@aadepart_no char(2),@aadepart_name char(30),@aadepart_manage char(6),@aadepart_people intasbegininsertinto departmentvalues(@aadepart_no,@aadepart_name,@aadepart_manage,@aadepart_people) end/*创建一个存储过程实现向职位表录入新数据的功能*/create procedure position_insert@bbpos char(30),@bbbasesalary float,@bbbenefits float,@bbinsurances float,@bbhousing_funds floatasbegininsertinto positionvalues(@bbpos,@bbbasesalary,@bbbenefits,@bbinsurances,@bbhousing_funds) end/*创建一个存储过程实现向职工信息表录入新数据的功能*/create procedure staffmessage_insert@ccstaff_no char(4),@ccstaff_name char(10),@ccstaff_sex char(2),@ccstaff_age int,@ccstaff_edu char(10),@ccstaff_dep char(2),@ccstaff_job char(30)asbegininsertinto staff_messagevalues(@ccstaff_no,@ccstaff_name,@ccstaff_sex,@ccstaff_age,@ccstaff_edu,@ccstaff_dep, @ccstaff_job)end/*创建一个存储过程实现在新的一月时向考勤表中插入新数据的功能*/create procedure kaoqin_insert@qqstaff_no char(4),@qqmonth_date char(6),@qqstaff_late int,@qqstaff_absent int,@qqworkoverdays intasbegininsertinto staff_daysvalues(@qqstaff_no,@qqmonth_date,@qqstaff_late,@qqstaff_absent,@qqworkoverdays) end/*创建一个存储过程实现只能查看自己的基本信息的功能*/create proc select_staffmessage@staff_number char(4)asselect*from staff_messagewhere staff_no=@staff_number;/*创建一个存储过程实现只能查看自己的工资情况的功能*/create proc select_salary@staff_num char(4)as/*查看自己某年某月的福利,失业保险,住房公积金,奖金,罚金,最终真实工资*/select salary.staff_no,salary.month_date,position.benefits,position.insurances, position.housing_funds,salary.addsalary,salary.subsalary,salary.relsalaryfrom salary,staff_message,positionwhere salary.staff_no=@staff_numand salary.staff_no=staff_message.staff_noand staff_message.staff_job=position.pos;/*创建一个存储过程实现只能查看自己的考勤信息的功能*/create proc select_staffdays@staff_no char(4)asselect*from staff_dayswhere staff_no=@staff_no;/*****************实现功能的代码********************//*查看五个基本表*/select*from department;select*from position;select*from staff_message;select*from staff_daysselect*from salary;/*查看某员工自己的信息*/exec select_staffmessage'0202';/*查看某员工自己的考勤记录*/exec select_staffdays'0202';/*查看某员工自己的薪资*/exec select_salary'0202';/*更新考勤表薪资表会自动对应更新,*/update staff_daysset staff_late=3where staff_no='0101'and month_date='201205';select*from staff_days;select*from salary;/*向考勤表插入信息,薪资表也会自动对应插入信息*/exec kaoqin_insert'0101','201206','0','0','0';select*from staff_days;select*from salary;/*向员工信息表插入信息,考勤表和薪资表也会自动对应插入新信息*/ exec staffmessage_insert'0204','陈珍','女','29','本科','02','clerk';select*from staff_message;select*from staff_days;select*from salary;/*删除员工信息表的信息,考勤表和信息表也会自动删除对应信息*/ deletefrom staff_messagewhere staff_no='0204';select*from staff_message;select*from staff_days;select*from salary;/*按部门查询员工的基本信息*/select*from staff_messagewhere staff_dep='03';/*按年月查看员工的考勤记录*/select*from staff_dayswhere month_date='201205';/*按部门查看所有员工薪资总数*/select sum(relsalary)from staff_message,salarywhere salary.staff_no=staff_message.staff_noand staff_dep='04';/*按职位查看所有员工薪资总数*/select sum(relsalary)from staff_message,salarywhere salary.staff_no=staff_message.staff_noand staff_job='clerk';。

相关文档
最新文档