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.rhkb.cn/news/212322.html

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

相关文章

mysql基础之约束

在mysql中null和任何值都不相同&#xff0c;null和null也不相同 1.约束简介 1.1概念 约束英文&#xff1a;constraint 约束实际上就是表中数据的限制条件 1.2.作用 表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性&#xff0c;比如用户表有些列的值&am…

docker-compose部署sonarqube 8.9 版本

官方部署文档注意需求版本 所以选择8.9版本 一、准备部署配置 1、持久化目录 rootlocalhost:/root# mkdir -p /data/sonar/postgres /data/sonar/sonarqube/data /data/sonar/sonarqube/logs /data/sonar/sonarqube/extensions rootlocalhost:/root# chmod 777 /data/sona…

「Swift」类淘宝商品瀑布流展示

前言&#xff1a;需要做一个类似于淘宝商品页面的瀑布流展示 结构分析&#xff1a; ps&#xff1a;图片来源 思路分析&#xff1a; 该瀑布流主要还是基于UICollectionView进行展示&#xff0c;只是在cell展示的UICollectionViewFlowLayout需要进行相应调整和自定义&#xff…

智能优化算法应用:基于北方苍鹰算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于北方苍鹰算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于北方苍鹰算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.北方苍鹰算法4.实验参数设定5.算法结果6.参考…

python技术栈之单元测试中mock的使用

什么是mock&#xff1f; mock测试就是在测试过程中&#xff0c;对于某些不容易构造或者不容易获取的对象&#xff0c;用一个虚拟的对象来创建以便测试的测试方法。 mock的作用 特别是开发过程中上下游未完成的工序导致当前无法测试&#xff0c;需要虚拟某些特定对象以便测试…

[node] Node.js的Web 模块

[node] Node.js的Web 模块 什么是 Web 服务器&#xff1f;Web的应用架构http使用方式使用 Node 创建 Web 服务器使用 Node 创建 Web 客户端 什么是 Web 服务器&#xff1f; Web服务器一般指网站服务器&#xff0c;是指驻留于因特网上某种类型计算机的程序&#xff0c;Web服务器…

使用WalletConnect Web3Modal v3 链接钱包基础教程

我使用的是vueethers 官方文档&#xff1a;WalletConnect 1.安装 yarn add web3modal/ethers ethers 或者 npm install web3modal/ethers ethers2.引用 新建一个js文件&#xff0c;在main.js中引入&#xff0c;初始化配置sdk import {createWeb3Modal,defaultConfig, } from…

Vue3 Element-Plus 一站式生成动态表单:简化前端开发流程

文章目录 1. 引言2. Vue3 和 Element-Plus 简介2.1 Vue32.2 Element-Plus 3. 动态表单的需求与挑战4. Vue3 和 Element-Plus 动态表单的优势4.1 Vue3的组合式API4.2 Element-Plus的表单组件 5. 一站式生成动态表单的实现5.1 准备工作5.2 创建动态表单组件5.3 使用动态表单组件 …

uniapp横向滚动示例

目录 插件市场案例最后 插件市场 地址 案例 地址 最后 感觉文章好的话记得点个心心和关注和收藏&#xff0c;有错的地方麻烦指正一下&#xff0c;如果需要转载,请标明出处&#xff0c;多谢&#xff01;&#xff01;&#xff01;

读书笔记-《数据结构与算法》-摘要4[插入排序]

插入排序 核心&#xff1a;通过构建有序序列&#xff0c;对于未排序序列&#xff0c;在已排序序列中从后向前扫描(对于单向链表则只能从前往后遍历)&#xff0c;找到相应位置并插入。实现上通常使用in-place排序(需用到O(1)的额外空间) 从第一个元素开始&#xff0c;该元素可…

Science | 张锋实验室:聚类算法揭示188种新型CRISPR系统

微生物序列数据库包含大量有关酶和其他可用于生物技术的分子的信息。但近年来&#xff0c;这些数据库已经变得非常庞大&#xff0c;以至于很难有效地搜索到感兴趣的酶。 2023年11月23日&#xff0c;博德研究所张锋及美国国立卫生研究院Eugene V. Koonin共同通讯在Science 在线…

【原神游戏开发日志1】缘起

【原神游戏开发日志1】缘起 版权声明 本文为“优梦创客”原创文章&#xff0c;您可以自由转载&#xff0c;但必须加入完整的版权声明 文章内容不得删减、修改、演绎 相关学习资源见文末 大家好&#xff0c;最近看到原神在TGA上频频获奖&#xff0c;作为一个14年经验的游戏开…

C# Solidworks二次开发:三种获取SW设计结构树的方法-第一讲

今天要讲的方法是如何在Solidworks中获取左侧设计结构上的节点&#xff0c;获取节点的方法我所知道的有三种。 这三种方法满足我在使用过程的多种需求&#xff0c;下面先开始介绍第一个方法&#xff1a; 方法的API如下所示&#xff1a;GetComponents Method (IAssemblyDoc) 这…

基于单片机的电子密码锁设计

1&#xff0e;设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的电子密码锁&#xff0c;可设置四位密码&#xff0c;输入错误三次&#xff0c;报警灯亮起&#xff08;红灯亮起&#xff09;&#xff0c;输入正确&#xff0c;绿灯闪烁三次。可通过LCD显示屏查看密码&…

Canvas鼠标画线

鼠标按下开始画线,鼠标移动根据鼠标的轨迹去画,鼠标抬起停止画线 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

Leetcode刷题笔记题解(C++):LCR 121. 寻找目标值 - 二维数组

思路&#xff1a;从左小角或者右上角开始遍历&#xff0c;假设右上角开始遍历&#xff0c;如果当前值大于目标值则列-1&#xff1b;如果当前值小于目标值则行1&#xff0c;以此遍历来查找目标值&#xff1b;注意col和row的选取 class Solution { public:bool findTargetIn2DPl…

选择黑盒测试用例设计方法的综合策略方案总结

前言 具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。这些方法都是比较实用的&#xff0c;但在具体工作中要采用什么方法&#xff0c;需要针对项目的特点加以适当的选择。在实际高水平…

在 Windows 桌面的redis中远程连接到 VMware 中运行的 Linux 上的 Redis

先修改一下docker容器中的redis(一会连上之后看效果) 我使用的是VMware的虚拟机 选择的网络设置为桥接模式 查到虚拟机独立的ip是如下 允许 Linux 虚拟机上的 Redis 监听外部连接&#xff1a; 打开 Linux 虚拟机上的 Redis 配置文件。在大多数系统上&#xff0c;配置文件位于…