vf实验05答案

更新时间:2023-11-07 21:58:01 阅读量: 教育文库 文档下载

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

班级: 姓名: 学号:

实验四 简单查询、连接查询和嵌套查询

二. 实验要求及步骤 1. 表的基本操作

要求1: 使用SQL语句创建一个数据库,数据库命名为【学生信息管理】

create database 学生信息管理 要求2:使用SQL语句在数据库中创建一张表,命名为【学生】

字段名 学号 姓名 性别 年龄 学生表结构: 字段字段 小数 类型 长度 位数 C C C N 6 8 2 2 0 特殊 要求 主索引 不能为空 年龄大于10小于45岁 是否党员 入学年月

【学生】表创建命令:

L D 默认值为2009.9.1 create table 学生 (学号 c(6) primary key,; 姓名 c(8) not null,; 性别 c(2),; 年龄 n(2,0) check 年龄>10 and 年龄<45,; 是否党员 L,; 入学年龄 d default {^2009-9-1}) 要求3:使用SQL语句在【学生】表中插入一个新字段,字段名为【联系电话】,字符型,宽度为11,允许为空

1 / 8

班级: 姓名: 学号:

alter table 学生 add 联系电话 c(11) null

要求4:使用SQL语句修改【性别】字段,只允许输入“男”或“女”,如果输入有误,给出提示信息

alter table 学生 alter 性别 set check 性别=\男\性别=\女\ 要求5:使用SQL语句删除【是否党员】字段

error \性别只能为男或女\

alter table 学生 drop 是否党员

2 / 8

班级: 2. 表的查询

姓名: 学号:

图书(总编号,分类号,书名,作者,出版单位,单价)

读者 (借书证号,单位,姓名,性别,职称,地址)

借阅 (借书证号,总编号,借书日期)

要求1:找出姓李的读者姓名和所在单位。

数据库中表结构如下: select 姓名,单位 from 读者 where 姓名 like \李%\ 要求2:列出图书库中所有藏书的书名及出版单位。

select distinct 书名,出版社 from 图书 要求3:查找高等教育出版社的 所有图书及单价,结果按单价降序排序。

select distinct 书名,单价 from 图书 where 出版社=\高等教育出版社\; order by 单价 desc 要求4: 查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。

select distinct * from 图书; where 单价 between 10 and 20; order by 出版社,单价 要求5: 查找书名以计算机打头的所有图书和作者。

select distinct 书名,作者 from 图书 where 书名 like \计算机%\ 要求6: 检索同时借阅了总编号为112266和449901两本书的借书证号。

select 借书证号 from 借阅 ; where 总编号=\借书证号 in( select 借书证号 from 借阅; where 总编号=\

要求7: 查找所有借了书的读者的姓名及所在单位。

select distinct 读者.姓名,读者.单位 from 读者,借阅; where 读者.借书证号=借阅.借书证号 要求8: 找出李某所借图书的所有图书的书名及借书日期。

3 / 8

班级: 姓名: 学号:

select 图书.书名,借阅.借书日期; from 图书,借阅,读者; where 图书.总编号=借阅.总编号 and 借阅.借书证号=读者.借书证号 and; 读者.姓名 like \李%\ 要求9: 查询2006年10月以后借书的读者借书证号、姓名和单位。

select 借阅.借书证号,读者.姓名,读者.单位; from 借阅,读者; where 借阅.借书证号=读者.借书证号 and; 借阅.借书日期>={^2006-10-1} 要求10: 找出借阅了FoxPro大全一书的借书证号。

select 借阅.借书证号; from 借阅,图书; where 借阅.总编号 = 图书.总编号 and; 图书.书名=\大全\ 要求11: 找出与赵正义在同一天借书的读者姓名、所在单位及借书日期 。

select 读者.姓名,读者.单位,借阅.借书日期; from 读者,借阅; where 读者.借书证号=借阅.借书证号 and ; 借阅.借书日期= any(select 借阅.借书日期; from 借阅,读者; where 借阅.借书证号= 读者.借书证号 and; 读者.姓名=\赵正义\

要求12: 查询2006年7月以后没有借书的读者借书证号、姓名及单位。

select 借书证号,姓名,单位; 4 / 8

班级: 姓名: 学号:

from 读者; where 借书证号 not in (select 借书证号; from 借阅; where 借书日期>{^2006-7-1})

要求13: 求科学出版社图书的最高单价、最低单价、平均单价。

select max(单价) as 最高单价,min(单价) as 最低单价,avg(单价) as 平均单价; from 图书; where 出版社=\科学出版社\ 5 / 8

班级: 姓名: 学号:

要求14:求信息系当前借阅图书的读者人次数。 select count(借书证号) as 信息系借书人数; from 读者; where 借书证号 in (select 借阅.借书证号; from 读者,借阅; where 读者.借书证号=借阅.借书证号 and; 读者.单位=\信息系\要求15:求出各个出版社图书的最高价格、最低价格和册数。

select 出版社,count(*) as 册数,max(单价) as 最高单价,min(单价) as 最低单价; from 图书 group by 出版社 要求16:分别找出各单位当前借阅图书的读者人数。 select 单位,count(*) as 借书人数 ; from 读者; where 借书证号 in(select 借书证号 from 借阅); group by 单位 要求17:找出当前至少借阅了2本图书的读者及所在单位。 select 姓名,单位; from 读者; where 借书证号 in(select 借书证号; from 借阅; group by 借书证号; having count(*)>=2) 要求18:分别找出借书人次超过1人次的单位及人次数。 select 单位,count(*) as 人次数 ; 6 / 8

班级: 姓名: 学号:

from 读者; where 借书证号=any(selec 借书证号 ; from 借阅; group by 借书证号; having count(*)>=1); group by 单位 7 / 8

班级: 姓名: 学号:

要求19:找出藏书中各个出版单位的册数、价值总额。 select 出版社,count(*) as 册数,sum(单价) as 价值总额; from 图书; group by 出版社 要求20:查询经济系是否还清所有图书。如果还清,显示该系所有读者的姓名、所在单位和职称。 select 姓名,单位,职称; from 读者; where 借书证号 not in(select 借书证号 from 借阅);

and 单位=\经济系\ 8 / 8

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

Top