实验4.docx
- 文档编号:7517575
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:12
- 大小:915.03KB
实验4.docx
《实验4.docx》由会员分享,可在线阅读,更多相关《实验4.docx(12页珍藏版)》请在冰豆网上搜索。
实验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对数据库进行更新。
1.7能够熟练掌握不同软件之间的数据交换。
二、实验设备(环境)及要求
PC机,Windows7,Office2010(主要是Access2010)
实验参考教材:
《数据库及其应用(Access及Excel)学习与实验实训教程》(第二版)。
(以下简称《实验教程》)
三、实验内容及记录
实验项目4:
使用SQL命令进行查询和操作
1.练习SQL查询的SELECT语句
按照《实验教程》实验6,练习SQL-SELECT查询,查看查询结果。
先在SQL视图中输入命令,再点击运行即可。
(1)在“SQL视图”中输入查询“学院”“专业”“学生”完整数据
SELECT*
FROM((学院INNERJOIN专业ON学院.学院编号=专业.学院编号)
INNERJOIN学生ON专业.专业编号=学生.专业编号);
(2)查询“工商管理”专业所有女生信息
SELECT专业名称,学生.*
FROM专业INNERJOIN学生ON专业.专业编号=学生.专业编号
WHERE专业.专业名称="工商管理"AND学生.性别="女";
(3)查询作为“项目负责人”的学生的学号、姓名、性别。
保存为“负责人”查询。
SELECT学生.学号,姓名,性别
FROM学生INNERJOIN项目分工ON学生.学号=项目分工.学号
WHERE分工="负责人";
单击“保存”按钮,弹出“另存为”对话框,输入“负责人”,单击“确定”按钮。
(4)查询没有参与项目的学生学号、姓名、专业名称
SELECT学号,姓名,专业名称
FROM学生INNERJOIN专业ON学生.专业编号=专业.专业编号
WHERE学号NOTIN(SELECT学号FROM项目分工);
(5)查询参与项目超过一项的学生学号、姓名和参与项目数。
SELECT学生.学号,姓名,COUNT(*)
FROM学生INNERJOIN项目分工ON学生.学号=项目分工.学号
GROUPBY学生.学号,姓名
HAVINGCOUNT(*)>1;
(6)查询参与项目最多的学生学号、姓名和参与项目数
SELECTTOP1学生.学号,姓名,COUNT(*)AS参与项目数
FROM学生INNERJOIN项目分工ON学生.学号=项目分工.学号
GROUPBY学生.学号,姓名
ORDERBYCOUNT(*)DESC;
(7)查询与农村或农业有关的项目及负责人姓名。
SELECT项目.*,姓名
FROM(学生INNERJOIN项目分工ON学生.学号=项目分工.学号)
INNERJOIN项目ON项目.项目编号=项目分工.项目编号
WHERE分工="负责人"AND(项目名称LIKE"*农业*"OR项目名称LIKE"*农村*")
2.练习SQL的创建表、插入、更新、删除操作语句
按照《实验教程》实验6,练习SQL的相关命令,查看结果。
(1)在教师表中添加一个新教工信息
INSERTINTO教师
VALUES("Z09031","杨飞","男","讲师","09");
(2)将“校级”项目的经费增加1000元
UPDATE项目SET项目.经费=经费+1000
WHERE(((项目.[项目类别])="校级"));-
(3)创建“已结项项目”表,包括:
项目编号、项目名称、项目类别、指导教师工号、负责人学号
CREATETABLE已结项项目
(项目编号TEXT(10)PRIMARYKEY,
项目名称TEXT(60)NOTNULL,
指导教师工号TEXT(8)REFERENCES教师(工号),
负责人学号TEXT(8)REFERENCES学生(学号));
(4)将已结项的项目转入“已结项项目”表,然后删除“已结项”的项目数据。
INSERTINTO已结项项目(项目编号,项目名称,指导教师工号,负责人学号)
SELECT项目.项目编号,项目名称,指导教师工号,学号
FROM项目INNERJOIN项目分工ON项目.项目编号=项目分工.项目编号
WHERE分工="负责人"AND是否结项;
DELETEFROM项目
WHERE是否结项;
3.写出实现以下功能的SQL语句
①查询“专业”表,显示开设的所有专业涉及的专业类别。
SELECT专业.专业类别
FROM专业;
②查询各专业学生的人数。
SELECT学生.专业编号,COUNT(*)AS人数
FROM学生
GROUPBY学生.专业编号;
③统计没有参与项目的学生人数。
SELECTCOUNT(*)AS人数
FROM学生
WHERE学号NOTIN(SELECT学号FROM项目分工);
#.回答问题
(1)不命名保存查询,与将查询保存为查询对象有何区别?
查询对象有什么作用?
前者查询设计没有保存,再次使用时需要重新输入命令,后者当选中相应的查询对象并打开时,可直接运行查询查看结果。
作用:
①当需要查看查询结果时,直接在查询对象界面选中相应的查询对象并打开,就可以运行查询查看结果,避免了再次重新设计查询的操作。
并且查询对性总是获取数据源表中最新的数据。
查询能自动与源表保持同步。
②查询对象可以成为其他操作的数据源。
(2)上述实验中,插入“已结项项目”表的命令是否可以省略字段列表?
为什么?
给表中全部字段提供数据时字段列表可以省略,系统会根据提供数据的顺序按照表中字段的顺序输入数据。
(3)删除“已结项项目”的命令的条件为什么没有比较对象?
项目表中的“是否结项”字段,是个逻辑值字段,也就是只有true和false两种情况。
"WHERE是否结项"就等价于"WHERE是否结项=1"或者"WHERE是否结项=true"这种情况。
属于省略的写法。
四、分析讨论
有几点收获:
AND和后面的字符之间要有一个空格,否则就会出现图中所示的情况
SELECT语句中的逗号要在英文输入法开启的时候打,否则就会出现图示情况
查询里面内容很丰富,也很有趣,所以我还比较喜欢做这个实验啦。
需要注意的问题有很多,比如说我经常就把符号搞成中文状态下的,结果都运行不了,后来意识到这个问题了,所以就特别注意。
这次实验我对查询的一些操作熟练了些。
五、教师评阅
1.按时完成实验:
是:
□否:
□
2.实验内容和过程记录完整:
完整:
□基本完整:
□不完整:
□
3.回答问题完整、正确:
是:
□一般:
□差:
□
4.有实验的心得或讨论:
是:
□否:
□
5.实验报告的撰写认真、格式符合要求,没有抄袭行为。
是:
□一般:
□差:
□
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验