《数据库及其应用》实验报告2.docx
《《数据库及其应用》实验报告2.docx》由会员分享,可在线阅读,更多相关《《数据库及其应用》实验报告2.docx(18页珍藏版)》请在冰豆网上搜索。
![《数据库及其应用》实验报告2.docx](https://file1.bdocx.com/fileroot1/2023-2/4/0776fa94-c7a7-4997-9b61-81a476897175/0776fa94-c7a7-4997-9b61-81a4768971751.gif)
《数据库及其应用》实验报告2
《数据库及其应用》实验报告
实验序号:
B0901000-03实验项目名称:
SQL查询、选择查询和动作查询
学 号
1003010237
姓 名
罗云飞
专业、班
金融1002
实验地点
现教中心
指导教师
范爱萍
时间
2011年4-5月
一、实验目的及要求
1.掌握Access表达式的基本概念。
了解不同类型数据的常量、参数、运算与函数的使用。
2.理解查询对象的意义和建立方法。
3.掌握SQL语言中SELECT语句的主要应用。
4.掌握SQL的插入、更新、删除操作命令的基本应用。
5.了解SQL定义数据表的基本方法。
6.理解Access选择查询的意义和类别。
7.掌握一般选择查询的操作应用;理解并掌握交叉查询的应用;理解参数查询的意义。
8.理解Access动作查询包含的查询类别。
9.将动作查询与SQL命令进行对比,理解并掌握动作查询的操作应用。
二、实验设备(环境)及要求
PC机,WindowsXP,Access2003,学生管理数据库
三、实验内容要求
(一)SQL视图中表达式练习
1.进入SQL视图及在不同视图间切换
在Access中进入查询的设计视图并在查询的不同视图之间切换。
2.不同类型数据的表达式运算
在SQL视图中分别输入以下命令并运行,对于参数自己输入数据。
查看并写出各表达式运算结果。
SELECT-5.12^2+(17mod3);
SELECT"Hello"+",World!
",LEFT("清华大学出版社",2)+RIGHT("清华大学出版社",3);
SELECT"你毕业的年份是",VAL(LEFT([你的学号],4))+4;
SELECT"现在是"+STR(YEAR(DATE()))+"年","现在的时间是:
"+CSTR(TIME());
SELECT"张三">"李四","ABCD"<"abcd",(DATE()-#1992-10-8#)>1000;
(二)SQL命令进行查询和操作>
1.练习SQL查询的SELECT语句
启动教学管理数据库,在数据库窗口对象栏中单击“查询”,然后进入SQL视图。
在“SQL视图”中输入以下SELECT命令,查看执行结果,并仔细体会查询的实现。
1查询“学院”、“专业”、“学生”完整数据。
SELECT*
FROM((学院INNERJOIN专业ON学院.学院号=专业.学院号)
INNERJOIN学生ON专业.专业号=学生.专业号);
②查询“工商管理”专业所有女生信息。
SELECT专业,学生.*
FROM专业INNERJOIN学生ON专业.专业号=学生.专业号
WHERE专业.专业="工商管理"AND学生.性别="女";
③查询平均成绩在80分以上的各位学生的学号、姓名和平均分。
保存为查询对象,对象名“优秀学生”。
SELECT学生.学号,姓名,AVG(成绩)AS平均分
FROM学生INNERJOIN成绩ON学生.学号=成绩.学号
GROUPBY学生.学号,姓名
HAVINGAVG(成绩)>=80;
单击工具栏保存按钮,弹出“另存为”对话框,输入“优秀学生”,单击“确定”按钮。
④查询没有学生数据的专业编号和专业。
SELECT专业号,专业
FROM专业
WHERE专业号NOTIN(SELECT专业号FROM学生);
⑤查询“湖北”籍1988年以后出生的学生信息。
SELECT*
FROM学生
WHERE籍贯LIKE"湖北*"AND生日>=#1988-1-1#;
⑥查询选课人数最多的课程的课程号、课程名。
SELECTTOP1课程.课程号,课程名
FROM课程INNERJOIN成绩ON课程.课程号=成绩.课程号
GROUPBY课程.课程号,课程名
ORDERBYCOUNT(*)DESC;
2.练习SQL的插入、更新、删除操作命令
①在课程表中插入一门新课,数据如命令所示。
INSERTINTO课程
VALUES("06020101","会计学原理",3,"06");
②将“法学院(04)”开设课程的学分增加1分。
UPDATE课程
SET学分=学分+1
WHERE学院号="04"
③删除“信息学院(09)”开设的没有学生选修的课程。
DELETEFROM课程
WHERE学院号="09"AND课程号NOTIN(SELECT课程号FROM成绩)
3.创建“教师”表,包括:
工号、姓名、性别、生日、职称、基本工资、学院号。
写出创建命令。
(三)选择查询操作
1.进入查询设计视图进行交互式选择查询设置
启动教学管理数据库。
①查询“专业”表,显示开设的所有专业涉及的学科门类。
②查询各专业学生的人数。
③查询没有选课的男学生学号、姓名,即成绩表中没有记录的学生数据。
2.进行交叉表查询
将学生的“学号”和“姓名”作为行标题,“课程名”作为列标题,成绩作为交叉数据,生成交叉表。
3.进行参数查询
通过参数查询指定日期以后出生的某个民族的学生信息。
(四)动作查询操作
1.生成表查询操作练习
将“查询平均成绩在80分以上的各位学生的学号、姓名和平均分”的结果生成新表,表名“优秀学生名单”。
2.删除查询操作
删除“优秀学生名单”表中,平均分在85分以下的记录。
3.追加查询操作
将平均分在80~85分之间的学生及成绩数据加入“优秀学生名单”表,
4.更新查询操作
将没有学生选修的课程的学分减少1分。
写出以上要求的操作步骤并截取必要的图片。
四、回答问题
1.有哪几种方式可进入“SQL视图”?
如果用“记事本”编写了SQL语句,是否可以在SQL视图中使用?
如何操作?
答:
单击查询工具栏的“视图”工具的下拉按钮,选择“SQL视图”选项或单击菜单栏中“视图”,选择“SQL视图”。
可以。
操作:
输入、编辑SQL语句;运行SQL语句并查看查询结果;保存SQL语句为查询对象就可以了。
2.为什么不能在数字常量前加“¥”或“$”符号表示币值常量?
“¥”或“$”有何作用?
答:
这是因为由程序控制,调用显示格式。
其中的“¥”表示定义货币的“格式”属性。
而“$”表示可以再格式属性的任何位置使用这些字符并请将这些字符原文照印。
3.如果在修改“法学院”学分的操作中要求根据“学院名”作为输入条件修改数据,查询命令应该如何写?
答:
UPDATE课程表SET学分=学分+1
WHERE学院号=“04”;
4.不保存查询,与将查询保存为查询对象有何区别?
查询对象有什么作用?
答:
将查询对象保存为查询对象后,可将查询功能反复执行,并作进一步处理。
作用:
当需查看查询结果时,进入查询对象界面,选中相应的查询对象单击“打开”,即可运行查询,查看结果;由于查询的结果与表的格式相同,所以查询对象还可以进一步成为其他操作的数据源。
5.根据以下给定的查询要求,写出对应的查询命令。
①查询学生中的民族来源,显示不重复的民族数据。
SELECTDISTINCT民族FROM学生
②查询各民族男生和女生的人数。
SELECTCount(*)FROM学生WHERE性别=”男”OR性别=”女”;
③查询没有学生选修的课程信息以及开课的学院名。
SELECT课程号,学院号FROM课程
④插入几条教师记录。
INSERTINTO教师VALUES(“……..”)
⑤给“教授”职称的教师的基本工资增加10%。
UPDATE教师SET工资=工资+工资*0.1
⑥删除没有学生就读的专业数据。
DELETEFROM学生WHERE专业号NOTIN(SELECT专业号FROM专业)
⑦删除教师表。
答:
Deletetable教师
6.深入体会交叉表查询的作用,简述交叉表查询的实质意义。
作为行标题的字段最多可以设置几个?
作为列标题和交叉值的字段最多可以设置几个?
答:
交叉表查询都是一种特殊的汇总查询。
交叉表事实上反映的是对两种实体极其练习的关系表示,转换为另一种二维表结构来显示。
行标题的字段可是多个,列标题只能是一个。
7.参数查询的参数设置是否一定要通过菜单设置类型?
通过菜单设置的参数是否一定要出现在查询中?
答:
不是,也可以把参数设置为工具栏上,作为快捷键。
或者也可以可以单击右键,在选择参数设置就行了。
不一定要出现在查询中。
8.生成表查询实现的是SQL语言中什么语句的功能?
答:
实现SELECT语句中INTO子句的功能。
9.追加查询对应SQL的什么语句?
该语句是否只具有追加查询的功能?
若有其他功能,如何实现交互操作?
答:
INSERTINTO<表>[(<字段1>[,<字段2>,……])]]VALUES(<字段1>[,<字段2>,……])]是只具有追加功能。
要求通过窗体或者数据表视图来实现交互操作。
五、分析讨论
1.在不同类型的数据表达式运算中显示
不知道原因,后来才知道是分号跟在了select后面。
2.
不知原因。
3.终于明白为什么语法老是显示错误,是因为标点用的是中式标点,应该关闭输入法再输入标点。
4.大于小于号,输入的格式不匹配。
不会输入英式符号。
六、教师评语
1.按时完成实验;
2.实验内容和过程记录完整;
3.回答问题完整、正确;
4.有实验的心得或讨论;
5.实验报告的撰写认真、格式符合要求,没有抄袭行为。
签名:
范爱萍
日期:
2011.5
成绩
见成绩表
(一)SQL视图中表达式练习
2.
(二)
1.
2.
3.
(三)1.
2.
3.
(四)1.
2.
3.
4.