PTA-SQL刷题系列之基础篇——查询补充练习(一)
作者:mmseoamin日期:2023-12-21

目录

10-1 查询图

10--2 查询2018年以后出版的图书的全部信息

10-3 查询图书表中售价介于50元到70元之间的图书的全部信息

10-4 查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息

10-5 查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息 之一

10-6 查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息 之二

10-7 查询图书表中不是科学出版社出版的图书的全部信息

10-8 查询图书的条形码,书名,出版社和出版日期,要求结果按出版社升序排列,出版社相同的数据按出版日期降序排列

10-9 查询图书表中有哪些出版社,要求结果没有重复值

10-10 通过图书表和借阅表,查询图书的借阅情况,要求结果中包括以下几列:账号,条形码,书名和借书日期

10-11 将图书表中条形码为TP303.5的图书书名修改为“大学计算机”

10-12 将图书表中条形码为TP204.2的图书信息删除

10-13 通过三个表,查询读者借阅图书的信息

10-14 通过两个表,查询编号为“D002”的读者借阅图书的信息

10-15 查询读者表中男女读者各自的人数

10-16 在读者表中查询余额最高的读者的全部信息

10-17 在读者表中查询不同等级各自的人数,结果按人数降序排列

10-18 在读者表中查询账号和姓名

10-19 在读者表查询账号D002和D003两位读者的全部信息

10-20 在读者表中查询余额在500元以下(不包括500元)的女性读者的全部信息

10-21 查询姓王的读者的账号、姓名和性别,要求使用left函数

10-22 查询读者表中余额介于500到1000(包括500,不包括1000)之间的读者的全部信息

10-23 查询读者表中有哪些等级,结果中不能出现重复值

10-24 在读者表中查询没有录入出生日期的读者的全部数据

10-25 通过读者和借阅表,查询读者信息,包括以下字段:账号,姓名,性别,条形码,借书日期和还书日期

10-26 根据读者表和借阅表,查询没有借书记录的读者的账号和姓名


PTA-SQL刷题系列之基础篇——查询补充练习(一),第1张

10-1 查询图

本题目要求编写SQL语句,检索出图书表中所有记录。

提示:请使用SELECT语句作答。

表样例

