admin 管理员组

文章数量: 1086019


2024年5月18日发(作者:django实现注册和登录)

江西财经大学精品课程《数据库应用》实验报告

实验五 SQL参数查询、子查询与数据更新

学号

实验项目

实验地点

指导教师

一、实验要求

1. 实验目的

了解SQL参数查询

掌握in子查询和带关系运算符的子查询应用;

掌握数据更新语句;

2. 实验准备

(1)登陆毕博教学网站(210.35.204.159/);(2)选择“数据库应用”课程;(3)选择“按周编

制的教学安排”后,再选择“第五周”;(4)下载“实验”和“数据库样例”。

3. 实验步骤

(1)完成教科书中下列例子。

【例3-42】

【例3-43】

【例3-44】

【例3-45】

【例3-46】

【例3-47】

【例3-48】

【例3-49】

【例3-50】

【例3-51】

【例3-52】

第 1 页/ 共10页

姓名

同组人

SQL参数查询、子查询与数据更新

G402

骆斯文

实验仪器台号

实验日期及节次

20

2011 年 9 月 27 日,第4 节

江西财经大学精品课程《数据库应用》实验报告

第二部分实验:

打开“图书管理”数据库,完成下列工作。

已知一个图书管理信息系统,其数据表间约束如下图所示,各个数据表的数据类型如上题表所示。

编写SQL完成下列功能。

用子查询完成以下实验:

(1) 查询未归还图书的读者编号、姓名和性别。

(2) 查询没有借过书的读者姓名

(3) 查询至少借阅了3本图书的读者编号、姓名、图书编号和图书名称,并按读者编号排序

(4) 查询已借阅图书但尚未归还的读者编号、姓名和工作单位

(5) 查询没有借阅管理类图书的读者编号、姓名和出生日期

用数据更新完成以下实验:

(6) 将计算机类的图书单价减少5元

(7) 将1987年出生的读者所借图书改为“已归还”

(8) 插入一条借书记录:读者编号06-00008,图书编号003-000024,借书日期2007-3-25,还书日

期2007-5-25,未归还。

(9) 删除2006年8月的借书记录。

(10) 删除读者欧阳思思的借书记录。

用参数查询完成以下实验:

(11)输入图书入库时间上、下限,查询在上限和下限期间入库图书的图书编号、图书名称和入库时

间。

二、实验过程(步骤、记录、数据和分析)

请将实验步骤中的每一步,使用截图方式记录其过程。

第 2 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

(1) 查询未归还图书的读者编号、姓名和性别。

SQL 语句:SELECT 读者编号,姓名,性别

from 读者

where 读者编号 in

(select 读者编号 from 借阅 where 是否归还<>true)

结果为:

(2)查询没有借过书的读者姓名

SQL语句:SELECT 姓名

from 读者

第 3 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

where 读者编号 not in

(select 读者编号 from 借阅)

结果为:

(3)查询至少借阅了3本图书的读者编号、姓名、图书编号和图书名称,并按读者编号排序

SQL语句:SELECT 读者.读者编号,姓名,图书.图书编号,图书名称

from 读者,图书,借阅

where 读者.读者编号=借阅.读者编号 and 借阅.图书编号=图书.图书编号 and 读者.读者编号 in

(select 读者.读者编号

from 读者,借阅

where 读者.读者编号=借阅.读者编号 and 是否归还<>true

group by 读者.读者编号

having count(借阅.读者编号)>=3)

order by 借阅.读者编号 desc

第 4 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

结果为:

(4)查询已借阅图书但尚未归还的读者编号、姓名和工作单位

SQL语句:

select 读者编号,姓名,工作单位

from 读者

where 读者编号 not in

(select 读者编号 from 借阅 where 是否归还=true)

结果为:

第 5 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

(5)查询没有借阅管理类图书的读者编号、姓名和出生日期

SQL语句:

结果为:

(6)将计算机类的图书单价减少5元

SQL语句:update 图书

第 6 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

set 单价= 单价+5

where 分类号="001"

(7)将1987年出生的读者所借图书改为“已归还”

SQL语句:忘记了怎么从身份证号中抽取数据作为出生日期。Substr函数总是出错,不知为何。

(8)插入一条借书记录:读者编号06-00008,图书编号003-000024,借书日期2007-3-25,还书日期

2007-5-25,未归还。

SQL语句:insert into 借阅(读者编号,图书编号,借阅日期,归还日期,是否归还)

values("06-00008","003-000024","2007/3/25","2007/5/25","false")

(9)删除2006年8月的借书记录。

delete

第 7 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

from 借阅

where 借阅日期 between #2006-08-01# and #2006-08-31#

(10)删除读者欧阳思思的借书记录。

SQL语句:delete

from 借阅

where 读者编号=(select 读者编号 from 读者 where 姓名="欧阳思思")

(11)输入图书入库时间上、下限,查询在上限和下限期间入库图书的图书编号、图书名称和入库时

间。

SQL语句:

select 图书编号,图书名称,入库时间

第 8 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

from 图书

where 入库时间 between [请输入入库时间下限] and [请输入入库时间上限]

时间在2001-01-01到2006-12-30之间的结果为

三、结论

1. 实验结果

列出本次实验中你认为重要的名称术语。

第 9 页/ 共10页

江西财经大学精品课程《数据库应用》实验报告

子查询是一个select语句,它嵌套在一个select语句(也可是insert或者delete或者update语句)的

where子句部分。

带关系运算符子查询语法结构为:

Where 表达式 关系运算符 [any|all] 子查询语句

SQL合并查询是将两个select语句的查询结果通过并运算union合并为一个查询结果。

参数查询是指在运行该查询时,系统会要求用户输入所需的参数值

数据操纵语句功能是插入删除或者修改数据表的记录值。

Insert into 命令的功能是向表中插入一条记录。

Update命令的功能是更新表中满足条件的记录 。

Delete from 命令的功能是从表中删除满足条件的记录。

2. 分析讨论

解释什么是记录、字段和主关键字。解释实验步骤(11)发生问题的原因。

二维表的每一行在关系中称为一个元组。在ACCESS中,一个元组对应表中的一条记录。

在ACCESS中,一个属性对应表中的一个字段,属性名对应字段名,属性值对应各个记录的字段值。

在候选关键字中选定一个作为关键字,称为giant关系的主关键字。关系中的主关键字是唯一的。

实验步骤(11)输入参数值如果下限大于所有记录中的最大字段值,或者上限小于所有记录中的最小

字段值,就会显示结果为空。

四、指导教师评语及成绩

成绩: 指导教师签名:

第 10 页/ 共10页


本文标签: 编号 图书 读者