数据库应用课程设计的报告

数据库应用课程设计的报告,第1张

数据库课程设计报告 目录目录……………………………………………………………………………………1一.设计目标…………………………………………………………………………2二.系统介绍…………………………………………………………………………2三.数据库设计……………………………………………………………………....21.需求分析……………………………………………………………………….22.概念结构设计………………………………………………………………….3 (1)实体设计………………………………………………………………..3 (2)ER图……………………………………………………………………33.逻辑结构设计………………………………………………………………….4四.应用程序设计……………………………………………………………………41.delphi7.0开发环境……………………………………………………………4 2.软件分析…………………………………………………………………..…4 (1)软件的需求分析………………………………………………………..4 (2)软件的基本功能………………………………………………………..5 3.软件的设计与实现…………………………………………………………….6 五.实现的应用系统介绍…………………………………………………………….81.系统模块…………………………………………………………………….82. 文件简介…………………………………………………………………….83 .系统运行…………………………………………………………………….8 六.总结………………………………………………………………………………17 一.设计目标理论应用--运用数据库设计理论设计一个较完善的有实际意义的数据库结构;工具使用--掌握目前流行数据库管理系统工具和前端应用开发工具;应用开发--为数据库开发相应应用程序,构成完整的数据库应用系统;报告编写--用文字处理软件编写高质量的设计报告。二.系统简介名称:超市进销存管系统功能:基于超市管理的全面自动化,减少入库管理、出库管理及库存管理中的漏洞,节约不少管理开支,增加企业收入。 实现对产品的增加、修改、删除、以及日常查询,对产品的出库、入库进行管理。同时对营销状况进行简单的分析,并可以导出各种查询报表。数据库:ACCESS实现:Delphi 7.0系统构架:C/S(Client/Server )三.数据库设计.1.需求分析:超市进销存管理系统2.概念结构设计(1)实体设计商品信息(商品编号,商品名称,商品单位,商品单价,类别,产地,说明)进货信息(进货编号,商品编号,进货单价,进货数量,进货时间,经手人,供货单位)出货信息(出货编号,商品编号,出货单价,出货数量,经手人,接收人及说明等)库存信息(商品编号,库存说明,说明等)用户信息(用户名,密码,用户类型)(2)E-R图包含说明产地商品单价商品类别商品名称商品编号商 品经手人进货数量进货时间进货单价商品编号进货编号供货单位进货记录商品编号出货数量接收人经手人出货单价出货编号出货时间出货记录库存记录说明商品编号库存说明111n3.逻辑结构设计关系模型(第1数据项为主键)商品信息(商品编号,商品名称,商品单位,商品单价,类别,产地,说明)进货信息(进货编号,商品编号,进货单价,进货数量,进货时间,经手人,供货单位)出货信息(出货编号,商品编号,出货单价,出货数量,经手人,接收人及说明等)库存信息(商品编号,库存说明,说明等)用户信息(用户名,密码,用户类型)出货商品金额(出货时间,出货单价,出货数量,出货金额)进货商品金额(进货时间,进货单价,进货数量,进货金额)四.应用程序设计1.Delphi 7.0 开发环境Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。Delphi 7的集成开发环境(1DE)和Delphi以前的版本基本一致。它把单、多个工具栏及一组窗口和应用程序设计在一起,将代码以事件的形式与界面的每一元素建立联系,使用户很方便地在这个高度集成的开发环境的组成和各种辅助工具的使用方法和使用技巧。2.软件分析(1)软件的需求分析:开发本软件的主要目的是为了优化超市的日常管理。采用计算机管理信息系统为实现超市管理科学化和现代化,给它带来了明显的经济效益和社会效益 (2)软件的基本功能与说明:a.商品信息管理商品信息管理:用来管理系统中要用来进行进货,出货 *** 作的商品的信息,包括添加,修改,删除和查询信息。其中,查询可以进行精确查询和模糊快速查询。任意时刻,生成当前表格报表。 b. 用户管理1.用户添加该权限只有管理员拥有,可以添加临时用户,或者增设管理员用户。2.用户删除该权限只有管理员拥有,可以删除用户。3.用户密码修改用来修改登陆用户的密码,长时间地使用一个密码可能会使密码不安全,导致整个系统的不安全,因此有必要定期修改密码。 c. 营销分析1.综合分析某一时间段内,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。同时提供进货情况查询、出货情况查询、库存情况查询。2.日分析某一天中,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。 d. 日常 *** 作商品进货 *** 作:用来完成商品的进货 *** 作。商品出货 *** 作:用来完成商品的出货 *** 作。进行进货 *** 作时,进货编号以及进货时间是自动生成的,无需改动,否则会出现错误。所生成的商品编号为该种类型商品的最大编号,且后面有提示用户允许的编号范围,超出此范围会出错,如果编号方式正确且大于最大编号,确定添加后会提示用户填写新加商品的相关信息。进行出货 *** 作时,出货编号自动生成,用记无须改动。在出货单价小于进货的最小单价时会询问是否继续出货,出货数量不能大于库存数量。e.信息查询1.库存信息查询:用来查询库存的商品的信息,可以按照商品编号,商品名称和商品类别来查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品的库存信息,并将其打印输出。同时,该查询可以根据商品的库存量来将商品中库存不足、库存饱和、库存过剩的商品一一列出并提供打印输出功能。2.进货信息查询:用来查询商品的进货记录,可以按照商品编号,商品名称,商品类别,经手人和进货日期查询,可以将查询结果输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的进货情况,并将其打印输出。同时以图表的形式分析该种商品的进货价格走势分析图。3.出货信息查询:用来查询商品的出货记录,可以按照商品编号,商品名称,商品类别,经手人和出货日期查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的出货情况,并将其打印输出。同时以图表的形式分析该种商品的出货价格走势分析图。3.软件设计与实现添加、修改、删除是通过delphi自带函数实现的。查询是通过添加SQL语句或者直接在access中建立相对的查询(如出货商品金额、进货商品金额查询)实现的。(1).程序实现//添加adoquery1.Closeadoquery1.SQL.Clearadoquery1.SQL.Add('select * from 进货信息' )adoquery1.Open adoquery1.Appendadoquery1.fieldbyname('进货编号').asstring:=edit1.Textadoquery1.fieldbyname('商品编号').asstring:=edit2.Textadoquery1.fieldbyname('进货单价').asstring:=edit3.Textadoquery1.fieldbyname('进货数量').asstring:=edit4.Textadoquery1.fieldbyname('进货时间').asstring:=edit5.Textadoquery1.fieldbyname('经手人').asstring:=combobox5.Textadoquery1.fieldbyname('供货单位').asstring:=edit7.Textadoquery1.Post快速添加:adoquery1.Append//删除一条记录if Application.MessageBox('真的要删除当前所选记录吗?','删除确认',MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON3)<>IDYES thenabortelseadoquery1.delete//修改一条记录ifApplication.MessageBox('真的要修改当前所选记录吗?','修改确认',MB_YESNOCANCEL+MB_ICONQUESTION+MB_DEFBUTTON3)<>IDYES then AdoQuery1.CancelUpdateselseadoquery1.edit//对表的排序procedure TForm2.DBGrid1TitleClick(Column: TColumn)var i : integerbeginfor i:= 1 to DBGrid1.Columns.Count dobegin//恢复所有标题字体为默认DBGrid1.Columns[i-1].Title.Font.Color := clWindowTextDBGrid1.Columns[i-1].Title.Font.Style := []endif ADOQuery1.Sort<>(Column.FieldName+' ASC') then //判断原排序方式beginADOQuery1.Sort := Column.FieldName+' ASC'Column.Title.Font.Color := clRed//改变标题行字体为红色,表示当前的排序方式为升序Column.Title.Font.Style := [fsBold]endelse beginADOQuery1.Sort := Column.FieldName+' DESC'Column.Title.Font.Color := clBlue//改变标题行字体为红色,表示当前的排序方式为降序Column.Title.Font.Style := [fsBold]endend//查询示例adoquery2.closeadoquery2.sql.clearadoquery2.SQL.Add('select distinct(进货信息.进货编号),商品信息.商品名称,进货信息.商品编号,商品信息.类别,进货信息.进货单价,进货信息.进货数量,进货信息.进货时间,进货信息.经手人,进货信息.供货单位 from 进货信息,商品信息 where 商品信息.商品编号=进货信息.商品编号 and ')adoquery2.SQL.Add('进货时间>=#'+DateToStr(DateTimePicker1.Date)+'# and 进货时间<=#'+DateToStr(DateTimePicker2.Date+1)+'#')adoquery2.Open*五.实现的应用系统介绍1.系统的模块(1)主界面模块Form1(2)信息管理模块Form2,form18(3)日常 *** 作模块Form3(4)信息管理模块Form5(5) 用户管理模块Form14(6)系统管理模块用户登陆:form8关于系统:form10退出系统:from11()登陆窗体Form82.文件简介:(1)文件help包括生成jun_help帮助的所有源程序。(2)文件image系统所有用到的图片文件(3) 文件project系统可执行文件project.exe。系统数据库超市进销存储管理系统.mdb(4) 文件sounds系统所有用到的声音文件(5) 文件unit_date系统自动生成的相关文件3.系统运行:1.欢迎:2.到达主界面后,提示登陆(系统管理—登陆系统)。用户可以查看帮助获得系统的相关信息:3.用户登陆界面:4.若用户为管理员,则可以进行用户管理 *** 作。用户有权添加、修改、删除其它用户。5.若用户为普通用户,则用户只能对自己的相关信息进行修改,添加用户、删除用户不可用。6.商品信息管理模块商品信息管理:用来管理系统中要用来进行进货,出货 *** 作的商品的信息,包括添加,修改,删除和查询信息。其中,查询可以进行精确查询和模糊快速查询。任意时刻,生成当前表格报表。7.营销分析模块:1).综合分析某一时间段内,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。同时提供进货情况查询、出货情况查询、库存情况查询。2).日分析某一天中,将该超市的进货总额、出货总额进行统计,并算出总盈利;将库存中的商品总量统计出来。用户可以打印分析所得报表。8.商品进出货 *** 作模块:1)进行进货 *** 作时,进货编号以及进货时间是自动生成的,无需改动,否则会出现错误。所生成的商品编号为该种类型商品的最大编号,且后面有提示用户允许的编号范围,超出此范围会出错,如果编号方式正确且大于最大编号,确定添加后会提示用户填写新加商品的相关信息。2)进行出货 *** 作时,出货编号自动生成,用记无须改动。在出货单价小于进货的最小单价时会询问是否继续出货,出货数量不能大于库存数量。9.信息查询模块:1).库存信息查询:用来查询库存的商品的信息,可以按照商品编号,商品名称和商品类别来查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品的库存信息,并将其打印输出。同时,该查询可以根据商品的库存量来将商品中库存不足、库存饱和、库存过剩的商品一一列出并提供打印输出功能。2).进货信息查询:用来查询商品的进货记录,可以按照商品编号,商品名称,商品类别,经手人和进货日期查询,可以将查询结果输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的进货情况,并将其打印输出。同时以图表的形式分析该种商品的进货价格走势分析图。3).出货信息查询:用来查询商品的出货记录,可以按照商品编号,商品名称,商品类别,经手人和出货日期查询,可以将查询结果打印输出。该查询可以精确查找某一确定的商品或全部商品某一确定时间段的出货情况,并将其打印输出。同时以图表的形式分析该种商品的出货价格走势分析图。10关于系统模块:11.用户管理模块:1).用户添加该权限只有管理员拥有,可以添加临时用户,或者增设管理员用户。2).用户删除该权限只有管理员拥有,可以删除用户。3).用户密码修改用来修改登陆用户的密码,长时间地使用一个密码可能会使密码不安全,导致整个系统的不安全,因此有必要定期修改密码。12.退出系统模块:

