ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:3.44MB ,
资源ID:11044397      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11044397.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库课程设计.docx

1、数据库课程设计 数据库系统概论课程设计报告 一、实验目的二、实验要求三、实验题目四、实验设计五、实验小结一、实验目的:1.加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;2.在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;4.为毕业设计和以后工作打下必要基础。二、实验要求运用数据库基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型

2、和数据文件,并对数据文件实施检索、更 新和控制等操作。 1概念设计 2逻辑设计 订户(编号,姓名,住址);报刊目录(代号,名称,期刊,单价);订单(编号,代号,日期,起订期,终定期,订单量);投递卡(编号,代号,期号,份量);主码通过横线给出。该关系属于第一范式3完整性设计关系主码、外码约束三、实验题目(1)创建数据库的结构(2)创建各基本表的结构(3)编制输入子系统,完成数据的录入(4)检索地址为“太平路4890号”的订户信息(5)检索份数多于3的期号(6)检索订阅“01-01”报刊代号的订户名、报刊名、订阅份数(7)检索没有订阅“人民日报”的订户号(8)检索至少订阅“人民日报”的订户名(9

3、)检索至少订阅了“人民日报”的所有期号的订户号(10)检索未订阅代号为“03-01”报刊的订户名(11)检索被多个订户订阅的报刊之代号(12)增加一种报刊“04-01,经济信息报,周报,0.5”(13)删去报刊代号为“01-03”的报刊(14)把订户号“161213”改为“161225”(15)把“090104”订户所订的“01-03”报刊的截止日期改为12(16)检索订阅期在1到12月份的各种报刊的代号和总数(17)检索每种报刊的订阅总数,并给出报刊代号(18)统计各种报刊的订户数(19)输出如下报表: 订户姓名 报刊名称 期 号 日 期 起订期 终订期 份 数(20)输出操作结果和程序清单

4、课程设计补充内容:1.创建视图:报刊订阅:查询出用户杨春花订阅情况(字段根据自己设计选择即可)2.授权操作:请创建用户YANG ,并授予他可以查询,修改第一题所建视图的权限。3.触发器操作:删除某一个用户的记录时,利用触发器实现级联删除,即删除其他表中该用户的相应信息更新起订期和终定期时,若字段值小于1或者大于12,请提示“数据无效”错误更新用户订阅报刊份数时,请输出订阅报刊总份数大于6份的用户姓名和订阅数量 订单(ORDER)订户号(CNO)日期(DATE)报刊代号(NMNO) 起订期(START)终订期(TERM)份 数(QTY)090101 831215 01-01 01 12 1090

5、101 840120 03-01 04 06 2090101 840101 62-26 01 06 1090104 831205 01-01 01 12 5090104 840131 01-03 02 05 2090205 840715 01-03 09 12 1090205 840621 03-01 07 12 2090205 831207 13-30 01 12 1090205 840531 58-80 07 12 1160412 831223 01-01 01 12 1160412 840317 01-03 04 12 2160412 840625 03-01 07 08 1161213

6、 840931 01-01 11 12 2161213 840316 62-26 04 07 1167480 840127 01-01 02 12 2 订户(CUSTOMER)编号(CNO) 姓名(NAME) 住址(ADDR)090101 单明 北京路10号090104 杨春花 中山路4235号090205 陈卫星 汉府街1234号160412 李宇 光华门路784号161213 吴明镇 鼓楼街2107号167480 王文武 太平路4890号 报刊目录(NMTABLE)代号(NMNO) 名称(TITLE) 刊期(PERIOD) 单价(PRICE)01-01 人民日报 日报 0.06701-03

7、 中国日报 周六报 0.1003-01 解放日报 日报 0.03311-06 物价市场 半月刊 0.0413-30 内蒙古科技报 周报 0.0358-80 新疆社会科学 季刊 0.6062-20 四川中医 月刊 0.35 投递卡(SENDING)订户号(CNO) 报刊代号(NMNO) 期号(ISSUE) 份数(QTY)090101 01-01 2407 1090101 03-01 134 2090101 62-26 204 1090104 01-01 2407 5090104 01-03 7840 2090205 01-03 7840 1090205 03-01 2401 2090205 13

8、-30 780 1090205 58-80 230 1090205 58-80 231 1160412 01-01 2407 1160412 01-03 7840 2160412 01-01 2408 1160412 01-03 7841 2161213 01-01 2407 2161213 62-26 45 1四、实验设计1-1创建数据库的结构1-2创建各基本表的结构在表“订单OR1”中将“订户号CNO”和“报刊代号NMNO”设置为主键,其中“订户号CNO”为表“订户CUSTOMER”的主键,“报刊代号NMNO”为表“报刊目录NMTABLE”的主键在表“订户CUSTOMER”中将“编号CNO

