Mysql综合案例练习<1>

MySql综合案例练习<1>

  • 题目一
  • 题目二
  • 题目三
  • 题目四
  • 题目五
  • 题目六
  • 题目七
  • 题目八
  • 题目九
  • 题目十
  • 题目十一
  • 题目十二
  • 题目十三
  • 题目十四
  • 题目十五
  • 题目十六
  • 题目十七
  • 题目十八
  • 题目十九

题目一

创建数据库test01_library
创建表 books,表结构如下:
在这里插入图片描述

CREATE DATABASE  test01_libraryCREATE TABLE books(
id INT,
name VARCHAR(50),
`authors` VARCHAR(100) ,
price FLOAT,
pubdate YEAR ,
note VARCHAR(100),
num INT
);

题目二

向books表中插入记录
(1)不指定字段名称,插入第一条记录
(2)指定所有字段名称,插入第二记录
(3)同时插入多条记录(剩下的所有记录)

这里使用INSERT INTO VALUES语句来进行信息的添加

#(1)
INSERT INTO books
VALUES(1,'Tal of AAA','Dickes',23,1995,'novel',11);#(2)
INSERT INTO books (id,name,`authors`,price,pubdate,note,num)
VALUES(2,'EmmaT','Jane lura',35,1993,'Joke',22);#(3)
INSERT INTO books (id,name,`authors`,price,pubdate,note,num) VALUES
(3,'Story of Jane','Jane Tim',40,2001,'novel',0),
(4,'Lovey Day','George Byron',20,2005,'novel',30),
(5,'Old land','Honore Blade',30,2010,'Law',0),
(6,'The Battle','Upton Sara',30,1999,'medicine',40),
(7,'Rose Hood','Richard haggard',28,2008,'cartoon',28);

题目三

将小说类型(novel)的书的价格都增加5
这里很明显要更新表中列的信息,我们采用UPDATE SET 语句

UPDATE  books
SET price = price + 5
WHERE note = "novel"

题目四

将名称为EmmaT的书的价格改为40,并将说明改为drama。

UPDATE books 
SET price=40,note='drama' 
WHERE name='EmmaT';

题目五

删除库存为0的记录。

删除,我们采用 DELETE FROM语句

DELETE FROM books  WHERE num = 0;

题目六

统计书名中包含a字母的书

这题要查找包含字母a 的书, 我们使用LIKE语句进行查找
包含 a, 可用正则表达式 “%a%” 来进行

SELECT * FROM books  WHERE  name LIKE "%a%"

题目七

统计书名中包含a字母的书的数量和库存总量

统计数量可用聚合函数**,COUNT函数**
统计总量,可用SUM函数

SELECT COUNT(*),SUM(num) FROM books WHERE name LIKE '%a%';

题目八

找出“novel”类型的书,按照价格降序排列

排序可用ORDER BY语句
降序采用 DESC
升序采用 ASC

SELECT * 
FROM books  WHERE note = "novel"
ORDER BY price DESC

题目九

按照note分类统计书的数量
实现分类的话,
我们采用 GROUP BY 语句

SELECT note
FROM books GROUP BY  note

题目十

查询所有图书,每页显示5本,显示第二页

每页显示多少本,显示第几页
我们通常采用LIMIT语句去实现

SELECT * FROM books LIMIT 5,5;

题目十一

按照note分类统计书的库存量,显示库存量最多的

SELECT note,SUM(num) sum_num 
FROM books 
GROUP BY note 
ORDER BY sum_num DESC 
LIMIT 0,1;

题目十二

查询书名达到10个字符的书,不包括里面的空格
注意这里,要查询10个字符的,但是又不算里面的空格
我们可以把空格删了在查询,可以采用replace函数

REPLACE 有三个参数
第一个参数是字符串,
第二个参数是字符串中要被替换的部分,
第三个参数是替换字符串的

计算字符串长度,可以采用CHAR_LENGTH函数

SELECT * 
FROM books 
WHERE CHAR_LENGTH(REPLACE(name,' ',''))>=10;

在这里插入图片描述

题目十三

查询书名和类型, 其中note值为 novel显示小说,law显示法律,medicine显示医药,cartoon显示卡通,joke显示笑话

注意: 在原来的表中是没有书名和类型这两个名字的,所以我们要使用AS语句,取别名
当note值为novel 的时候,显示小说,是存在C语言中类似if语句的关系
我们可以用 CASE A WHEN B THEN C语句来表示 —>(if A == B {C})
注意:以END结束

SELECT name AS "书名" ,note, CASE note
WHEN 'novel' THEN '小说'
WHEN 'law' THEN '法律'
WHEN 'medicine' THEN '医药'
WHEN 'cartoon' THEN '卡通'
WHEN 'joke' THEN '笑话'
END AS "类型"
FROM books;

在这里插入图片描述

别名一般都是作为第一行,后面END AS “类型” 这个别名,是前面THEN语句取的
当有多条语句,CASE条件相同的话,只写一个CASE就行

