1、数据库课程设计班级物联网1202学 号 3120611027 姓名 杨璐指导老师 年轶2014年1月INSERTINTOSTODENTVALUESC148;Susan poweU,;534 East River Dr,19041,Haverford,PA,F);INSERTINTO STUDENTVALUESf210;Bob Dawson*,*120 South Jefferson;02891 /Newport,RI/M*);INSERTINTO STUDENTVALUESf298,Howard Mansfield,*290 Wynkoop Drive,22180,Vienna,INSERTI
2、NTO STUDENTVALUESC348,Susan Pugh,534 East Hampton Dr,06107,Hattfbrd,CN,F);INSERTINTO STUDENTVALUESf349*:Joe Adams:73 Emmerson Street*; 19702*,Newark,DE/M);INSERTINTO STUDENTVALUESC354,3anct Ladd,441 10th Street,18073,Pennsburg,PAT);INSERTINTO STUDI-NTVALUES(*41O,B11 Jone:120 South Harrison,92660,New
3、port,CA,M,);INSERTINTO STUDENTVALUESC473*,Carol Dean,*983 Park Avenue,02169,Boston,MA,F);INSERTINTO STUDENTVALUESf548,.,Allcn thomas;238 West Ox Road,6()624、Chicagp,IL,M);INSERTINTO STUDENTVALUESC558,Vai Shipp,238 Westport Road,60556,Chicago,IL,F);INSERTINTO STUDENTVALUESC649john Anderson*,473 Emmor
4、y Street0008,New York/NY/M*);INSERTINTO STUDENTVALUESe54Janct Yhomas,441 6th Street,:l6510,Hrie,.PA;F);SELECT* FROM STUDENTTEACHER录入数据INSERTINTO TEACHERVALUES(,303,Dr.Horn,257-3049,27540.00);【NSHRTINTO TEACHERVALUESC290,;Dr.Love,257-2390,31450.00);INSERTINTO TEACHERVALUES(430,;Dr.Englc,;56-462r,3820
5、0.00);INSERTINTO TEACHERVALUES(180:Dr.Cooke,257-808829560.00:i;INSERTINTO TEACHERVALUES(560;Dr.01sen,;257-8086,31778.00);INSI-RTINTO TEACHERVALUES3 AND cno=,730r);cname department credit1 Calculus Iv Math 4检索没有选修任何课的学生姓名、学号SELECT sno,snamcFROM STUDENTWHERE NOT 1-XISTS(SELECT *FROM ENROLL9.检索没有选修课程“C
6、alculus Iv”的学生学号SELECT snoFROM STUDENTWHERE sno NOT I、(SELECT STUDENT.sncFROM COURSE,STUDENT,ENROLLWHERE cname-Caiculus lvAND COURSE.cno二ENROLL.cn。AND STUDENT.sno二ENROLL.sno);结果j消息*10检索至少选修教师“Dr. Lowe”所开全部课程的学生学号SELECT DINSTINCT snosno1 298 j23493354441055486654FROM ENROLL ENROLLXWHERE NOT I EXISTS(
7、SELECT *FROM l2)sname1 英Q查询已成功执行.11. 检索只有男生选修的课程和学生名SELECT cnamc,snameFROM COURSE ,STUDI:NT ,RROLLWHERE STUDENT.sno二ENROLLsnoAND COURSE.cno=F;.NAND COURSE.cno in(SELECT enoFROM COURSEWHERE eno not in (SELECT DISTINCT enoFROM STUDENT,ENROLLWHERE sex =T and STUDENT.sno=ENROLL.sno)面旬已做执行。cnamesname1| E
8、nglish Composition:Howard Mansfield:2English CompositionJoe Adams3English CompositionAllen thomas检索所有学生都选修的课程名、学生名、授课教师名、该生成绩SELECT cname,sname,tnamc,gradeIROM STUDENT ,TI:ACHI:R ,SIX:TI()N,C()l;RSI:WHERE COURSE.cno二EROLL.cn。AND STUDENT.sno=ER()LL.snoAND TEACHER.tno=SECTION.tnoAND SECTION.cno二ENROLL
9、.cn。AND SECTION.sccno=ENROLL.scconAND COURSE.cno=(SELECT enoFROM ENROLLGROUP BY enoHAVING COUNT (*)=12icname sname tname grade面旬已翰执行.15.删去名为joe Adams”的所有记录DELBTKFROM STUDENTWHERE sname=Joc Adams,SELECT *FROM STUDENT一、引言21. 目的22. 题目23. 要求2二、系统的分析与设计31. 概念设计32. 逻辑设计33. 系统功能结构44. 完整性设计5三、系统的实现6四、课程设计小结
10、22snosnameaddresszipcitystatesex1“48 !Susan powell534 East River Dr19041HaverfordPAF2210Bob Dawson120 South Jefferson02891NewportRlM3238Howard Ma.290 Wynkoop Drive22180ViennaVAM4348Susan Pugh534 East Hampto.06107HartfordCNF5354Janet Ladd441 10th Street18073Pennsb.PAF6410Bill Jone120 South Harrison92
11、660NewportCAM7473Carol Dean983 Park Avenue02169BostonMAF尸AMccc、,, z ryiii.粉查询已成功执行.8548Allen thomas238 West Ox Road60624ChicagoILM9558Vai Shipp238 Westport Road60556ChicagoILF10649John Ander.473 Emmory Street10008New YorkNYM11654Janet Yho.441 fth Street16510EriePAF16.把教师“Scangp的编号改为“666UPGRADE TEACH
12、I-RSET tno=666WI Il lRbL tname Dr.Scangp SELECT *FROMTHACHKR6666 Dr.Sca. 257-3046 32038.0017.统计教师Engle”教的英语课的学生平均分SELECT AVG(grade)AV(;FROM ENROLLWHERE grade in(SELECT gradeFROM TEACHER,SECTION,ENROLLWHERE mamcDr.Englc*AND TEACHER.tno=SECTION.tnoAND SECTION.cno二ENROLL.cn。AND ENROLL.secno=SECTION.sec
13、no)AVG1L.318.统计各门课程的选课人数SELECT COURSE.cnamc,COUNT(ENR()LL.sno)FROM ENROLL,COURSEWIH-RR ENR()LL.cno=COURSE.cnoGROUP BY COURSE.cnamc;J结果 j消息cnameQTY1i Calculus IvI 62Compiler Writing53English Composition34Western Civilization419.输出如下报表:学生名课程名教师名成绩SELECT snamc学生名,cname课程名,tname教帅名,grade成绩 FROM ENROLL,S
14、TCDENT,COURSE,TEACHER.SECTION WHERE EN R( )LLsnc二STUDENT.sncAND SECTION.eno = COURSE.cnoAND ENROLL.secno = SECTION.sccnoAND I:NR()LL.cno = SKCTION.cnoAND SECTION.tno 二 TEACHER.tno*20.定义并验证触发器,当登记表增加一条新的记录时,自动在分组表中更新相应属性。学生名课程名教弗名成绩1Susan PughCompiler WritingDr. Cooke42Bill JoneCompiler WritingDr. Co
15、oke23John Ande.Compiler WritingDr. Cooke44Susan po.Calculus IvDr. Lowe35Bob Daws.Calculus IvDr. Lowe16Susan PughCalculus IvDr. LoweI 2 I7Carol DeanCalculus IvDr. Lowe38Vai ShippCalculus IvDr. Lowe3学生名深程名教师名成绩9John Ande.Calculus IvDr. Lowe410Carol DeanWestern Ovii.Dr. Hom211Janet Vho.Western Qvili.Dr
16、. Hom412Howard M.English Comp.Dr Engle313Joe AdamsEnglish Comp.Dr Engle414Allen thomasEnglish Comp.Dr .Engle215Bob Daws.Western Ovii.Dr. CHsen316Allen thomasWestern Qvili.Dr. Olsen117Howard M.Compiler WritingDr. Sea.318Carol DeanCompiler WritingDr. Sea.0CREATE TRIGGER ENROLL,!ON ENROLLAFTER INSERTAS
17、UPDATE SECTIONSET sqty=sqty+1FROM SECTION,insertedWHERE inscrtcd.sccno=SECTION.sccnoANDo=SECTION.cno验证结果:INSERTINTO ENROLLVALUES350,2,354,T)SELECT *FROM SECTION原始数据执行结果Z1结果,消息secnotnoenosqty11804803212905001312907306413034502514302903625604502727844802secnotnoenosqty1lO180480321290500131290730641303
18、4502514302903625604503727844802四、课程设计小结在本次课设之前,我已经在前段学习期间上机编写过类似相关的SQL语句来完成对于 学生-课程-选课的信息查询,这次在原先实验的基础上添加了分组和教师表,创建数据库、 基本表和录入数据的过程与上机实验基本相同,因此很容易就完成了前三个步骤,在这个过 程中对于数据库、表的创建以及数据的输入的操作都更加的熟练。题目4-19都是对于表中数据进行查询、修改、删除等操作,并且运用了。RDERBY、 GROUP BY等功能短语以及COUNT、AVG等聚集函数。前两题都是基本的查询,比较简 单,但由于输入数据时Dr.Engle中的多按了
19、一个空格,结果在调试的时候出现的是错tname phone.1 Dr .Engle 56*4621、误的结果,结果不正确(见截图2& Cooke 257-80S8 o第10题是本次课设最难的题目,自己也尝试着去做,但是由于理解的失误以及数据的 巧合性,错误的SQL语句得出的结果却是正确的。这就导致了自己以为解决了这道难题, 以至于在给老师检查的时候被指出严重的错误,感到很羞愧。后来仔细分析题意,按照所有 的关键字来编写查询语句,参照书上关于not exists语句以及嵌套循环的语句,用谓词演算 将题目转换成逻辑运算,等价为“没有这样课程y,老师Dr.Lowc教授了这门课,而学生X 没有选”。P
20、表示“老师教授了课程y”,q表示“学生X选了课y”,等价于3 y(pAnq)o 参照书上的例题,分层次地编写功能语句。因为题目的巧合性所以在检验时修改了数据,添 加了该老师新开另一门课,只有学号148的学生同时选择了这门老师的两门课。然后再去验 证结果发现是正确的。口结果也消息sno第13题的题目刚开始理解的不透彻,所以直接查询了男生选修的课程,得到的结果有 10个,但照表检查可以看出有些课程仍是有女生选的,与题目“只有男生选修”的条件不 符,因此重新分析,发现可以使用嵌套查询先用了查询把女生选择的课程选出来,然后父查 询在子查询的结果之外(not in)查询,这样就把女生选修的课程出去,这样
21、就避免出现选 择的课程男、女生都选修的错误。(见截图)口结果 j消息cnamesnameJJ:English Composition jHoward Mansfield2English CompositionJoe Adams3English CompositionAllen thomas4Western CivilizationBob Dawson5Western OvilizationAllen thomas6Compiler WritingHoward Mansfield7Compiler WritinqBill Jone查i旬已曲执行.第15、16题是对于学生、教师表的修改和删除。在执
22、行过程中程序一直报错,始终找 不出问题所在。后来经过询问同学,发现SECTION和ENROLL表中引用了这两个表中的 sn。和tno,由于其引用关系,所以无法对于这两个表进行修改。因此需要先删除外码的引用 关系,然后才能对其进行修改和删除。第20题定义触发器这个比较陌生,在学习的时候就不是很掌握,因此对于这个题目第 一印象就是不想去做,我不会。但是后来通过翻阅书本并且询问同学,并且自己不断的摸索, 虽然起初直报错,但是我并没有气馁,在各种帮助和努力卜终于实现了最后-个功能。不 过在给老师检查的过程中,发现UPDATE语句后面自己添加了 FROM的语句,虽然对于整 个执行结果没有太大的影响,但这
23、是一个常识性的错误,不应该出现如此低级的错误,因为 当时是想新表需要和SECTION、ENROLL表进行连接,所以在写的过程中直接添加了 o=SECTION.cno AND inserted.secno=SECTI()N.secno 的错误语句,而且还误将其 中的SECTION写成了 ENROI.L表,以至于在老师询问的时候,自己也被自己的代码弄得 不知所措。后来修改的时候索性把所有的条件语句都删除了,并没有进行临时新表inserted 与SECTION表的连接,以至于结果每一行的学生登记数量sqty都加一,得到错误的结果。过程比较艰辛但是最后完成的时候内心的喜悦确实满满洋溢的。果然自己去努力
24、实现的 甲情可以给自己带来无限的快乐,自己从中收获的经验和知识也是更多的。不要因为自己对 于某方面不熟悉就直接放弃,而应该努力去尝试一下。只有试过了,才知道自己到底可不可 以完成这个看似困难的问题!附表2课程(COURSE)学生(STUDENT)课程号(eno)课程名(cname)系名(department)学分(credit)450Western CivilizationHistory3730Calculus IvMath4290English CompositionEnish3480Compiler WritingComputer Science3学号(sno)姓名(sname)地址(ad
25、dress)邮政编码(zip)市(city)省(state)性别(sex)148Susan powcll534 East River Dr19041HavcrfbrdPAF210Bob Dawson120 South Jefferson02891NewportRIM298Howard Mansfield290 Wynkoop Drive22180ViennaVAM348Susan Pugh534 East Hampton Dr06107HartfordCNF349Joe Adams473 Emmerson Street19702NewarkDEM354Janet Ladd441 10th St
26、reet18073PennsburgPAF410Bill Jone120 South Harrison92660NewportCAM473Carol Dean983 Park Avenue02169BostonMAF548Allen thomas238 West Ox Road60624ChicagoILM558Vai Shipp238 Westport Road60556ChicagoILF649John Anderson473 Emmery Street10008New YorkNYM654Janet Yhomas441 6th Street16510EriePAF教师(TEACHER)分
27、组(SECTION)登记(ENROLL)教师编号姓名电话号码工资(tn。)(tname)(phone)(salary)303Dr. Horn257-304927540.00290Dr. Ix)we257-239031450.00430Dr .Engle256-462138200.00180Dr. Cooke257-808829560.00560Dr. Olsen257-808631778.00784Dr. Scango257-304632098.00组号教师编号课程号学生数量(secno)(tno)(eno)(sqty)3034502129073061430290311804803256045
28、0227844802课程号(eno)组号(secno)学生学号(sno)评分(grade)730114834502210373012101290129834802298373013482290134944801348448014102450147327301473348024730290154827301558373016494480164944501654445025481如有侵权请联系告知删除,感谢你们的配合!1. 目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实 际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的 能力。课程设计的目的:加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;学会将知识应用于实际的方法,提高分析和解决问