数据库课程设计报告

计网0831数据库课程设计

1、数据的导入和导出今天是数据库实习的第一天,对于我们来说数据库虽然是今年刚刚学过的课程,但是我们已经考试完一段时间了,所以也很久没有翻书本了,很多知识在刚刚做的时候还是很陌生的,不得不翻一下书本,下面就是在第一天实习中所产生的问题报告和分析结果。

在做实训前,老师先给我们讲了数据库如何导入EXCL表,在老师的指导下我们学会了,为创建表提供了方便。

首先我们是建立了一个新的KCSJ数据库,建立的数据语句如下:

用SQL语句在D:\KCSJ下创建课程设计数据库(KCSJ)

(一)CREATE DATABASE KCSJ

ON

(NAME=KCSJ_DATA,

FILENAME='D:\KCSJ_DATA.MDF')

LOG ON

(NAME=KCSJ_LOG,

FILENAME='D:\KCSJ_LOG.LDF')

将KCSJ.XLS文件中的数据导入KCSJ数据库中。导入后在数据库中将生成以下五个基本表:

学生(学号,姓名,性别,年龄,入学成绩,班级,籍贯)

成绩(学号,课程号,成绩)

课程(课程号,课程名,教师名)

三角形(a,b,c,s)

回文数(A1,A2)