题目十四

查询书名、库存,其中num值超过30本的,显示滞销,大于0并低于10的,显示畅销,为0的显示需要无货

SELECT name, num, CASE 
WHEN num > 30 THEN '滞销'
WHEN num  > 0 AND num < 10 	
THEN '畅销' WHEN num = 0 THEN '无货'
END AS "库存状态"
FROM books

在这里插入图片描述

题目十五

统计每一种note的数量,并合计总量

当统计每一种note的数量的时候,我们可以使用SUM聚合函数,
不过需要注意的时候,当聚合函数和非聚合函数同时出现的时候,
我们应该使用GROUP BY
当要合计总量的时候
我们需要在GROUP BY 后面使用 WITH ROLLUP

SELECT note AS "库存量", SUM(num) 
FROM books
GROUP BY note
WITH ROLLUP

在这里插入图片描述

当然这里加了个判断是否为NULL ,修饰了一下

SELECT IFNULL(note, "合计库存量") AS note , SUM(num) 
FROM books
GROUP BY note
WITH ROLLUP

在这里插入图片描述

题目十六

统计每一种note的数量,并合计总量

统计数量,这里采用COUNT聚合函数,
合计总量自然是使用WITH ROLLUP

SELECT IFNULL(note, "合计总数") AS "数量", COUNT(*)
FROM books
GROUP BY note
WITH ROLLUP

在这里插入图片描述

题目十七

统计库存量前三名的图书
显示前三名,按照降序排列 (ORDER BY )
然后采用分页操作 (LIMIT)

SELECT * 
FROM books
ORDER BY num DESC
LIMIT 0, 3

在这里插入图片描述

题目十八

找出最早出版(pubdate) 的一本书

SELECT * FROM books ORDER BY pubdate ASC LIMIT 0,1;

题目十九

找出书名中字数最多的一本书,不含空格
这里同样,注意:替换空格的方法(REPLACE 函数 (3个参数))

SELECT *
FROM books
ORDER BY CHAR_LENGTH(REPLACE(name, " ", "")) DESC 
LIMIT 0, 1;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【js】连续相同请求时,如何中断还未返回的请求

需求 前端页面&#xff0c;用户连续翻页&#xff0c;或是连续筛选这样的连续请求&#xff0c;如果保证发起一次请求时&#xff0c;去中断掉上一次还未返回的请求&#xff1f; 代码 使用axios实现 import axios from axios; import requistDuplicateBlacklist from ./requis…

量子纠缠通讯:未来通讯技术的革命性突破

量子纠缠通讯:未来通讯技术的革命性突破 引言 随着科学技术的不断发展,量子纠缠通讯已成为当今最热门的研究领域之一。作为一种革新性的通讯技术,量子纠缠通讯有望为我们的信息安全和传输速度带来前所未有的提升。那么,究竟什么是量子纠缠通讯,它的原理又是如何的呢?本…

【Hadoop-Distcp】通过Distcp的方式进行两个HDFS集群间的数据迁移

【Hadoop-Distcp】通过Distcp的方式进行两个HDFS集群间的数据迁移 1&#xff09;Distcp 工具简介及参数说明2&#xff09;Shell 脚本 1&#xff09;Distcp 工具简介及参数说明 【Hadoop-Distcp】工具简介及参数说明 2&#xff09;Shell 脚本 应用场景&#xff1a; 两个实时集…

HWL-2511-SS 路由器命令执行漏洞复现 [附POC]

文章目录 HWL-2511-SS 路由器命令执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现0x06 修复建议HWL-2511-SS 路由器命令执行漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,…

股市复苏中的明懿金汇:抓住新机遇

2023年对于明懿金汇来说是充满挑战与机遇的一年。面对复杂多变的市场环境&#xff0c;明懿金汇展现了其对市场趋势的敏锐洞察和卓越的策略适应能力。以下是该公司在2023年的主要投资策略和市场适应方式的详细分析。 随着2023年中国股市迎来反弹&#xff0c;明懿金汇迅速调整了…

Linux Docker 安装Nginx

1.21、查看可用的Nginx版本 访问Nginx镜像库地址&#xff1a;https://hub.docker.com/_/nginx 2、拉取指定版本的Nginx镜像 docker pull nginx:latest #安装最新版 docker pull nginx:1.25.3 #安装指定版本的Nginx 3、查看本地镜像 docker images 4、根据镜像创建并运行…

Shopify 开源 WebAssembly 工具链 Ruvy

最近,Spotify 开源了Ruvy,一个 WebAssembly 工具链,能够将 Ruby 代码转换为 Wasm 模块。Ruvy 基于ruby.wasm, 用 Rust 实现,提升了性能并简化了 Wasm 模块的执行。 Ruvy 利用了ruby.wasm提供的 Ruby 解释器模块,并使用wasi-vfs (WASI 虚拟文件系统)将其与所有指定的 Rub…

汽水瓶