```图书``表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-738.5
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6

输出样例:

请在这里给出输出样例。例如:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-738.5
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
select *
from 图书

10--2 查询2018年以后出版的图书的全部信息

分数 3

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,检索出图书表中所有2018年以后出版的图书的全部信息。

注意:包括2018年的。

要求:请使用year函数计算年份。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-738.5
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP305.3C语言程序设计郝建伟机械工业出版社2019-11-849

输出样例:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-738.5
TP305.3Python3程序设计郝建伟机械工业出版社2019-6-1649
select * 
from 图书 
where year(出版日期)>=2018

10-3 查询图书表中售价介于50元到70元之间的图书的全部信息

分数 3

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,检索出图书表中所有售价介于50元到70元之间的记录。(包括50元和70元)

提示:请使用SELECT语句作答。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-738.5
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP305.3C语言程序设计郝建伟机械工业出版社2019-11-850
TP305.4VB程序设计谭森机械工业出版社2015-9-1856
TP215.4动漫设计张朝阳高教出版社2017-9-570

输出样例:

条形码书名作者出版社出版日期售价
TP305.3C语言程序设计郝建伟机械工业出版社2019-11-850
TP305.4VB程序设计谭森机械工业出版社2015-9-1856
TP215.4动漫设计张朝阳高教出版社2017-9-570
select *
from 图书
where 售价>=50 and 售价<=70;

 

10-4 查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息

分数 3

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息

要求:不能用like运算符构成条件表达式。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-738.5
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP204.5钩针编织基础寿玉梅化学工业出版社2015-9-1856

输出样例:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-738.5
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
select *
from 图书
where 条形码 like 'TP3%'; -- 不能使用like

10-5 查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息 之一

分数 4

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息

要求:使用 or 构成条件表达式

提示:请使用SELECT语句作答。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-750
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP204.2钩针编织基础寿玉梅科学出版社2015-9-1856
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6

输出样例:

条形码书名作者出版社出版日期售价
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6
select *
from 图书
where 书名 like 'C语言程序设计' or
书名 like 'VB程序设计'

10-6 查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息 之二

分数 4

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息

要求:使用 in 运算符构成条件表达式

提示:请使用SELECT语句作答。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-750
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP204.2钩针编织基础寿玉梅科学出版社2015-9-1856
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6

输出样例:

条形码书名作者出版社出版日期售价
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6
select *
from 图书
where 书名 in ('C语言程序设计','VB程序设计');

10-7 查询图书表中不是科学出版社出版的图书的全部信息

分数 4

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,查询图书表中不是科学出版社出版的图书的全部信息

提示:请使用SELECT语句作答。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-750
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP204.2钩针编织基础寿玉梅科学出版社2015-9-1856
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6

输出样例:

条形码书名作者出版社出版日期售价
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6
select *
from 图书
where 出版社 not in ('科学出版社');

10-8 查询图书的条形码,书名,出版社和出版日期,要求结果按出版社升序排列,出版社相同的数据按出版日期降序排列

分数 4

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,查询图书的条形码,书名,出版社和出版日期,要求结果按出版社升序排列,出版社相同的数据按出版日期降序排列

提示:请使用SELECT语句作答。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-750
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP204.2钩针编织基础寿玉梅科学出版社2015-9-1856
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6

输出样例:

条形码书名出版社出版日期
TP304.1数据库技术及应用高教出版社2017-6-16
TP305.5C语言程序设计高教出版社2014-1-12
TP213.5七彩课堂河北教育出版社2019-11-8
TP303.5大学计算机基础科学出版社2018-10-7
TP204.2钩针编织基础科学出版社2015-9-18
TP305.6VB程序设计人民邮电出版社2014-7-11
select 条形码,书名,出版社,出版日期
from 图书
order by 出版社 asc,出版日期 desc;

10-9 查询图书表中有哪些出版社,要求结果没有重复值

分数 4

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,查询图书表中有哪些出版社,要求结果没有重复值

提示:请使用distinct。

表结构:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-750
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP204.2钩针编织基础寿玉梅科学出版社2015-9-1856
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6

输出样例:

出版社
高教出版社
科学出版社
河北教育出版社
人民邮电出版社
select distinct 出版社
from 图书

10-10 通过图书表和借阅表,查询图书的借阅情况,要求结果中包括以下几列:账号,条形码,书名和借书日期

分数 4

作者 刘冬霞

单位 山东理工大学

本题目要求编写SQL语句,通过图书表和借阅表,查询图书的借阅情况,要求结果中包括以下几列:账号,条形码,书名和借书日期

提示:请使用SELECT多表查询的方法。

表结构:

请在这里写定义表结构的SQL语句。例如:

图书(条形码 文本型,书名 文本型,作者 文本型,出版社 文本型,出版日期 日期型,售价 数字型)

借阅(账号 文本型,条形码 文本型,借书日期 日期型,还书日期 日期型)

表样例

图书表:

条形码书名作者出版社出版日期售价
TP303.5大学计算机基础李凯科学出版社2018-10-750
TP304.1数据库技术及应用郭栋阳高教出版社2017-6-1642.6
TP213.5七彩课堂朱五书河北教育出版社2019-11-831.8
TP204.2钩针编织基础寿玉梅科学出版社2015-9-1856
TP305.5C语言程序设计谭森高教出版社2014-1-1248.5
TP305.6VB程序设计钟鸣人民邮电出版社2014-7-1144.6

借阅表:

账号条形码借书日期还书日期
D001TP303.52018-11-22018-12-7
D001TP304.12017-7-182017-8-16
D005TP303.52019-10-32019-12-8
D002TP204.22015-10-62015-12-18
D002TP305.52014-12-42015-1-12
D003TP305.62014-9-12014-12-11
D003TP304.12020-1-22020-3-11

输出样例:

账号条形码书名借书日期
D001TP303.5大学计算机基础2018-11-2
D001TP304.1数据库技术及应用2017-7-18
D005TP303.5大学计算机基础2019-10-3
D002TP204.2钩针编织基础2015-10-6
D002TP305.5C语言程序设计2014-12-4
D003TP305.6VB程序设计2014-9-1
D003TP304.1数据库技术及应用2020-1-2
select 借阅.账号,借阅.条形码,图书.书名,借阅.借书日期 
from 图书 join 借阅 on 图书.条形码 = 借阅.条形码

10-11 将图书表中条形码为TP303.5的图书书名修改为“大学计算机”

update 图书
set 书名 ='大学计算机'
where 条形码 = 'TP303.5'
-- 注意修改语句的操作

10-12 将图书表中条形码为TP204.2的图书信息删除

delete
from 图书
where 条形码='TP204.2';
-- 注意删除语句的操作

10-13 通过三个表,查询读者借阅图书的信息

select 读者.账号,读者.姓名,借阅.条形码,图书.书名,借阅.借书日期,借阅.还书日期
from 借阅 
join 读者 on 读者.账号=借阅.账号
join 图书 on 图书.条形码=借阅.条形码;
-- 注意三个表连接的操作

10-14 通过两个表,查询编号为“D002”的读者借阅图书的信息

select 借阅.账号,读者.姓名,读者.等级,借阅.条形码,借阅.借书日期
from 借阅 join 读者 on 借阅.账号=读者.账号
where 读者.账号='D002'

10-15 查询读者表中男女读者各自的人数

select 性别,count(*)as 人数
from 读者
group by 性别

10-16 在读者表中查询余额最高的读者的全部信息

select *
from 读者
where 余额>=all
(select max(余额)
 from 读者
)
-- 掌握嵌套查询

10-17 在读者表中查询不同等级各自的人数,结果按人数降序排列

select 等级,count(*)as 人数  -- 我的错误:忘写等级了
from 读者
group by 等级
order by 人数 desc

10-18 在读者表中查询账号和姓名

select 账号,姓名
from 读者

10-19 在读者表查询账号D002和D003两位读者的全部信息

select *
from 读者
where 账号 in('D002','D003')
order by 账号 asc ;

10-20 在读者表中查询余额在500元以下(不包括500元)的女性读者的全部信息

select *
from 读者
where 余额<500 and 性别='女'

10-21 查询姓王的读者的账号、姓名和性别,要求使用left函数

select 账号,姓名,性别
from 读者
where  left(姓名,1)='王';
-- where 姓名 like '王%';

10-22 查询读者表中余额介于500到1000(包括500,不包括1000)之间的读者的全部信息

select *
from 读者
where 余额>=500 and 余额<1000

10-23 查询读者表中有哪些等级,结果中不能出现重复值

select distinct 等级
from 读者

10-24 在读者表中查询没有录入出生日期的读者的全部数据

select *
from 读者
where 出生日期 is null
-- where 出生日期 is not NULL
-- where 出生日期 !=''
-- 错误 查询的是没有录入,注意读题

10-25 通过读者和借阅表,查询读者信息,包括以下字段:账号,姓名,性别,条形码,借书日期和还书日期

select 读者.账号,读者.姓名,读者.性别,借阅.条形码,借阅.借书日期,借阅.还书日期
from 读者 join 借阅 on 读者.账号 = 借阅.账号

10-26 根据读者表和借阅表,查询没有借书记录的读者的账号和姓名

select 账号,姓名 
from 读者 
where 账号 not in
(select 账号 
 from 借阅 
 where 借阅.账号=读者.账号)

总结

1、基础:sql的语句不区分大小写,但是标点符号切记要英文的,不能写中午的标点符号!!!pta上提交sql语句的末尾写不写英文分号都可以通过,注意写sql语句的注释是 “-- ” ,后面有个空格哦~~

2、基础查询语句,select(后接查询值)、from(后接查询表)、where(后接条件);

3、查询结果去重用 distinct ;

4、查询结果限制返回行数用 limit (来限制查询结果的返回行数);

5、查询后的列重新命名用 as,某一列某一值重命名用 update ;

6、查询后排序用 order by ,order by 列名 按照’列名‘进行排序,asc/desc 升序/降序,根据要求使用(不写默认是asc 升序);

7、查询排除用 != 或者 not in;

8、查找最高值用 max ;

PTA-SQL刷题系列之基础篇——查询补充练习(一),第2张

祝学业进步,万事如意!!!

我们下个文章见~~~