1、实验4数据库及其应用(课程编号:B0901000)实验报告(2013-2014学年第2学期) 实验成绩: 学 号: 1310080147 姓 名: 龙佳希 专业班级: 税收1302 课 堂 号: 10 任课教师: 朱少林 完成日期: 2014.5.22 一、实验目的及要求1.1 能熟练掌握 Access2010的启动、退出,以及操作界面和操作方法。1.2 能够理解关系模型的基本概念。1.3 能够完成简单的数据库概念设计、逻辑设计和物理设计。1.4 能够熟练建立数据库文件、表对象和关系。1.5 能够熟练掌握基本SQL语言,能够在Access中进行一般的SQL 查询。1.6 能够运用SQL对数据库
2、进行更新。1.7 能够熟练掌握不同软件之间的数据交换。二、实验设备(环境)及要求PC机,Windows 7,Office 2010(主要是Access 2010)实验参考教材:数据库及其应用(Access及Excel)学习与实验实训教程(第二版)。 (以下简称实验教程)三、实验内容及记录实验项目4:使用SQL命令进行查询和操作1练习SQL查询的SELECT语句按照实验教程实验6,练习SQL-SELECT查询,查看查询结果。先在SQL视图中输入命令,再点击运行即可。(1) 在“SQL视图”中输入查询“学院”“专业”“学生”完整数据SELECT*FROM(学院 INNER JOIN 专业 ON 学
3、院.学院编号 = 专业.学院编号) INNER JOIN 学生 ON 专业.专业编号 = 学生.专业编号);(2) 查询“工商管理”专业所有女生信息SELECT 专业名称,学生.*FROM 专业 INNER JOIN 学生 ON 专业.专业编号 = 学生.专业编号WHERE 专业.专业名称=工商管理AND 学生.性别=女;(3) 查询作为“项目负责人”的学生的学号、姓名、性别。保存为“负责人”查询。SELECT 学生.学号,姓名,性别FROM 学生 INNER JOIN 项目分工 ON 学生.学号 =项目分工.学号WHERE 分工=负责人;单击“保存”按钮,弹出“另存为”对话框,输入“负责人”
4、,单击“确定”按钮。(4) 查询没有参与项目的学生学号、姓名、专业名称SELECT 学号,姓名,专业名称FROM 学生 INNER JOIN 专业 ON 学生.专业编号=专业.专业编号WHERE 学号 NOT IN (SELECT 学号 FROM 项目分工);(5) 查询参与项目超过一项的学生学号、姓名和参与项目数。SELECT 学生.学号,姓名,COUNT(*)FROM 学生 INNER JOIN 项目分工 ON 学生.学号=项目分工.学号GROUP BY 学生.学号,姓名HAVING COUNT(*)1;(6) 查询参与项目最多的学生学号、姓名和参与项目数SELECT TOP 1 学生.学
5、号,姓名,COUNT(*) AS 参与项目数FROM 学生 INNER JOIN 项目分工 ON 学生.学号=项目分工.学号GROUP BY 学生.学号,姓名ORDER BY COUNT(*)DESC;(7) 查询与农村或农业有关的项目及负责人姓名。SELECT 项目.*,姓名FROM(学生 INNER JOIN 项目分工 ON 学生.学号=项目分工.学号) INNER JOIN 项目 ON 项目.项目编号=项目分工.项目编号WHERE 分工=负责人AND(项目名称 LIKE *农业*OR 项目名称 LIKE*农村*)2练习SQL的创建表、插入、更新、删除操作语句按照实验教程实验6,练习SQL
6、的相关命令,查看结果。(1) 在教师表中添加一个新教工信息INSERT INTO 教师VALUES(Z09031,杨飞,男,讲师,09);(2) 将“校级”项目的经费增加1000元UPDATE 项目 SET 项目.经费 = 经费+1000WHERE (项目.项目类别)=校级);-(3) 创建“已结项项目”表,包括:项目编号、项目名称、项目类别、指导教师工号、负责人学号CREATE TABLE 已结项项目(项目编号 TEXT(10) PRIMARY KEY, 项目名称 TEXT(60) NOT NULL, 指导教师工号 TEXT(8) REFERENCES 教师(工号), 负责人学号 TEXT(
7、8) REFERENCES 学生(学号);(4) 将已结项的项目转入“已结项项目”表,然后删除“已结项”的项目数据。INSERT INTO 已结项项目(项目编号,项目名称,指导教师工号,负责人学号)SELECT 项目.项目编号,项目名称,指导教师工号,学号FROM 项目 INNER JOIN 项目分工 ON 项目.项目编号 = 项目分工.项目编号WHERE 分工 = 负责人 AND 是否结项;DELETE FROM 项目WHERE 是否结项;3写出实现以下功能的SQL语句 查询“专业”表,显示开设的所有专业涉及的专业类别。SELECT 专业.专业类别 FROM 专业; 查询各专业学生的人数。S
8、ELECT 学生.专业编号 ,COUNT(*) AS 人数 FROM 学生GROUP BY 学生.专业编号; 统计没有参与项目的学生人数。SELECT COUNT (*) AS 人数FROM 学生WHERE 学号 NOT IN (SELECT 学号 FROM 项目分工);#回答问题(1) 不命名保存查询,与将查询保存为查询对象有何区别?查询对象有什么作用?前者查询设计没有保存,再次使用时需要重新输入命令,后者当选中相应的查询对象并打开时,可直接运行查询查看结果。作用:当需要查看查询结果时,直接在查询对象界面选中相应的查询对象并打开,就可以运行查询查看结果,避免了再次重新设计查询的操作。并且查询
9、对性总是获取数据源表中最新的数据。查询能自动与源表保持同步。查询对象可以成为其他操作的数据源。(2) 上述实验中,插入“已结项项目”表的命令是否可以省略字段列表?为什么?给表中全部字段提供数据时字段列表可以省略,系统会根据提供数据的顺序按照表中字段的顺序输入数据。(3) 删除“已结项项目”的命令的条件为什么没有比较对象?项目表中的“是否结项”字段,是个逻辑值字段,也就是只有true和false两种情况。WHERE 是否结项就等价于WHERE 是否结项 = 1或者WHERE 是否结项 = true 这种情况。属于省略的写法。四、分析讨论 有几点收获: AND和后面的字符之间要有一个空格,否则就会出现图中所示的情况SELECT语句中的逗号要在英文输入法开启的时候打,否则就会出现图示情况查询里面内容很丰富,也很有趣,所以我还比较喜欢做这个实验啦。需要注意的问题有很多,比如说我 经常就把符号搞成中文状态下的,结果都运行不了,后来意识到这个问题了,所以就特别注意。这次实验我对查询的一些操作熟练了些。五、教师评阅1按时完成实验:是: 否:2实验内容和过程记录完整:完整: 基本完整: 不完整: 3回答问题完整、正确:是: 一般: 差: 4有实验的心得或讨论:是: 否:5实验报告的撰写认真、格式符合要求,没有抄袭行为。是: 一般: 差:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1