其中:a>学生、成绩、课程、三角形、回文数是表的名字。

b>学号、姓名、性别、班级、籍贯、课程名和教师名为字符型,长度分别为10 、10、2、6、8、20、10;

c>入学成绩为整型。

d>年龄、课程号和成绩为整型或微整型。

e>A1为整型;A2为字符型,长度为2。

f>a、b、c为float类型,代表三角形的三边,s为float类型,代表三角形的面积。

在导入数据库中KCSJ.XLS文件的数据导入的时候是在所有任务--导入数据—数据源为excel97-2000- 文件位置—导入表中的数据—修改类型和长度 最后确定。

用企业管理器创建数据库(JW0831),将KCSJ数据库中的五个表导入该数据库中。

打开所有任务 导入数据源 选择KSCJ 数据库 下一步 再选择jw0831数据库 选择所有 确定 就可以将KCSJ数据库中的五个表导入该数据库中。

简单的结构化查询

--(1)查询学生的详细记录

select*from 学生

--(2)查询学生表中前两个班级(班级名称不能重复)

select top 2 班级 from 学生

group by 班级

在做本题的时候,由于想的比较复杂,外加题意有点模糊,所以转了很大一个圈,并在老师的侧外指导下通过group by分组才把本题做了出来。

--(3)显示把 成绩表中各科学生的成绩加 20 分后的信息