某商店规定&#xff1a;三个空汽水瓶可以换一瓶汽水&#xff0c;允许向老板借空汽水瓶&#xff08;但是必须要归还&#xff09;。小张手上有n个空汽水瓶&#xff0c;她想知道自己最多可以喝到多少瓶汽水。 数据范围&#xff1a;输入的正整数满足 1≤n≤100 注意&#xff1a;本…

java.lang.UnsupportedOperationException解决方法

问题描述 在实际开发中经常会有类似的这种代码&#xff0c;想要按类的某一个属性对列表中的元素分组。 例如&#xff1a; 有一些学生&#xff0c;然后根绝他们的年龄对他们进行分组。可以写出如下代码。 public class UnsupportedOperationExceptionDemo {DataNoArgsConstru…

ARM Cortex-M安全之MPU介绍

ARM Cortex-M处理器系列中的存储保护单元&#xff08;Memory Protection Unit&#xff0c;简称MPU&#xff09;是一种硬件机制&#xff0c;可用于在嵌入式系统中实现存储保护和访问权限控制。MPU允许开发人员对不同的内存区域分配不同的权限&#xff0c;从而提供对系统代码和数…

关键字volatile作用和用法

目录 一、多线程编程中的volatile关键字 二、嵌入式编程中的volatile关键字 三、 优化编译器优化 四、 指针类型转换 一个定义为volatile的变量是说这变量可能会被意想不到地改变&#xff0c;这样&#xff0c;编译器就不会去假设这个变量的值了。 精确地说就是&#xff0c;…

动态规划求解完全背包问题(c++实现)

首先是朴素版代码&#xff0c;三层for循环第一层是第几个物品&#xff0c;第二层是体积&#xff0c;第三层是第几个物品的个数&#xff1b;朴素版代码时间复杂度较高&#xff0c;效率低&#xff0c;容易超时。 #include<iostream> using namespace std; const int N1010…

【Docker】Swarm的ingress网络

Docker Swarm Ingress网络是Docker集群中的一种网络模式&#xff0c;它允许在Swarm集群中运行的服务通过一个公共的入口点进行访问。Ingress网络将外部流量路由到Swarm集群中的适当服务&#xff0c;并提供负载均衡和服务发现功能。 在Docker Swarm中&#xff0c;Ingress网络使…

RTL编码(2)——模块优化

一、顶层模块的划分 在RTL编码中&#xff0c;我们是以模块为单位进行设计的&#xff0c;模块之间的连接和嵌套关系对于电路结构有着很大的影响。一个好的系统设计中&#xff0c;我们应该使得模块尽量满足以下两个标准&#xff1a; 顶层模块扁平化内部模块层次化 1.1 顶层模块扁…

系列学习前端之第 3 章:一文精通 css

全套学习 HTMLCSSJavaScript 代码和笔记请下载网盘的资料&#xff1a; 链接: 百度网盘 请输入提取码 提取码: 6666 一、CSS基础 1. CSS简介 CSS 的全称为&#xff1a;层叠样式表 ( Cascading Style Sheets ) 。 CSS 也是一种标记语言&#xff0c;用于给 HTML 结构设…

使用arcpy移除遥感影像云层

先讲思路&#xff0c;然后上代码&#xff1a; 去除云层 思路1&#xff1a; 如果同一地理区域的多个图像&#xff0c;其中一些部分有丰富的云&#xff0c;而另一些部分没有云&#xff0c;则可以将它们组合起来&#xff0c;以便无云的部分替代多云的部分。这种方法很简单&…

编写高质量Python (第29条) 用赋值表达式消除推导中的重复代码

第 29 条 用赋值表达式消除推导中的重复代码 ​ 推导 list、dict 与 set 等变体结构时&#xff0c;经常要在多个地方用到同一个计算结果。例如&#xff0c;我们要给制作紧固件等公司编写程序来管理订单。顾客下单后&#xff0c;我们要判断当前的库存能否满足这份订单&#xff…

C++ vector基本操作

目录 一、介绍 二、定义 三、迭代器 四、容量操作 1、size 2、capacity 3、empty 4、resize 5、reserve 总结&#xff08;扩容机制&#xff09; 五、增删查改 1、push_back & pop_back 2、find 3、insert 4、erase 5、swap 6、operator[] 一、介绍 vector…

前端CSS(层叠样式表)总结

CSS2总结 一、CSS基础 1. CSS简介 CSS 的全称为&#xff1a;层叠样式表 ( Cascading Style Sheets ) 。CSS 也是一种标记语言&#xff0c;用于给 HTML 结构设置样式&#xff0c;例如&#xff1a;文字大小、颜色、元素宽高等等。 简单理解&#xff1a; CSS 可以美化…

使用python脚本轻松实现ssh免密登陆配置

1.安装python和pip包 yum install -y python python-pip 2.pip安装依赖库 pip install pexpect # 此库用相当于linux中的expect命令 3.完整脚本 # codingUTF-8 import sys,os,pexpect,subprocesshost_controller"192.168.174.150" …