【跟晓月学数据库】基于book库的mysql进阶实战

2023-06-27 07:06:14

前言

上篇文章中,我们已经导入了book库,如果你还没有导入book库,参考:【跟晓月学数据库】使用MySQLdump 对数据导入导出

这篇文章,主要是基于book库的操作,希望对你有用。

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区专家博主😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

在这里插入图片描述

查看已经导入的book库的信息

[root@mufeng41 ~]# mysql -p'Root!2#admin'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| book               |
| mysql              |
| performance_schema |
| sys                |
| test01             |
| test_db            |
+--------------------+
7 rows in set (0.00 sec)

mysql> 

mysql> use book
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from category;
+---------+---------------+
| bTypeId | bTypeName     |
+---------+---------------+
|       1 | windows应用   |
|       2 | 网站          |
|       3 | 3D动画        |
|       4 | linux学习     |
|       5 | Delphi学习    |
|       6 | 黑客          |
|       7 | 网络技术      |
|       8 | 安全          |
|       9 | 平面          |
|      10 | AutoCAD技术   |
+---------+---------------+
10 rows in set (0.00 sec)

查看表结构

mysql> desc books;
+------------+------------------------------------------------+------+-----+---------+----------------+
| Field      | Type                                           | Null | Key | Default | Extra          |
+------------+------------------------------------------------+------+-----+---------+----------------+
| bId        | int(4)                                         | NO   | PRI | NULL    | auto_increment |
| bName      | varchar(255)                                   | YES  |     | NULL    |                |
| bTypeId    | enum('1','2','3','4','5','6','7','8','9','10') | YES  |     | NULL    |                |
| publishing | varchar(255)                                   | YES  |     | NULL    |                |
| price      | int(4)                                         | YES  |     | NULL    |                |
| pubDate    | date                                           | YES  |     | NULL    |                |
| author     | varchar(30)                                    | YES  |     | NULL    |                |
| ISBN       | varchar(255)                                   | YES  |     | NULL    |                |
+------------+------------------------------------------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)


mysql> desc category;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| bTypeId   | int(4)      | NO   | PRI | NULL    | auto_increment |
| bTypeName | varchar(40) | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> 

案例实战

  1. 查询价格大于50的图书名称和作者。
mysql> SELECT bName, author
    -> FROM books
    -> WHERE price > 50;
  1. 查询出版社为"电脑爱好者杂志社"的图书信息,包括图书名称、作者和出版日期。
SELECT bName, author, pubDate
FROM books
WHERE publishing = '电脑爱好者杂志社';
  1. 查询类别为"网站"的图书数量。
SELECT COUNT(*) AS book_count
FROM books
WHERE bTypeId IN (SELECT bTypeId FROM category WHERE bTypeName = '网站');
  1. 查询每个类别的平均价格,并按照平均价格降序排列。
SELECT c.bTypeName, AVG(b.price) AS avg_price
FROM category c
JOIN books b ON c.bTypeId = b.bTypeId
GROUP BY c.bTypeName
ORDER BY avg_price DESC;
  1. 查询发布日期在2022年1月1日到2022年12月31日之间的图书信息,包括图书名称和发布日期。
SELECT b.bName, b.pubDate, c.bTypeName
FROM books b
JOIN category c ON b.bTypeId = c.bTypeId
WHERE b.pubDate BETWEEN '2021-01-01' AND '2021-12-31' AND c.bTypeName = '网站';
  1. 查询价格在指定范围内(40-50),并且出版社为"航空工业出版社"的图书信息,包括图书名称、价格和出版社。
mysql> SELECT bName, price, publishing
    -> FROM books
    -> WHERE price BETWEEN 40 AND 50 AND publishing = '航空工业出版社';
+-----------------------+-------+-----------------------+
| bName                 | price | publishing            |
+-----------------------+-------+-----------------------+
| 黑客与网络安全        |    41 | 航空工业出版社        |
+-----------------------+-------+-----------------------+
1 row in set (0.00 sec)

  1. 插入信息:
    要向 “books” 表中增加一行数据,符合以下要求:

bTypeId:4
bTypeName:linux技术
bName=linux大全
publishing:互联网老辛出品
author:沐风晓月
pubDate:2023-03-27
price:88
ISBN:200001

INSERT INTO books (bTypeId, bName, publishing, price, pubDate, author, ISBN)
VALUES (4, 'linux大全', '互联网老辛出品', 88, '2023-03-27', '沐风晓月', '200001');
  1. 查询某个特定作者的图书信息:
mysql> SELECT bName, price, pubDate
    -> FROM books
    -> WHERE author = '沐风晓月';
+--------------+-------+------------+
| bName        | price | pubDate    |
+--------------+-------+------------+
| 填写书名     |    88 | 2023-03-27 |
| linux大全    |    88 | 2023-03-27 |
+--------------+-------+------------+
2 rows in set (0.01 sec)

  1. 查询所有图书的信息及其对应的出版社,包括图书名称、作者和出版社名称。如果某个图书没有对应的出版社,则显示为null。