select*from 成绩

where 成绩='成绩'+20

在做本题的时候,由于题意理解错误,所以我先用updata语句来进行更新,但是在做到其它题的时候,听到老师在指导其它同学的时候,把题意一说,我才恍然大悟,自己的方向又错了。然后又重新思考,接着就做出了上面的答案。

--(4)查询来自逗宁波地 学生的学号、姓名、籍贯

select 学号,姓名,籍贯 from 学生

where 籍贯='宁波'

--(5)查询选修4号课程且考试成绩在70分以上的学生的学号以及所选修的课程号和成绩,显示前3条结果记录

select top 3*from 成绩

where 成绩>=70 and 课程号='4'

--(6)查询入学成绩在 300-400 分之内的学生的详细情况,并按入学成绩降序排序 ( 用两种方法完成 )

select * from 学生

where 300<入学成绩 and 入学成绩<400 order by 入学成绩 desc

select * from 学生

where 入学成绩 between 300 and 400 order by 入学成绩 desc

--(7)统计学生表中的学生人数

select count(*)from 学生

对于今天的题目做的多了,忽然发现很多题的类型都差不多,都是运用基本的书本知识,然后融会贯通,举一反三,然后不费吹灰之力就做出来了,我说的不费吹灰之力是简单的,但是有些还是费了好大一番功夫的。

--(8)查询学生表中姓李,姓名列包含两个字的学生的基本情况

select * from 学生

where 姓名 like '李_'

--(9)查询名字中第 2 个字为‘北'的学生的基本信息

select * from 学生

where 姓名 like '_北%

在做这几道题的时候,我解决了并也明白了—和%得区别和用途

--(10)查询选修 4 号课程,成绩在 80-90 分之间的学生学号和成绩

select*from 成绩

where 80<=成绩 and 成绩<90 and 课程号='4'

--(11)查询 JW0831 班和 JW0551 班学生的姓名、性别及班级(用谓词查询 in )

select 姓名,性别,班级 from 学生 where 班级 in('JW0831','JW0551')

group by 姓名,性别,班级

对于本道题拿到的时候,还是愣了一下的,因为我忽然不知道什么是,对于用谓词查询 in,自己不会用,在翻书翻了一遍并且询问了同学才发现如何去用它。

--(12)查询缺少成绩的学生的学号和相应的课程号

select 学号,课程号 from 成绩

where 成绩 is NULL

--(13)统计选修了4号课程学生人数

SELECT COUNT(*)AS'人数' FROM 成绩 where 课程号='4'

--(14)查询JW0831班家在河北学生的学号、姓名、性别

select 学号,姓名,性别 from 学生

where 籍贯='河北'and 班级='JW0831'

--(15)检索刘志生老师所授课程的课程号和课程名。