9、”设置为主键在表“报刊目录NMTABLE”中将“代号NMNO”设置为主键在表“投递卡SENDING”中将“订户号CNO”和“期号ISSUE”设置为主键,其中“订户号CNO”为“订户CUSTOMER”的主键1-3 编制输入子系统,完成数据的录入代码段:INSERTINTO OR1VALUES(167480,840127,01-01,02,12,2);结果1-4检索地址为“太平路4890号”的订户信息代码段SELECT *FROM CUSTOMERWHERE ADDR=太平路号;结果1-5检索份数多于3的期号代码段SELECT ISSUEFROM SENDINGGROUP BY ISSUEHAVI

10、NG SUM(QTY)3;结果1-6检索订阅“01-01”报刊代号的订户名、报刊名、订阅份数代码段SELECT NAME,TITLE,QTY FROM OR1,CUSTOMER,NMTABLEWHERE OR1.NMNO=01-01 AND OR1.CNO=CUSTOMER.CNO AND NMTABLE.NMNO=01-01;结果1-7检索没有订阅“人民日报”的订户号代码段SELECT DISTINCT CNOFROM OR1WHERE OR1.CNO NOT IN(SELECT DISTINCT CNO FROM NMTABLE,OR1 WHERE TITLE=人民日报 AND NMTAB

11、LE.NMNO=OR1.NMNO 结果1-8检索至少订阅“人民日报”的订户名代码段SELECT NAMEFROM CUSTOMER,OR1,NMTABLEWHERE NMTABLE.TITLE=人民日报 AND OR1.NMNO=NMTABLE.NMNO AND CUSTOMER.CNO=OR1.CNO ;结果1-9检索至少订阅了“人民日报”的所有期号的订户号代码段SELECT DISTINCT S1.CNOFROM SENDING S1WHERE NOT EXISTS (SELECT * FROM SENDING S2,NMTABLE WHERE NMTABLE.TITLE=人民日报 AND

12、 S2.NMNO=NMTABLE.NMNO AND NOT EXISTS (SELECT * FROM SENDING S3 WHERE S1.CNO=S3.CNO AND S2.ISSUE=S3.ISSUE ) );结果1-10检索未订阅代号为“03-01”报刊的订户名代码段SELECT DISTINCT NAMEFROM OR1,CUSTOMERWHERE OR1.CNO=CUSTOMER.CNO AND OR1.CNO NOT IN (SELECT OR2.CNO FROM OR1 OR2 WHERE OR2.NMNO=03-01 );结果1-11检索被多个订户订阅的报刊之代号代码段SE

13、LECT DISTINCT NMNOFROM OR1GROUP BY NMNOHAVING SUM(QTY)3;结果1-12增加一种报刊“04-01,经济信息报,周报,0.5”代码段INSERT INTO NMTABLEVALUES (04-01,经济信息报,周报,0.5);结果1-13删去报刊代号为“01-03”的报刊代码段DELETEFROM NMTABLEWHERE NMTABLE.NMNO=01-03DELETEFROM OR1WHERE OR1.NMNO=01-03DELETEFROM SENDINGWHERE SENDING.NMNO=01-03;结果1-14把订户号“161213

14、”改为“161225”代码段UPDATE OR1SET OR1.CNO=161225WHERE OR1.CNO=161213 UPDATE CUSTOMERSET CUSTOMER.CNO=161225WHERE CUSTOMER.CNO=161213 UPDATE SENDINGSET SENDING.CNO=161225WHERE SENDING.CNO=161213 ;结果1-15把“090104”订户所订的“01-03”报刊的截止日期改为12代码段UPDATE OR1SET TERM=12WHERE NMNO=01-03 AND CNO=090104;结果因为前面已经删除过,所以0行受

15、影响1-16检索订阅期在1到12月份的各种报刊的代号和总数代码段SELECT NMNO, SUM(QTY)FROM OR1WHERE START=1 AND TERM=12GROUP BY NMNO ;结果1-17检索每种报刊的订阅总数,并给出报刊代号代码段SELECT NMNO,SUM(QTY)FROM OR1GROUP BY NMNO;结果1-18统计各种报刊的订户数代码段SELECT NMNO,count(CNO)FROM OR1GROUP BY NMNO;结果1-19输出如下报表:订户姓名 报刊名称 期 号 日 期 起订期 终订期 份 数代码段SELECT CUSTOMER.NAME

16、订户姓名,NMTABLE.TITLE 报刊名称,OR1.DATA 日期,OR1.START 起订期, OR1.TERM 终订期,OR1.QTY 份数FROM OR1,CUSTOMER,NMTABLEWHERE OR1.CNO=CUSTOMER.CNO AND OR1.NMNO=NMTABLE.NMNO;结果1-20创建视图:代码段CREATE VIEW CUS_OR1AS SELECT OR1.CNO,NAME,DATA,NMNO,START,TERM,QTYFROM OR1,CUSTOMERWHERE OR1.CNO=CUSTOMER.CNO; 结果1-21查询出用户杨春花订阅情况代码段SE

17、LECT *FROM CUS_OR1WHERE NAME=杨春花;结果1-22授权操作:请创建用户YANG ,并授予他可以查询,修改第一题所建视图的权限。GRANT SELECT,UPDATEON CUS_OR1TO YANG;结果1-23触发器操作:先建外码OR1的外码代码段ALTER TABLE OR1ADDCONSTRAINT PK_CNOFOREIGN KEY(CNO) REFERENCES CUSTOMER(CNO);结果代码段ALTER TABLE OR1ADDCONSTRAINT PK_NMNOFOREIGN KEY(NMNO) REFERENCES NMTABLE(NMNO);

18、结果SENDING 的外码代码段ALTER TABLE SENDINGADDCONSTRAINT PK_CNO2FOREIGN KEY(CNO) REFERENCES CUSTOMER(CNO); 结果代码段ALTER TABLE SENDINGADDCONSTRAINT PK_NMNO2FOREIGN KEY(NMNO) REFERENCES NMTABLE(NMNO);结果1-24删除某一个用户的记录时,利用触发器实现级联删除,即删除其他表中该用户的相应信息代码段CREATE TRIGGER DELECTERON CUSTOMERINSTEAD OF DELETE AS BEGIN DEC

19、LARE CN1 NCHAR(12); SELECT CN1=CNO FROM DELETED; DELETE FROM OR1 WHERE CNO=CN1; DELETE FROM SENDING WHERE CNO=CN1; DELETE FROM CUSTOMER WHERE CNO=CN1;END;结果代码段DELETEFROM CUSTOMERWHERE CNO=167480;结果1-25更新起订期和终定期时,若字段值小于1或者大于12,请提示“数据无效”错误代码段CREATE TRIGGER UP1ON OR1AFTER UPDATE AS BEGINDECLARE S SMALL

20、INT;SELECT S=START FROM INSERTED;DECLARE T SMALLINT;SELECT T=TERM FROM INSERTED; IF (S12) BEGIN PRINT 输入错误,请重新输入; ROLLBACK; END ; IF (T12) BEGIN PRINT 输入错误,请重新输入; ROLLBACK; END ;END;结果代码段UPDATE OR1SET START=14WHERE CNO=090205 AND NMNO=58-80;结果1-26更新用户订阅报刊份数时,请输出订阅报刊总份数大于6份的用户姓名和订阅数量代码段CREATE TRIGGER

21、 UP3ON OR1AFTER UPDATEAS BEGIN IF UPDATE(QTY) BEGIN SELECT NAME 用户姓名,SUM(QTY) 订阅份数 FROM OR1,CUSTOMER WHERE OR1.CNO=CUSTOMER.CNO GROUP BY CUSTOMER.NAME HAVING SUM(QTY)6; END ; END;结果代码段UPDATE OR1SET QTY=7WHERE CNO=090104 AND NMNO=01-03;结果五、实验小结学了一个学期的数据库,总感觉很简单,但是真正的到自己操作的时候才发现并不简单,大错误就先不说,小错误就一个接一个,

22、比如说错把双引号用作单引号,将表的名字取的和关键字一样,报错时却不知道错在哪儿了,在不同的数据库下新建查询,导致结果错误,中文字符与英语字符的转换,下划线“-”与连线“”区分等等。发现错误的过程就是一个学习的过程,虽然错的很多,但那也正是自己水平的体现,或者说那样也就减少了以后自己工作中的错误,吃一堑长一智。虽然很短的几天,但是对SQL语句了解的更多了一些,确实像老师所讲的那样,这是目前我所学的语言中最简单的一门了,很容易上手的,即便以前学的不认真,但是只要仔细的研究一下,还是会写一些简单的语句的,但是仅仅的局限于照葫芦画瓢还是不够的,要有自己的思路,这样才能真正的掌握到SQL,也只有这样才能对以后的工作有所帮助。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1