SELECT b.bName, b.author, p.publishing
FROM books b
RIGHT JOIN publishing p ON b.publishingId = p.publishingId;

总结

关于MySQL的进阶实战,你学会了吗,欢迎评论区留言一起探讨。

更多推荐

第二证券:个人开证券账户要开户费吗?

随着互联网和移动端东西的遍及,越来越多的人开端涉足股票投资,开立证券账户也成为一个热门话题。但是,许多初学者或许会有疑问,个人开证券账户是否需求支付开户费呢?这个问题的答案并不是那么简略,需求考虑多方面的要素。首先,需求明确的是,证券账户开立都是需求遵循中国证监会的相关规矩的。按照现在的规矩,证券公司不得向客户收取开户

qt功能自己创作

按钮按下三秒禁用voidMainWindow::on_pushButton_5_clicked(){//锁定界面setWidgetsEnabled(ui->centralwidget,false);//创建一个定时器,等待3秒后解锁界面QTimer::singleShot(3000,this,[=](){setWidg

【计算机网络】——数据链路层(应用:介质访问控制)

//仅做个人复习和技术交流,图片取自王道考研,侵删一、大纲1、介质访问控制信道划分介质访问控制随机访问介质访问控制2、局域网3、广域网4、数据链路层设备二、介质访问控制省流:把广播信道通过介质访问控制机制逻辑上转换为点对点的信道。介质访问控制:采取一定措施,使得两个节点之间的通信不会发生相互干扰的情况。用来决定广播信道

6. 装饰器

UML聚合(Aggregation)关系:大雁和雁群,上图中空心菱形+箭头表示聚合关系组合(Composition)关系:大雁和翅膀,实心菱形+箭头表示组合(Composition)关系测试代码#include<iostream>#include<stdio.h>#include<mutex>//锁头文件usingna

c++运算符重载

目录运算符重载的基本概念重载加号运算符(+)类内实现类外实现运算符重载碰上友元函数可重载和不可重载的运算符可重载的运算符不可重载的运算符重载自加自减运算符(a++++a)智能指针重载等号运算符(=)重载等于和不等运算符(==!=)运算符重载的基本概念概念:运算符重载与函数重载比较类似,相当于让一个运算符具有另外一种含义

PHP 做 Mysql 数据统计,通过时间戳 统计 每分钟多少条 每十分钟多少条?

如果mysql表中数据结构时间字段是按时间戳存的,PHP如何按每分钟有多少条来统计数据<?php//连接MySQL数据库$servername="localhost";$username="your_username";$password="your_password";$dbname="your_database";

利用NHANES数据库还能构建预测模型? 中国学者写了篇文章,AUC=0.842

Nhanes美国营养调查数据库的培训课程(直播回放)来了!“Nhanes数据挖掘”课程(直播回放)!欢迎报名,发表文章即退款2021年2月,广东省医学科学院、广东省人民医院、广东省心血管研究所心内科,广东省冠心病防治重点实验室的学者在《AnnalsofPalliativeMedicine》(四区)发表题为:Deriva

基于Python+Tkinter实现一个贪食蛇小游戏

你是否还记得那个时代,当我们的手机还没有触摸屏,游戏也只有像“贪食蛇”这样的经典款?当时,许多人都沉迷于控制一条小蛇吃食物的乐趣中。而今,让我们利用Python和Tkinter,一起重温那个时代,制作自己的贪食蛇小游戏!1.初始设定在开始之前,我们需要对游戏进行基本的设定。例如,我们的游戏界面是一个宽600像素、高40

【RocketMQ专题】快速实战及集群架构原理详解

目录课程内容一、MQ简介基本介绍*作用(解决什么问题)二、RocketMQ产品特点2.1RocketMQ介绍2.2RocketMQ特点2.3RocketMQ的运行架构2.4消息模型三、RocketMQ快速实战3.1快速搭建RocketMQ服务3.2快速实现消息收发3.3搭建Maven客户端项目3.4搭建RocketMQ

计算机专业毕业设计项目推荐07-科研成果管理系统(JavaSpringBoot+Vue+Mysql)

科研成果管理系统(JavaSpringBoot+Vue+Mysql)**介绍****系统总体开发情况-功能模块****各部分模块实现****最后想说的****联系方式**介绍本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以

浅谈终端安全接入

前言:随着网络的发展,现代企业大多都会部署企业的有线网络与无线网络,在传统的企业网内,随着越来越多的终端设备接入到公司网络,管理人员控制和审计外部用户接入的企业办公网的难度和工作量也越来越大。而如果允许外部用户随意使用企业网络,则可能在管理人员和系统维护人员毫不知情的情况下,某些恶意用户侵入企业办公网络,从而造成数据泄

热文推荐