select 课程号,课程名 from 课程

where 教师名='刘志生'

---(16)检索年龄大于23岁的男学生的学号和姓名。

select 学号,姓名 from 学生

where 性别='男' and 年龄>23

--(17)查询学生表中姓李的学生的基本情况

select *from 学生

where 姓名 like '李%'

--(18) 统计学生表中所有学生逗入学成绩地的平均分、最高分、最低分

select AVG(入学成绩) as'平均成绩',max(入学成绩) as'最高分',min(入学成绩) as'最低分'from 学生

--(19)查询选修了1号或者3号课程,成绩及格的学生的学号和成绩

select 学号,成绩 from 成绩

where 成绩>=60 and 课程号 in (1,3)

--(20)统计学生表中所有男女生人数

SELECT 性别, COUNT(性别)AS'人数' FROM 学生

group by 性别

对于今天的题除了自己不太熟悉课本知识和同学讨论出来的那些分析外,对于其他的题已经没有什么问题了,因为我把今天的题做完之后,把报告写完的同时,对于明天的题我也进行了一番思考,并且还帮助其他同学解决了一些不会的问题。

星期二 天气 冷 心情 good

3、复杂的结构化查询

--(1)检索至少选修刘志生老师所授课程中一门课程的女学生姓名。

select 学生.学号,姓名,性别,课程.课程号 from 学生,成绩,课程

where 性别='女' and 课程.课程号 in(select 课程号 from 课程 where 教师名='刘志生')and 学生.学号=成绩.学号

and 课程.课程号=成绩.课程号

对于今天的课程设计不是像昨天一样那么简单了,简直是提高了一个很大的层次,简直是一步三晃啊!不容易啊!就像本题一样,在查询的时候要用一个子查询和三个条件才能把它做出来!

--(2)检索吴计算同学不学的课程的课程号。

select 课程号 from 课程 where 课程号 not in(select 成绩.课程号 from 成绩,学生where 姓名='吴计算' and 成绩.学号=学生.学号)

在本题中,用的方法还真是一波三折啊!因为如果要查不学的课程,要先查出他学的课程,然后再排掉学过的!充分运用了not in这个语法

--(3)检索至少选修四门课程的学生学号。

select 学号, count(成绩.学号)as '门数' from 成绩,课程 where 成绩.课程号=课程.课程号

group by 成绩.学号

having count(成绩.学号)>=4

对于本题的用的是count做统计这个数据语句,外加可以用在group by 语句后的having条件语句。通过本题的联系,可以很好的运用count 和having语句

--(4)检索全部学生都选修的课程的课程号与课程名。

select 课程.课程名 ,课程.课程号 from 成绩,课程

where 成绩.课程号=课程.课程号

group by 课程.课程名,课程.课程号

having count(成绩.学号) in (select count(学生.学号)from 学生)

--(5)检索选修课程包含刘志生老师所授课的学生学号。

select 学号 from 成绩,课程

where 教师名='刘志生'and 成绩.课程号=课程.课程号

--(6)统计有学生选修的课程门数。

select 学号, count(成绩.学号)as '门数' from 成绩,课程 where 成绩.课程号=课程.课程号

group by 成绩.学号

--(7)求选修4号课程的学生的平均年龄。

select AVG(年龄)as'平均年龄',成绩.课程号 from 学生,成绩

where 课程号='4' and 学生.学号=成绩.学号

group by 成绩.课程号

--(8)求刘志生老师所授课程的每门课程的学生平均成绩。

select avg(成绩.成绩)as'平均成绩',课程.课程号 from 成绩,课程

where 教师名='刘志生' and 成绩.课程号=课程.课程号

group by 课程.课程号

