数据库实验报告.docx
《数据库实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
数据库实验报告
工学系
课程实验报告
课程名称:
数据库系统原理
专业:
信息管理与信息系统
班级2011级信息管理与信息系统班
学号:
***********
************
**********************
2014年7月4日
《SQLServer2005数据库开发》实验报告
实验名称:
________________指导教师:
___________完成日期:
__________专业:
班级:
姓名:
___________
一、实验目的:
熟练掌握使用SQLServer2005企业管理器创建数据库、表、索引和约束的方法,学会利用企业管理器查看或修改数据库属性和表结构,加深对数据库模式、表结构、索引和数据完整性约束等概念的理解。
二、实验内容:
利用SQLServer企业管理器中实现:
(1)创建数据库并查看数据库属性;
(2)在数据库中定义基本表及结构,定义表的主码和基本约束条件,并为主码建索引;
(3)查看基本表结构,并修改表结构直到正确。
三、程序设计说明:
(实现步骤、算法设计思路、流程图等)
1、实验要求
(1)基本操作1)建立图书_读者数据库。
查看图书_读者数据库的属性,并修改至符合要求。
2)在图书_读者库中建立图书、读者和借阅表:
图书(书号,类别,出版社,作者,书名,定价);
读者(编号,姓名,单位,性别,电话);
借阅(书号,读者编号,借阅日期).
要求:
为属性选择合适的数据类型;定义每个表的主码;设置是否允许空值和缺省值等列级数据约束。
4)建立以下表级约束。
主码约束;借阅表与图书表间、借阅表与读者表之间的外码约束;实现借阅表的书号和读者编号的惟一性约束;实现读者性别只能是“男”或“女”的Check约束。
(2)提高操作
在SQLServer2005企业管理器中建立学生_课程库实现。
库中表结构为:
学生(学号,姓名,年龄,性别,所在系);
课程(课程号,课程名,先行课);
选课(学号,课程号,成绩).
要求:
建库、建表和建立表间联系。
选择合适的数据类型。
定义必要的索引、列级约束和表级约束。
2、实验步骤
1)打开SQLServer2005企业管理版,进行链接注册
2)在数据库中右击新建数据库,在新建的数据库中右击建立表
3)在表中输入数据并保存
4)对所建数据库进行备份
四、实验结果与结论:
(经调试正确的源程序(核心部分)和程序的运行结果)
1、读书—读者数据库
图书表
读者表
借阅表
2、学生选课数据库
学生表
课程表
选课表
五、实验总结:
(实验中遇到的问题及解决方法,心得体会等)
对SQLServer2005企业版的操作环境不是很熟悉,导致数据库的建立出现了一点问题
强化了对操作环境的熟悉应用,和输入的指法操作,锻炼了耐心,提高了成粗书写的细心程度。
《SQLServer2005数据库开发》实验报告
实验名称:
________________指导教师:
___________完成日期:
_________专业:
班级:
姓名:
一、实验目的:
进一步熟悉SQLServer企业管理器,熟练掌握使用企业管理器向数据库输入数据、修改数据和删除数据的操作,加深对数据库的关系、元组、属性和数据约束等概念的理解。
二、实验内容:
利用SQLServer企业管理器中实现:
(1)查看数据库的基本表的结构和数据约束,并将它们调整到正确;
(2)在数据库的基本表中正确输入数据;
(3)在数据库的基本表中插入、删除和修改数据;
(4)浏览数据库中基本表中的数据。
三、程序设计说明:
(实现步骤、算法设计思路、流程图等)
1、实验要求
在图书-读者库中向图书、读者和借阅3个表中各输入10条记录。
要求记录不仅满足数据约束要求,要有表间关联的记录。
2)对图书借阅数据库的图书、读者和借阅3个表中数据的插入、删除和修改操作。
3)对学生-课库的数据增加、数据删除和数据修改操作,要求学生、课程和选课表中各有10条以上记录。
2、实验步骤
1)打开SQLServer2005企业管理版,进行链接注册
2)在数据库中右击新建数据库,在新建的数据库中右击建立表
3)在表中输入数据并保存
4)对所建数据库进行备份
四、实验结果与结论:
(经调试正确的源程序(核心部分)和程序的运行结果)
1、读书—读者数据库
图书表
读者表
借阅表
2、学生选课数据库
学生表
课程表
选课表
五、实验总结:
(实验中遇到的问题及解决方法,心得体会等)
对SQLServer2005企业版的操作环境不是很熟悉,导致数据库的建立出现了一点问题
强化了对操作环境的熟悉应用,和输入的指法操作,锻炼了耐心,提高了成粗书写的细心程度。
《SQLServer2005数据库开发》实验报告
实验名称________________指导教师___________完成日期:
___________专业:
班级:
姓名:
_______________
一、实验目的:
进一步熟悉SQLServer企业管理器,熟练掌握使用企业管理器向数据库输入数据、修改数据和删除数据的操作,加深对数据库的关系、元组、属性和数据约束等概念的理解。
二、实验内容:
利用SQLServer企业管理器中实现:
(1)查看数据库的基本表的结构和数据约束,并将它们调整到正确;
(2)在数据库的基本表中正确输入数据;
(3)在数据库的基本表中插入、删除和修改数据;
(4)浏览数据库中基本表中的数据。
三、程序设计说明:
(实现步骤、算法设计思路、流程图等)
【5-1】查询表student中女生的相关信息。
SELECT*
FROMstudent
WHEREsex='女'
【5-2】列出所有course的职员课程名、课程号、学分。
SELECTcourseno,cname,credit
FROMcourse
【5-3】查询表student中入学成绩在780分以上的学生的学号、姓名和电话信息。
SELECTstudentno,sname,phone
FROMstudent
WHEREpiont>780
【5-4】查询表student中入学成绩在780分以上的学生的学号、姓名、电话和班级名称信息。
在FROM子句中使用AS关键字为表指派一个临时名称。
SELECTstudentno,sname,phone,classname
FROMstudentas学生,classas班级
WHEREpiont>780and班级.classno=学生.classno
【5-5】在course表中显示期中、期末成绩都高于85分的学生学号、课程号和成绩。
SELECTstudentno,courseno,usually,final
FROMscore
WHEREusually>=85ANDfinal>=85
【5-6】查询选修课程号为C05109或C06108且期末成绩大于等于85分的学生的学号、课程号和成绩。
SELECTstudentno,courseno,usually,final
FROMscore
WHERE(courseno='c05109'ORcourseno='c06108')ANDfinal>=85
【5-11】在student表中显示所有姓何或姓韩的学生的姓名、生日和E-mail。
SELECTsname,birthday,[E-mail]
FROMstudent
WHEREsnameLIKE'何%'orsnameLIKE'韩%'
【5-13】在student表中显示所有1989年或1月份出生的学生的姓名、生日和E-mail。
SELECTsname,birthday,[E-mail]
FROMstudent
WHEREbirthdayLIKE'%1989%'orbirthdayLIKE'%01%'
【5-16】查询学号分别为0824113307、0925111109和0935222201的学生学号、课程号、平时成绩和期末成绩。
SELECTstudentno,courseno,usually,final
FROMscore
WHEREstudentnoIN('0824113307','0925111109','0935222201')
【5-17】在student表中查询出生日期在1989年以后的学生的学号、姓名、电话和年龄。
SELECTstudentnoAS'学号',snameAS'姓名',
phoneAS'手机号',year(getdate())-year(birthday)AS'年龄'
FROMstudent
WHEREyear(birthday)>1989
四、实验结果与结论:
(经调试正确的源程序(核心部分)和程序的运行结果)
5-1
5-2
5-135-165-17
五、实验总结:
(实验中遇到的问题及解决方法,心得体会等)
了解了SQLserver在编程语言中的重要性,以及select查询的基本操作及应用,是我不断明白原来数据是这样操作的,使我的视野进一步开阔了。
2014-6-6
《SQLServer2005数据库开发》实验报告
实验名称:
________________指导教师:
___________完成日期:
_________专业:
班级:
姓名:
__________
一、实验目的:
进一步熟悉SQLServer企业管理器,熟练掌握使用企业管理器多表连接、子查询方式查询数据,加深对数据库的关系、元组、属性和数据约束等概念的理解。
二、实验内容:
利用SQLServer企业管理器中实现:
(1)多表连接、子查询、游标、大对象类型数据的概念;
(2)利用多表连接方式查询数据;
(3)利用子查询方式查询数据;
(4)利用游标处理集的基本过程。
三、程序设计说明:
(实现步骤、算法设计思路、流程图等)
1、查询
【6-1】查询选修课程号为C05109的学生的学号、姓名和期末成绩。
SELECTstudent.studentno,sname,final
FROMstudentINNERJOINscoreONstudent.studentno=score.studentno
WHEREscore.courseno='c05109'
【6-2】查询选修课程号为c05103且平时成绩高于80分的学生的学号、姓名、平时成绩和期末成绩
SELECTstudent.studentno,sname,usually,final
FROMstudentJOINscoreONstudent.studentno=score.studentnoandusually>80
WHEREscore.courseno='c05103'
【6-3】利用左外连接方式查询08级学生的学号、姓名、平时成绩和期末成绩
SELECTstudent.studentno,sname,usually,final
FROMstudentLEFTJOINscore
ONstudent.studentno=score.studentno
WHEREsubstring(student.studentno,1,2)='08'
【6-4】利用右外连接方式查询教师的排课情况
SELECTcourseno,tname,teacher.teacherno,major
FROMteach_classRIGHTJOINteacher
ONteach_class.teacherno=teacher.teacherno
【6-5】利用完全外连接方式查询教师的排课情况。
SELECTcourseno,tname,major,teacher.teacherno
FROMteach_classFULLJOINteacherONteach_class.teacherno=teacher.teacherno
【6-6】显示student表和score表的笛卡尔积
SELECTstudent.studentno,sname,score.*
FROMstudentCROSSJOINscore
【6-7】查询08级学生的学号、姓名、课程名、期末成绩及学分
SELECTstudent.studentno,sname,cname,final,credit
FROMscoreJOINstudentONstudent.studentno=score.studentno
JOINcourseONscore.courseno=course.courseno
WHEREsubstring(student.studentno,1,2)='08'
【6-8】查询计算机学院的老师的教师名、姓名、上课班级号、课程名和学分
SELECTteacher.teacherno,tname,class.classno,cname,credit
FROMteach_classJOINteacherONteach_class.teacherno=teacher.teacherno
JOINclassONteach_class.classno=class.classno
JOINcourseONteach_class.courseno=course.courseno
WHEREteacher.department='计算机学院'
【6-10】查询学号为000000的学生入学成绩、所有学生的平均成绩、该学生成绩与所有学生的平均入学成绩的差
selectstudentno,sname,point
(selectavg(point)fromstudent)as'平均成绩'
point-(selectavg(point)fromstudent)as'分数差值'
fromstudent
wherestudentno='0822111208'
【6-11】获取期末成绩中高于93分的学生学号、姓名、电话和邮箱
SELECTstudentno,sname,phone,[E-mail]
FROMstudent
WHEREstudentnoIN(selectstudentnofromscorewherefinal>93)
【6-13】查询期末成绩比该选修课程平均成绩低的学生的学号、课程号、期末成绩
SELECTstudentno,courseno,final
FROMscoreasa
WHEREfinal<(selectavg(final)fromscoreasbwherea.courseno=b.courseno
groupbycourseno)
【6-17】查询student表中是否存在1990年12月12日以后出生的学生,如果存在,输出学生的学号、姓名、生日和电话
selectstudentno,sname,birthday,phone
fromstudent
whereEXISTS(select*fromstudentwherebirthday<'1990-12-12')
四、实验结果与结论:
(经调试正确的源程序(核心部分)和程序的运行结
6-16-26-3
6-46-56-6
6-76-86-10
6-116-136-17
五、实验总结:
(实验中遇到的问题及解决方法,心得体会等)
掌握了多表连接,利用select语句中的多表连接、子查询等特性做了相关的题目,Transact-SQl语句功能强大,能够编写高级的SQL应用脚本。
学期实验总结
指导教师评语及成绩