SQL 基础(五)数据查询实战演练一

简介: SQL 基础(五)数据查询实战演练一


根据数据库 db_Book 中的 tb_BookInfo 表、tb_ReaderInfo 表、tb_BookType 表、tb_LentInfo 表,完成下列查询操作

表结构

任务题解

任务一

查询 tb_BookInfo(书籍信息表)中的所有书籍的书籍编号、书籍名称、是否借出字段的信息。

use db_book
select sjbh,sjmc,sfjc 
from tb_bookinfo

任务二

查询 tb_ReaderInfo(读者信息表)中所有读者的信息。

use db_book
select * 
from tb_ReaderInfo

任务三

使用别名定义的三种方法(括号内为别名)查询每个读者的 DZBH (编号)、DZXM(姓名)和 LXDH (联系电话)。

use db_book
select dzbh as 编号,dzxm 姓名,联系电话=lxdh -- 别名定义三种方法 as 别名 =
from tb_ReaderInfo

任务四

查询 tb_BookInfo(书籍信息表)中前 5 条记录的书籍编号、书籍名称。

use db_book
select top 5 sjbh,sjmc -- 前五条 top 5
from tb_bookinfo

任务五

查询 tb_BookInfo(书籍信息表)表中已借出的书籍信息。

use db_book
select * 
from tb_bookinfo 
where sfjc='1' -- 1 已借出 0 未借出

任务六

查询 tb_BookInfo(书籍信息表)中 2017 年 4 月份登记的图书名称和登记日期。

use db_book
select sjmc,djrq  -- 且 关系 ,使用 and 连接
from tb_BookInfo 
where YEAR(djrq)=2017 and MONTH(djrq)=4

任务七

查询 b_BookInfo(书籍信息表)中人民邮电出版社书籍的信息。

use db_book
select * 
from tb_BookInfo 
where cbs='人民邮电出版社'

任务八

查询 b_BookInfo(书籍信息表)中 2017 年 4 月 1 日前登记的书籍信息。

use db_book
select * 
from tb_BookInfo 
where djrq < '2017-4-1' -- 对应日期"前",即"小于 <"

任务九

查询名为《数据库原理与应用》的书籍的基本信息。

use db_book
select * 
from tb_BookInfo 
where sjmc='数据库原理与应用'

任务十

查询 tb_BookType(书籍类别表)中书籍类别为文学类的书籍信息。

use db_book
select * 
from tb_BookType 
where LBMC='文学'

任务十一

查询在 2017-3-1 到 2017 年 4-1 之间借出的书籍编号、读者编号。

use db_book
select sjbh,dzbh -- 查询书籍编号,读者编号 
from tb_LentInfo 
where JSRQ between '2017-3-1' and '2017-4-1'

任务十二

查询人民邮电大学出版社、上海交通大学出版社的书籍信息。

use db_book
select * 
from tb_bookinfo 
where cbs='人民邮电大学出版社' or cbs='上海交通大学出版社' 
-- 虽然是查询两个出版社信息,但是两者间的关系是 or (没有同时是两个出版社的cbs,会报错,不要用 and)

任务十三

查询不是清华大学出版社、大连理工大学出版社出版的书籍信息。

use db_book
select * 
from tb_bookinfo 
where cbs <> '清华大学出版社' or cbs <> '大连理工大学出版社' -- <> 表示(否定,不,反义)

任务十四

查询出版社是清华大学出版社并已借出的图书信息。

use db_book
select * 
from tb_BookInfo 
where cbs='清华大学出版社' and sfjc='1'

任务十五

查询 tb_ReaderInfo(读者信息表)表中姓“田”的读者。

use db_Book
select * 
from tb_ReaderInfo 
where DZXM like '田%' 
-- 模糊查询,只知道姓氏,不清楚名字有几个字,所以用符号 % (任意个字符) ,而不是 _ (仅一个字符)

任务十六

在 tb_ReaderInfo(读者信息表)中找到所有姓名中姓李并且带飞字的读者。

use db_book
select * 
from tb_ReaderInfo 
where DZXM like '李%飞%'
-- 模糊查询,姓李,带飞字. 飞 字前后字符个数未知,使用 % 

任务十七

查询 tb_BookInfo(书籍信息表), 按书籍名称升序显示书籍编号,书籍名称,是否借出字段。

use db_book
select SJBH,SJMC,SFJC 
from tb_bookinfo 
order by SJMC asc 

任务十八

查询书籍信息表,按书籍名称降序排序,书名相同按登记日期先后顺序排列。

use db_book
select * 
from tb_bookinfo 
order by SJMC desc,DJRQ asc
-- 书名相同按登记日期先后顺序排列(也就是添加第二个条件,先后顺序,也几 asc 升序排列)

任务十九

返回 tb_BookInfo(书籍信息表)中的出版社信息。

use db_book
select cbs 
from tb_BookInfo

任务二十

按读者姓名降序显示 tb_ReaderInfo(读者信息表)中的信息。

use db_book
select * 
from tb_ReaderInfo 
order by DZXM desc

任务二十一

查询 tb_BookInfo(书籍信息表),按书籍类别统计各类书籍的数量。

use db_book
select LBBH 类别编号,count(*) as 书籍总数 
from tb_BookInfo 
group by LBBH -- 按照类别编号分组

任务二十二

统计 tb_BookInfo(书籍信息表)中的书籍数量。

use db_book
select count(sjbh) as 书籍数量 
from tb_bookinfo 
-- 使用count(sjbh) [不包含 null] 如果使用 count(*) 会包含 NULL 数值,包含无效信息

任务二十三

按书籍名称统计各种书籍的数量,并按书籍名称升序排序。

use db_book
select sjmc,count(*) as 数量 
from tb_BookInfo 
group by sjmc 
order by sjmc asc

任务二十四

按出版社统计各个出版社的书籍数量,并显示数量超过 100 本的出版社名称。

use db_book
select cbs,count(*) as 书籍数量 
from tb_bookinfo 
group by cbs
having (count(*)>'100')

任务二十五

统计人民邮电出版社书籍的数量。

use db_book
select cbs 出版社,count(*) as 书籍总数 
from tb_bookinfo 
group by cbs 
having cbs='人民邮电出版社'

任务二十六

统计 2017 年 4 月份借出书籍的数量,并按数量降序排列。

use db_book
select sjbh 书籍编号,count(*) as 借出数量 
from tb_lentinfo
group by sjbh 
order by count(*) desc

重视基础练习,每日进步亿点点



相关文章
|
20天前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
1月前
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
1月前
|
SQL 数据处理 数据库
SQL语句优化与查询结果优化:提升数据库性能的实战技巧
在数据库管理和应用中,SQL语句的编写和查询结果的优化是提升数据库性能的关键环节
|
1月前
|
SQL 监控 关系型数据库
SQL语句性能分析:实战技巧与详细方法
在数据库管理中,分析SQL语句的性能是优化数据库查询、提升系统响应速度的重要步骤
|
1月前
|
SQL 关系型数据库 Serverless
sql注入原理与实战(四)数据表操作
sql注入原理与实战(四)数据表操作
|
1月前
|
SQL 存储 Java
sql注入原理与实战(二)数据库原理
sql注入原理与实战(二)数据库原理
|
1月前
|
SQL 前端开发 安全
sql注入原理与实战(一)
sql注入原理与实战(一)
|
2月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
104 0
|
3月前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
72 0
|
3月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
52 0