2016年电大《数据库及其应用》实验报告2

《数据库及其应用》实验报告

实验序号:B0901000-34 实验项目名称:SQL查询、选择查询和动作查询

学  号

0906030155

姓  名

黄明均

专业、班

管科0901

实验地点

现教中心

指导教师

孙夫雄

时间

2010年4月

一、实验目的及要求

1.掌握Access表达式的基本概念。了解不同类型数据的常量、参数、运算与函数的使用。

2.理解查询对象的意义和建立方法。

3.掌握SQL语言中SELECT语句的主要应用。

4.掌握SQL的插入、更新、删除操作命令的基本应用。

5.了解SQL定义数据表的基本方法。

6.理解Access选择查询的意义和类别。

7.掌握一般选择查询的操作应用;理解并掌握交叉查询的应用;理解参数查询的意义。

8.理解Access动作查询包含的查询类别。

9.将动作查询与SQL命令进行对比,理解并掌握动作查询的操作应用。

二、实验设备(环境)及要求

PC机,Windows XP,Access 2003,学生管理数据库

三、实验内容要求

(一) SQL视图中表达式练习

1.进入SQL视图及在不同视图间切换

在Access中进入查询的设计视图并在查询的不同视图之间切换。

2.不同类型数据的表达式运算

在SQL视图中分别输入以下命令并运行,对于参数自己输入数据。查看并写出各表达式运算结果。

SELECT -5.12^2+(17 mod 3);

SELECT "Hello "+",World!",LEFT("清华大学出版社",2)+RIGHT("清华大学出版社",3);

SELECT "你毕业的年份是", VAL(LEFT([你的学号],4))+4;

SELECT "现在是"+STR(YEAR(DATE()))+"年","现在的时间是:"+CSTR(TIME());

SELECT "张三">"李四","ABCD"1000;

(二)SQL命令进行查询和操作

1.练习SQL查询的SELECT语句

启动教学管理数据库,在数据库窗口对象栏中单击“查询”,然后进入SQL视图。在“SQL视图”中输入以下SELECT命令,查看执行结果,并仔细体会查询的实现。

① 查询“学院”、“专业”、“学生”完整数据。

SELECT *

FROM ((学院 INNER JOIN 专业 ON 学院.学院号=专业.学院号)

INNER JOIN 学生 ON 专业.专业号=学生.专业号);

② 查询“工商管理”专业所有女生信息。

SELECT 专业,学生.*

FROM 专业 INNER JOIN 学生 ON 专业.专业号=学生.专业号

WHERE 专业.专业="工商管理" AND 学生.性别="女";

③ 查询平均成绩在80分以上的各位学生的学号、姓名和平均分。保存为查询对象,对象名“优秀学生”。

SELECT 学生.学号,姓名,AVG(成绩) AS 平均分

FROM 学生 INNER JOIN 成绩 ON 学生.学号=成绩.学号

GROUP BY 学生.学号,姓名

HAVING AVG(成绩)>=80 ;

单击工具栏保存按钮,弹出“另存为”对话框,输入“优秀学生”,单击“确定”按钮。

④ 查询没有学生数据的专业编号和专业。

SELECT 专业号,专业

FROM 专业

WHERE 专业号 NOT IN (SELECT 专业号 FROM 学生) ;

⑤ 查询“湖北”籍1988年以后出生的学生信息。

SELECT *

FROM 学生

WHERE 籍贯 LIKE "湖北*" AND 生日 >=#1988-1-1# ;

⑥ 查询选课人数最多的课程的课程号、课程名。

SELECT TOP 1 课程.课程号,课程名

FROM 课程 INNER JOIN 成绩 ON 课程.课程号=成绩.课程号

GROUP BY 课程.课程号,课程名

ORDER BY COUNT(*) DESC ;

2.练习SQL的插入、更新、删除操作命令

① 在课程表中插入一门新课,数据如命令所示。

INSERT INTO 课程

VALUES(,"会计学原理",3,"06");

② 将“法学院(04)”开设课程的学分增加1分。

UPDATE 课程

SET 学分=学分+1

WHERE 学院号="04"

③ 删除“信息学院(09)”开设的没有学生选修的课程。

DELETE FROM 课程

WHERE 学院号="09" AND 课程号 NOT IN (SELECT 课程号 FROM 成绩)

3.创建“教师”表,包括:工号、姓名、性别、生日、职称、基本工资、学院号。写出创建命令。

(三)选择查询操作

1.进入查