--(9)统计每门课程的学生选修人数(超过6人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

select 成绩.课程号, count(成绩.学号)as '人数' from 成绩,课程

where 成绩.课程号=课程.课程号

group by 成绩.课程号

having count(成绩.学号)>=6

order by count(成绩.学号) asc

--(10)检索学号比陆力利同学大,而年龄比他小的学生姓名。

select 学号,姓名 from 学生

where 学号>(select 学号 from 学生 where 姓名='陆力利') and 年龄<(select 年龄 from 学生 where 姓名='陆力利'

--(11)求年龄大于女同学平均年龄的男学生姓名和年龄。

select 姓名,年龄 from 学生

where 性别='男'and 年龄>(select avg(年龄)as'平均年龄'from 学生 where 性别='女')

--(12)统计学生人数超过 5人的班级名称和对应的人数

select 班级,count(学生.学号)as '人数'from 学生

group by 班级

having count(学生.学号)>=5

--(13)检索课程号和选修人数,查询结果按人数升序排列,若人数相同,按课程号降序排列。

select 成绩.课程号, count(成绩.学号)as '人数' from 成绩,课程

where 成绩.课程号=课程.课程号

group by 成绩.课程号

order by count(成绩.学号) asc,成绩.课程号 desc

这道题运用很多知识点,不但用了count 统计 还用了 group by 分组 外加排序

--(14)查询选修课程学生的学号、姓名、所选课程号、取得的成绩

select 学生.学号,学生.姓名,成绩.课程号,成绩.成绩 from 学生,成绩

where 学生.学号=成绩.学号

--(15)查询学生的学号、课程号和成绩等级

select 学号,课程号,成绩,(

CASE

WHEN 成绩>=90 and 成绩<=100 THEN 'A'

WHEN 成绩>=80 and 成绩<90 THEN 'B'

WHEN 成绩>=70 and 成绩<80 THEN 'C'

WHEN 成绩>=60 and 成绩<70 THEN 'D'

ELSE 'E'

END ) as 等级

from 成绩

本题运用了一个新的知识点,这个知识点是在老师的ppt课件上找到的,利用这个语句何以很好很方便的为管理系统中的成绩分等级,所以在本体中一定要记住本语句的语法如:case when……andthen ……else end

今天小结,通过今天一天的课程设计,我觉得我收获了很多,因为它让我以前学的不太好的知识点全部都巩固了一遍,尤其是成绩、课程、学生这些表与表的链接,每次不是这里连不上就是那里连不上,但是现在不但可以连上了,还可以帮助其他同学检查出来错误,真是一笔不小的收获,虽然今天做的题比较难,但是每一次在自己的努力下做出来都会有不小的成就感……

3、复杂的结构化查询

星期三 天气 冷 心情 good

外面飘着雪花,美好的一天又已经开始了!实习已经到了一半,离回家的日子也近了很多,所以心情也是越实习越好了!今天的工作当然也完成的比较顺利!虽然有的还挺难的!但是相信自己一定就会成功!嘿嘿……看看自己的劳动成果就知道了!

3、复杂的结构化查询

--(16)查询选修了英语的学生的姓名和成绩

select 学生.姓名,成绩.成绩 from 成绩,学生,课程

where 课程.课程名='英语'and 学生.学号=成绩.学号 and 课程.课程号=成绩.课程号

group by 学生.姓名,成绩.成绩

--(17)分别统计每个班级的男女人数(要求显示出班级、性别、对应的人数)

SELECT 班级, 性别, COUNT(性别)AS'人数' FROM 学生

group by 班级,性别

--(18)求年龄大于所有女同学年龄的男学生姓名和年龄。

select 姓名,年龄 from 学生

where 性别='男'and 年龄>(select max(年龄) from 学生 where 性别='女')

group by 姓名,年龄

--(19)计算选修了1号课程的学生的平均成绩(要求显示出课程号和对应的平均成绩)

select 课程号,avg(成绩)as'平均成绩'from 成绩

where 课程号='1'

group by 课程号

--(20)查询选修课程学生的学号、姓名、所选课程名、取得的成绩

select 学生.学号,姓名,课程.课程名,成绩.成绩 from 学生,成绩,课程

where 学生.学号=成绩.学号 and 课程.课程号=成绩.课程号

--(21)查询学生的学号、姓名、性别及所选修各门课程的成绩(要求每位学生用一个数据行显示这些信息)

SELECT 学生.学号, 学生.姓名,学生.性别,

(select 成绩 from 成绩 where 课程号='1' and 学生.学号=学号) as '数学',

(select 成绩 from 成绩 where 课程号='2' and 学生.学号=学号) as '英语',

(select 成绩 from 成绩 where 课程号='3' and 学生.学号=学号) as '计算机基础',

(select 成绩 from 成绩 where 课程号='4' and 学生.学号=学号) as '数据库',

(select 成绩 from 成绩 where 课程号='5' and 学生.学号=学号) as '政治',

(select 成绩 from 成绩 where 课程号='6' and 学生.学号=学号) as '体育'

FROM 学生 INNER JOIN 成绩 ON 学生.学号=成绩.学号

GROUP BY 学生.学号, 学生.姓名,学生.性别

--(22)查询李路路所学的课程名和对应的成绩,并按照成绩升序排列。

select 姓名,课程名,成绩 from 学生,课程,成绩

where 姓名='李路路'and 课程.课程号=成绩.课程号 and 学生.学号=成绩.学号

order by 成绩

--(23)查询平均成绩大于 75 分的课程,要求显示课程名和平均成绩。

select 课程名,avg(成绩)as'平均成绩' from 课程,成绩

where 课程.课程号=成绩.课程号

group by 课程名

having avg(成绩)>=75

--(24)查询所选课程平均成绩前三名的那些学生的姓名和平均成绩。

select top 3 学生.学号,姓名,avg(成绩.成绩)as'平均成绩'from 成绩,学生 where 学生.学号=成绩.学号 group by 学生.学号,姓名 order by avg(成绩.成绩) desc

--(25)查询和李工业在同一个班级的学号和姓名

select 学号,姓名 from 学生

where 班级 in (select 班级 from 学生 where 姓名='李工业')

--(26)查询JW0831班中入学成绩比李里高的学生的姓名

select 姓名 from 学生

where 班级='JW0831' and 入学成绩>(select 入学成绩 from 学生 where 姓名='李里')

--(27)在学生表中查询高于入学成绩平均分的学生学号、姓名、班级、入学成绩

select 学号,姓名,班级,入学成绩 from 学生

where 入学成绩>(select avg(入学成绩)as'平均成绩'from 学生)

--(28)查询没有选修课程的学生的学号和姓名

select 学生.学号,学生.姓名 from 学生

where 学号 not in(select 学号 from 成绩 group by 学号 )

--(29)查询选修了 5(含5) 门以上课程的学生的姓名。

select 姓名 from 学生,成绩,课程 where 成绩.课程号=课程.课程号 and 学生.学号=成绩.学号

group by 成绩.学号,姓名

having count(成绩.学号)>=5

--(30)查找同名同姓的学生信息。

select a1.* from 学生 a1,学生 a2

where a1.姓名=a2.姓名 and a1.学号<>a2.学号

星期四 天气 冷 心情 good

数据管理

--(1)利用学生表创建一个新表(不含数据):优秀(学号,姓名,性别),

--然后在学生表中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,

--并把检索到的值送往优秀表中。

select 学号,姓名,性别 into 优秀 from 学生

where 5>6

insert into 优秀 select 学号,姓名,性别 from 学生 where 学号 in (select 学号 from 成绩 group by 学号 having min(成绩)>=80 )

--(2)把李路路同学的选课和成绩全部删去。

delete from 成绩

where 成绩 in(select 成绩 from 学生,成绩 where 学生.学号=成绩.学号 and 姓名='李路路')

--(3)把低于总平均成绩的女同学成绩提高5%。

UPDATE 成绩 SET 成绩=成绩*(1+0.05) WHERE 成绩<(select avg(成绩.成绩)as'平均成绩'from 成绩) and 学号 in(select 学号 from 学生 where 性别='女')

--(4)把选修数学课不及格的成绩全改为空值。

UPDATE 成绩 SET 成绩=null WHERE 成绩<60 AND 课程号=(select 课程号 from 课程 where 课程名='数学')

--(5)在成绩表修改4号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。

UPDATE 成绩 SET 成绩=成绩*0.5 WHERE 成绩<=75 and 课程号='4'

UPDATE 成绩 SET 成绩=成绩*0.4 WHERE 成绩>75 and 课程号='4'

--(6)将选修4号课程且成绩没有及格的学生的成绩调整为 60 分。

UPDATE 成绩 SET 成绩=60 WHERE 成绩<60 AND 课程号='4'

自定义函数的使用

编写一函数(hws),判断一个整数是否为回文数,若是函数值为逗是地,否则为逗否地,利用该函数判断回文数基本表中A1列的整数是否为回文数,若是,则A2列的值为逗是地,否则为逗否地。

create function hws(@A1 int)

returns char(2)

as

begin

declare @y int,@r int,@c char(2),@z int

select @y=0,@z=@A1

while @A1!=0

select @r=@A1%10,@y=@y*10+@r,@A1=@A1/10

if @y=@z

set @c='是'

else

set @c='否'

return @c

end

update 回文数 set A2=dbo.hws(A1)。

星期五 天气 冷 心情 good

游标的使用

利用游标可以访问单独数据行的特点,逐一对三角形基本表中的数据行(三条边)进行处理,求三角形的面积。

Declare yb cursor

For

Select*from 三角形

Declare @a float,@b float,@c float,@p float,@s float

Open yb

Fetch next from yb into @a,@b,@c,@s

While @@fetch_status=0

Begin

If @a+@b>@c and @a+@c>@b and @b+@c>@a

select @p=(@a+@b+@c)/2.0,@s=round(sqrt(@p*(@p-@a)*(@p-@b)*(@p-@c)),2)

else

set @s=null

update 三角形 set s=@s where current of yb

fetch next from yb into @a,@b,@c,@s

end

close yb

deallocate yb

心得体会

时光匆匆,一个星期的实习已经接近尾声了,对于本次的实习心情就是轻松加愉快,收获也是硕果累累,在老师的安排下,实习的过程是根据每天老师给的任务,按时完成作业然后再把报告写完根据规划每天都有条不絮的干着自己的事情,对于我是一个不会安排时间的人,生活中重来没有规划,所以事情每次干完不是紧一阵就是松一阵的,所以通过这次实习中在老师的安排下,自己也懂得了安排时间的重要性,也从中吸取到了一些经验。

在本次实习中我不仅把本学期学习的数据库基本知识进行了点到点的复习,也把它进行了巩固,在原来没有学好的地方通过本次的实习学的比以前学的更好,不仅如此,我们在做课程设计的时候还学会了独自的思考和协作,有些知识点我们运用的不是很好,但是后面再老实的帮助和在同学的探讨下,最后都把它解决了出来。除此之外,我也感觉到实习并不是因为完成任务而实习,它是为了让我们更好的掌握知识,并把知识运用到生活中去的,就像艺术一样,源于生活,而应用于生活一样。数据库的学习,也是为了以后生活中方便自己方便他人而学习的。

由于每天紧张的课程,一路都是匆匆来匆匆去,所以一个班同学的交流也是很少的,通过实习所以同学之间交流的机会也就比较多了一点,比才的感觉也因此增进了不少,以上就是本次在实习中所得到的心得,至于没有感受到的,将在以后的生活中再次的吸取生活中的经验。来进行学习中的总结。

先给你个意见 ,就是不知道你听不听得进去。

1.要是这个程序你自己能把它作为毕业设计独立完成,(而且是按你下面的要求,从理论到实际,ER要合理,物理层也要合理),你能做到,可以在外面公司直接上班,工资2800起。-到8000看你自己的发挥。

2.你可能觉得你学校没学到东西做不出来,其实我和你说,很多的软件高手学校都是没有学到东西的,而是在要毕业前4,5个月也就是毕业设计的时候学的。

完整的设计不可能有人给你做,除非你给个1500元上悬赏

3.仓库信息管理系统或医院管理系统,建议你是做仓库的,医院的比较难接触到,比较大型。

=======================================

a.需求分析(仓库--超市版)

入库(产品资料入库,名称、进价、条码、数量....................

出库

订货(对库存不足的商品订货,生成订货单v.............)

库存统计(按时间,名称,供应商....等等)

出库统计(如上

供应商管理

客户资料管理( 对送货上门客户等记..........,VIP、会员等等)

各种资料打印

B.概念设计(最好把这个和逻辑设计放到实际部门关系,部门设定之后再做)

比如中型超市 有独立的点货员财务会计 出纳 店长 经理等职务,先了解好超市的流程

有多少工作岗位,那些岗位需要电脑调用资料

建议你在3.3 3.3 3.5不要做得非常的书面化,(就是按书上那种很复杂的ER图来表示,因为一个正确的ER图会耗掉你很多的精力,你只要把各种要用ER图表示的关系图用草图表示出来,原理上通了,然后设定有什么表,字段 就开始设计

建议,比如你用DEPHI软件来设计,你肯定会逐渐发现有非常多非常漂亮的第3方控件,或方便的第3方控件,或看同学使用起来很牛BXX的样子,你最好是不要去用,第3方控件非常的多,你永远都使用不完,也学不完,等你做好了基本版本后要是有时间再去考虑这些。精力不要分散了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10023100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存