数据库技术上机练习

更新时间:2024-03-25 23:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数据库技术》上机练习

一、Access的基本练习

1.学习Access的启动和退出;

2.通过上机熟悉Access的用户界面(包括Access窗口和数据库窗口的组成); 3. 读取dreamhome_demo.mdb数据库,熟悉SQL查询操作。(Access数据库的打开与SQL查询见附录一;查询内容可对照课堂讲授例子)

二、数据库的创建

1.创建一个新文件夹;打开Access,文件?新建?空数据库,给数据库命名(如Course_manage.mdb)

2.在上述所建数据库中用SQL语言在SQL视图 下创建如下四个关系(表) Access表的创建参考附录二

1) Department (depart_id, depart_name, address, telephone) 2) Student (stu_id, name, sex, class_id, depart_id) 3) Course (course_id, course_name, teacher, credit) 4) Course_record (stu_id, course_id, score)

注意:

1) 在使用SQL: CREATE TABLE 之前,确认四个表的主键和外键!并在CREATE TABLE中

实现!

Tips

2)建议属性的类型:

credit(学分), score(分数) 可用 SINGLE 类型 sex 只包含 ‘M’, ’F’,可用CHAR(1)

其他均可用VARCHAR(n) 类型,长度n根据需要指定

3.在上述表中输入下面的数据(可采用Access界面输入或者SQL INSERT语句)

Department 表(数据) depart_id depart_name address D005 D006 D011

Student 表(数据) stu_id 2001 2002 2003 2101 2102 2103

course_id 501 502 503

Course_record 表(数据) stu_id course_id score 2001 2001 2001 2002 2002 2002 2003 2003 2003 2101 2101 2101 2102 2102 2102 2103 2103 2103

501 502 503 501 502 503 501 502 503 501 502 503 501 502 503 501 502 503 88 77 79 92 91 93 85 93 66 81 96 75 72 60 88 95 94 80 Course 表(数据) course_name Teacher 大学语文 高等数学 基础会计学 陈志鹏 李云辉 张闯 credit 3 4 2.5 name 王云浩 刘小红 陈芸 徐涛 张春晖 祁佩菊 sex M F F M M F class_id 2008002 2008003 2008005 2007001 2008004 2008004 depart_id D005 D006 D006 D005 D011 D011 电气学院 控制系 水电学院 西二楼205室 南一楼 323室 西七楼215室 telphone 87542227 87545612 87543412 三、使用SQL语言对数据库建立如下查询:

1.多表连接操作 (四表连接)

(1)查询所有同学的有关基本信息和考试成绩。

(2)查询显示字段为:stu_id、name、depart_name、course_id、course_name、score。

2.简单条件查询

(1)查询选修了501课程的学生信息。

(2)查询显示字段为:stu_id、name、sex、depart_name、course_name、score。

3.复杂条件查询

(1)查询电气学院高等数学成绩大于90分的同学相关信息。

(2)查询显示字段为:stu_id、name、depart_name、course_name、score。

4.聚合函数的使用

(1)查询线形代数成绩的平均值。 (2)查询显示字段为:avg_score。

5.子查询的使用

(1)查询水电学院所有学生的高等数学成绩的平均值。 (2)查询显示字段为:avg_score。

6.根据以下要求创建一个名为“更新查询”的更新查询对象。 (1)要求将501课程的成绩提高5%。

(2)查询显示字段为:stu_id、course_id、course_name、new_score。

上机报告要求:

1. 给出4个表创建的SQL语句;在给表输入数据后,给出包含数据的四个表

的截图。

2. 给出6个查询要求的SQL语句表述;给出查询结果的截图。 3. 提示:在上机前思考查询SQL语句的实现!

注意:在上机过程中,使用SQL视图进行创建和查询时,系统会根据SQL给出相应的错误,应能够识别并修改

数据库上机报告

答案:

1. 给出4个表创建的SQL语句;在给表输入数据后,给出包含数据的四个表的截图。 1CREATE TABLE Course ○

(course_id VARCHAR (10) NOT NULL, course_name VARCHAR (10) NOT NULL, teacher VARCHAR (10) NOT NULL,

credit SINGLE NOT NULL, PRIMARY KEY (course_id));

2CREATE TABLE Department ○

(depart_id VARCHAR (10) NOT NULL, depart_name VARCHAR (20) NOT NULL, address VARCHAR (20) NOT NULL,

telephone VARCHAR (10) NOT NULL,PRIMARY KEY (depart_id));

3CREATE TABLE Student ○

(stu_id VARCHAR (10) NOT NULL, name VARCHAR (20) NOT NULL, sex CHAR (1) NOT NULL,

class_id VARCHAR(10) NOT NULL,

depart_id VARCHAR(10) NOT NULL,PRIMARY KEY (stu_id),FOREIGN KEY (depart_id) REFERENCES Department(depart_id));

4CREATE TABLE Course_record ○

(stu_id VARCHAR (10) NOT NULL,

course_id VARCHAR (10) NOT NULL,score SINGLE, PRIMARY KEY (stu_id,course_id),

FOREIGN KEY (stu_id) REFERENCES Student (stu_id), FOREIGN KEY (course_id) REFERENCES Course (course_id) );

2. 给出6个查询要求的SQL语句表述;给出查询结果的截图。

1SELECT Student.stu_id, name, depart_name, Course.course_id, course_name, score ○

FROM Student, Department, Course, Course_record WHERE Course_record.stu_id=Student.stu_id

And Course_record.course_id=Course.course_id And Department.depart_id=Student.depart_id;

2SELECT Student.stu_id, name, sex, depart_name, course_name, score ○

FROM Student, Department, Course, Course_record WHERE Course_record.stu_id=Student.stu_id AND Course_record.course_id=Course.course_id AND Department.depart_id=Student.depart_id AND Course_record.course_id='501';

3SELECT Student.stu_id,name,depart_name,course_name,score ○

FROM Student, Department, Course, Course_record WHERE Course_record.stu_id=Student.stu_id AND score>=90

AND Course_record.course_id=Course.course_id AND Department.depart_id=Student.depart_id AND depart_name='电气学院' AND course_name='高等数学';

4SELECT AVG(Course_record.score) AS avg_score ○

FROM Course_record WHERE course_id='502';

5SELECT AVG(score) AS avg_score ○

FROM Course_record

WHERE course_id=(SELECT course_id FROM Course WHERE course_name='高等数学')

AND stu_id IN (SELECT stu_id FROM Student

WHERE depart_id= ( SELECT depart_id FROM Department WHERE depart_name= '水电学院'));

6UPDATE Course_record ○

SET score = score*(1+0.05) WHERE course_id='501';

SELECT stu_id, Course_record.course_id, course_name, score AS new_score FROM Course_record, Course

WHERE Course_record.course_id=Course.course_id AND course_id=’501’;

本文来源:https://www.bwwdw.com/article/86u8.html

Top