任务书学生姓名专业班级初始条件:已完成《企业数据库应用》课程的学习。要求完成的主要任务:主要任务:以一个具体的应用为背景,完成数据库系统的设计,添加一定的数据到设计出的表中,使用添加、修改、删除和查询语句等,能将所学运用到设计中,可辅助设计系统界面程序。要求:(1)具体的应用必须是现实存在的,比如图书管信息管理、订票信息管理、医院信息管理、教务信息管理、学生选课信息管理等。(2)数据库的设计分为两次建模过程,首先建立E-R图,然后转换为关系模型,设计报告中要体现出来。(3)SQL语句要求规范,标点正确,查询语句应包含简单查询、连接查询、子查询、复合条件查询。语句内容自定,并写出语句的功能。(4)报告的文档包括:数据库的应用背景介绍,数据库设计方案,添加、修改、删除和查询语句和语句的功能说明。实验步骤:超市管数据库E-R图:E-R图转化为关系模型部门表(部门编号,部门名称)供应商表(供应商编号,供应商名称,地址,邮政编码,电话号码,银行账户,开户银行,联系人)会员表(会员编号,姓名,性别,身份证号,消费总额,积分)库存表(库存编号,商品编号,库存量)入库表(入库编号,入库日期,计量单位,入库价格,销售价格,数量,总金额,供应商编号,员工编号,商品编号,)商品表(商品编号,商品名称,所属类别,价格,数量)销售出货单主表(出货单编号,销售日期,总金额,是否现金,是否会员,会员编号,员工编号)销售出货单子表(出货单子编号,数量,单价,折扣比例,金额,出货单编号,商品编号,)员工表(员工编号,姓名,性别,职务,身份证号,部门编号)各表设置如下:(1)部门表(2)供应商表(3)会员表(4)库存表(5)入库表(6)商品表、(7)销售出货单主表(8)销售出货单子表(9)员工表数据库关系图:(1)select查询语句查询会员表中的姓名,性别,身份证号,消费总额,积分信息select姓名,性别,身份证号,消费总额,积分from会员表结果:(2)使用where语句:查询员工表中性别‘女’所有信息。select*from员工表where性别='女'结果:(3)使用逻辑运算符查询会员表中,性别是女,积分小于等于4000人的姓名,性别,身份证号,和积分的信息。select姓名,性别,身份证号,积分from会员表where性别='女'andnot积分4000结果:(4)使用INSERT语句插入数据在库存表中添加库存编号为‘20‘,商品编号为‘024,’库存量为‘678‘的一条条记录。insertinto库存表values('20','024','678')结果:(5)使用LIKE条件查询部门表中,部门名称为’人事’的部门编号,部门名称。select部门编号,部门名称FROM部门表WHERE部门名称LIKE'人事'结果:(6)排序结果集查询部门表中的所有信息,并按部门编号的升序排列。select*FROM部门表ORDERBY部门编号ASC结果:(7)插入数据在员工表里插入一条员工编号为12,姓名为延陵,性别为男的,职务是职工,身份证好为456666667,部门编号为5的一条记录。insertinto员工表(员工编号,姓名,性别,职务,身份证号,部门编号)VALUES('12','严陵','男','职工','456666667','5')结果:检验结果:(8)更新数据1、UPDATE、使用,在会员表中更改会员编号为008的积分为8000.UPDATE会员表SET积分='8000'WHERE会员编号='008'结果:2、更新多列,更改会员表中前三列的积分为5000.UPDATETOP(3)会员表SET积分='5000'结果:检查更新:SELECT*FROM会员表结果:(9)删除数据,删除供应商编号为09和10的记录。1、DELETE供应商表WHERE供应商编号08AND供应商编号=10结果:检查删除SELECT*FROM供应商表结果:如果要用删除一个表所有行的数据信息,TRUNCATETABLE语句表不能用于外关键字依赖的表,用TRUNCATETABLE语句。如USE超市信息系统(数据库名称)TRUNCATETABLE部门表(表名)否则会出现2、基于其他表中的行,在入库表中删除员工编号为9的记录。DELETEFROM入库表WHERE员工编号IN(SELECT员工编号FROM员工表WHERE员工表.员工编号='9')结果:(10)查询复杂语句1、基本连接操作,在部门表和员工表中查询部门编号,部门名称,职务,姓名。SELECT部门表.部门编号,部门名称,员工表.职务,姓名FROM部门表,员工表WHERE部门表.部门编号=员工表.部门编号结果:2、使用别名,将部门表命名为Y,Y员工表命名为B,查询B表中部门编号,部门名称,Y表中的职务,姓名。SELECTB.部门编号,部门名称,Y.职务,姓名FROM部门表ASB,员工表ASYWHEREB.部门编号=Y.部门编号结果:结果:3、多表连接查询,在会员表,员工表,销售出货单主表中,查询积分,职务,总金额信息。SELECT会员表.积分,员工表.职务,销售出货单主表.总金额FROM会员表,员工表,销售出货单主表WHERE会员表.会员编号=销售出货单主表.会员编号AND员工表.员工编号=销售出货单主表.员工编号结果:(11)内连接1、等值连接基于员工表,销售出货表单主表的内连接,查询条件为两表中的员工编号相等时返回,显示职务,销售日期并以销售出货单主表的员工编号降序排列。SELECT员工表.职务,销售出货单主表.销售日期FROM员工表INNERJOIN销售出货单主表ON员工表.员工编号=销售出货单主表.员工编号ORDERBY销售出货单主表.员工编号DESC结果:2、非等值连接查询基于员工表和销售出货单主表查询查询总额在2334和4567的职工信息。要求结果显示职务和总金额,并按总金额升序排列。SELECT员工表.职务,销售出货单主表.总金额FROM销售出货单主表INNERJOIN员工表ON员工表.员工编号=销售出货单主表.员工编号AND销售出货单主表.总金额BETWEEN'2334.000'AND'4567.0000'ORDERBY销售出货单主表.总金额结果:3、自然连接。基于员工表,销售出货表单主表的内连接,查询条件为两表中的员工编号相等时返回,显示职务,销售日期并以销售出货单主表的员工编号降序排列。SELECT员工表.职务,销售日期FROM员工表INNERJOIN销售出货单主表ON员工表.员工编号=销售出货单主表.员工编号ORDERBY销售出货单主表.员工编号DESC结果:(12)、外连接1、左外连接查询,基于库存表和商品表,销售出货单子表使用左外连接,要求结果显示库存表的所有信息,和销售出货单子表的单价。SELECT库存表.*,销售出货单子表.单价FROM库存表LEFTOUTERJOIN商品表ON库存表.商品编号=商品表.商品编号LEFTOUTERJOIN销售出货单子表ON销售出货单子表.商品编号=商品表.商品编号结果:2、右外连接查询,基于库存表和商品表,销售出货单子表使用右外连接,要求结果显示库存表的所有信息,和销售出货单子表的单价。SELECT库存表.*,销售出货单子表.单价FROM库存表RIGHTOUTERJOIN商品表ON库存表.商品编号=商品表.商品编号RIGHTOUTERJOIN销售出货单子表ON销售出货单子表.商品编号=商品表.商品编号结果:3、完全外连接查询,基于库存表和商品表,销售出货单子表使用完全外连接查询,要求结果显示库存表的所有信息,和销售出货单子表的单价。SELECT库存表.*,销售出货单子表.单价FROM库存表FULLOUTERJOIN商品表ON库存表.商品编号=商品表.商品编号FULLOUTERJOIN销售出货单子表ON销售出货单子表.商品编号=商品表.商品编号结果:(13)交叉查询1、不用WHERE子句的交叉连接查询,查询库存表和商品表的所有数据库信息。SELECT库存表.库存编号,库存表.商品编号,库存表.库存量,商品表.*FROM库存表CROSSJOIN商品表结果:2、使用WHERE子句的交叉连接查询,对库存表和商品表进行交叉连接查询,要求查询返回商品表.商品编号为011'的学生的库存编号,商品编号库存量和商品编号,商品名称,所属类别,价格,数量信息。SELECT库存表.库存编号,库存表.商品编号,库存表.库存量,商品表.*FROM库存表CROSSJOIN商品表WHERE商品表.商品编号='011'ORDERBY库存表.商品编号DESC结果:(14)自然连接,SELECTA.员工编号,A.职务,B.职务FROM员工表ASAINNERJOIN员工表ASBONA.员工编号=B.员工编号结果:(15)联合查询,在员工表中,查询性别为女的员工的员工编号和职务信息,并为其新增列“当前位置”,新列的内容为“员工表”。在入库表中查询所有的员工编号,计量单位信息,并为其新增列的内容为“入库信息表“。在使用UNION关键字进行联合查询时,应保证每个联合查询语句的选择列表中具有相同数量的属性列,否则会出错。SELECT员工表.员工编号,员工表.职务,'员工表'AS当前位置FROM员工表WHERE员工表.性别='女'UNIONSELECT入库表.员工编号,入库表.计量单位,'入库信息表'FROM入库表结果:(16)子查询,在员工表中查询小强同类性别的员工所有信息。1、使用IN关键字结果:2、使用EXISTS关键字,查询出货单编号为0002员工的所有信息。结果:3、使用比较运算符,查询性别为‘女‘员工信息。结果:4、嵌套查询SELECT入库表.总金额,入库表.数量,库存表.库存量FROM入库表,库存表WHERE入库表.入库编号IN(SELECT员工表.部门编号FROM员工表WHERE员工表.员工编号='10')AND库存表.商品编号IN(SELECT供应商表.供应商编号FROM供应商表WHERE供应商表.供应商名称IN(SELECT员工表.部门编号FROM员工表WHERE员工表.员工编号='10'))结果:(17)创建视图,点数据库下面的视图,添加表,选择要输出地列,重点截图如下:(18)创建索引,在表的下面选择索引,索引类型选择所要的类型,即可,重点截图如下:(19)对于数据库备份在对于数据进行备份时,有四种数据库备份,我们要针对不同的情况进行不同的步骤,完整备份是针对在某一时间点,以时间点作为恢复数据库的基点,在用户在备份频繁修改的数据库时,需要最小化备份时间时,使用差异备份。事务日志备份只有在完整恢复模式和大容量模式下才会有事务日志备份,文件组的备份可以使用户仅还原已损坏的文件,减少恢复时间。(20)需求分析无论是公司还是企业对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。在工厂中,产品的进销存涉及产品原料的采购、库存、投入生产、报损,甚至有时涉及到销售,同时,对于产品也有相应的生产、库存、销售、和报损等环节。在其他非生产性单位,如超市、商店等,则主要涉及到进货、库存、销售和汇总4个方面。总结:通过这次试验我做的是超市管理方面的,用了查询,删除,修改,子查询,复合语句的查询,创建视图,索引等操作。当然这是个数据库还是很不完善的,因为生活中有很多不定的因素,对于不同的超市不同的类型,这个数据库我查询语句用了常用的查询及相关的复合查询,在试验中建立关系图是很重要的,有利于检查数据库的数据的差错问题,基本上还算顺利,但是发现自己的熟练程度还有待提高。对于基本的知识点我也有了个全面的复习和掌握,我相信这次试验在以后的学习中有很大的帮助,在空闲时间里,我会继续学习这方面的相关知识,提高自己,不仅仅是为了学习而学习,更是自己能力的提升。成绩评定成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:日期: