MySQL周内训参照3、简单查询与多表联合复杂查询

news2024/11/24 20:04:05

 基础查询

1、查询用户信息,仅显示用户的姓名与手机号,用中文显示列名。中文显示姓名列与手机号列

SELECT user_id  AS '编号', phone AS '电话' FROM user;

2. 根据订购表进行模糊查询,模糊查询需要可以走索引,需要给出explain语句。使用explain测试给出的查询语句,需要显示走了索引查询。

CREATE INDEX idx_order_id ON `order`(order_id);

 

不能用模糊查询的符号作为查询的开头,否则不走索引。

EXPLAIN SELECT * FROM `order` WHERE order_id LIKE '小%';

 

可以看到已经走了索引了。

3.统计用户订单信息,查询所有用户的下单数量,并进行倒序排列。使用聚合函数查询处所有用户的订单数量,倒序排列结果

SELECT user_id, COUNT(order_id) AS '订购数量'
FROM `order`
GROUP BY user_id
ORDER BY `订购数量` DESC;

 

复杂查询 

 1.查询用户的基本信息,订单信息。正确显示用户信息,正确显示订单信息,正确进行多表联合查询

    u.user_id, -- 选择用户的用户ID
    u.username, -- 选择用户名

		u.age,-- 选择年龄
		u.sex,-- 选择性别
                   u.phone, -- 选择电话
		u.email, -- 选择邮箱
           	uo.quantity,
		uo.book_id
FROM 
    user u -- 从用户表中选择数据
JOIN 
    `order` uo ON u.user_id = uo.user_id; -- 使用JOIN连接用户表和订单表,连接条件是两个表中的user_id相同

 


2.查看订单中下单最多的书籍。正确使用聚合函数,正确使用子查询,正确显示结果 

SELECT 
    pt.book_id -- 选择书籍名称
FROM 
    `books` p -- 从书籍表中选择数据
JOIN 
    `order` pt ON p.book_id = pt.book_id -- 使用JOIN连接书籍表和订单表,连接条件是书籍表中的book_id与订单表中的book_id相同
JOIN 
    (SELECT 
         book_id, -- 子查询中选择书籍编号ID
         COUNT(order_id) AS order_count -- 子查询中对每个书籍ID的订单ID进行计数,并命名为order_count
     FROM 
         `order` -- 子查询从订单表中选择数据
     GROUP BY 
         book_id -- 按书籍ID进行分组
     ORDER BY 
         order_count DESC -- 按订单数量降序排列
     LIMIT 3) oi ON p.book_id = oi.book_id; -- 子查询的结果作为临时表oi,与产品表通过book_id进行连接

 

3.查询 订单中购买书籍最多的数量,和库存中剩余书籍总数量

SELECT 
    `order_id` -- 选择用户的所有信息
    quantity, -- 选择用户ID
    stock_qty -- 选择书籍库存
FROM 
    user `order`  -- 从用户表中选择数据
JOIN 
    (SELECT 
         order_id, -- 子查询中选择用户ID
         SUM(quantity) AS total_spent -- 子查询中对每个用户的订单总数量进行求和,并命名为total_spent
     FROM 
         `order` -- 子查询从订单表中选择数据
     GROUP BY 
         order_id -- 按用户ID进行分组
     ORDER BY 
         total_spent DESC -- 按总消费金额降序排列
     LIMIT 1) o ON order_id= o.order_id -- 子查询的结果作为临时表o,与用户表通过user_id进行连接
JOIN 
    `stock` uo ON uo.stock_id = order_id; -- 使用JOIN连接用户表和钱包表,连接条件是两个表中的user_id相同

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

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

相关文章

6.26.8 基于多视角深度卷积神经网络的高分辨率乳腺癌筛查

1. 介绍 1.1 乳腺癌筛查 开发了一种新的DCN,它能够处理乳房x线摄影筛查的多个视图,并利用大分辨率图像而不缩小。将这种DCN称为多视图深度卷积网络(MV-DCN)。网络学习预测放射科医生的评估,将传入的样本分类为BI-RADS 0(“不完整”)&#xf…

MATLAB2024a下的神经网络聚类工具箱聚类

1 打开神经网络聚类工具箱GUI界面 图1-1 2 导入训练数据 图2-1 导入训练集如图2-2,图2-3、图2-4所示 图2-2 图2-3 图2-4 如图2-4,确认无误点击确定 3 模型训练 如图3-1,调整验证集与测试集比例及映射大小后点击”训练“,开始训练…

手写SpringMVC之ApplicationContextListener

什么是Spring MVC? Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称( spring-webmvc ),但它通常被称为“Spring MVC”。 手写…

2024最新特种设备(锅炉作业)题库分享。

1.锅炉蒸发量大小是由(  )决定的。 A.压力的高低 B.受压元件多少 C.受热面积大小 答案:C 2.哪项不是自然循环的故障?( ) A.停滞 B.倒流 C.下降管带汽 D.上升管带汽 答案:D 3.水冷壁被现代大型锅炉广泛采用的是(  )。 A.光管水冷壁 B.膜…

锐捷AP从其它项目拆下,怎么也加入不了到现在这个网络里来

环境: AP 产品型号:RG-RAP2260G 问题描述: 锐捷AP从其它项目拆下,怎么也加入不了到现在这个网络里来,现网是WIFI5的,想把2260G用来升级,恢复出厂设置后,插上网线,现网找不到这个AP 解决方案: 1.通电重置AP后,连接AP WiFi进入管理页面,要求先快速配置 2.开始配置…

【电路笔记】-MOSFET放大器

MOSFET放大器 文章目录 MOSFET放大器1、概述2、电路图3、电气特性3.1 ** I D = F ( V G S ) I_D=F(V_{GS}) ID​=F(VGS​)**特性3.2 I D = F ( V D S ) I_D=F(V_{DS}) ID​=F(VDS​)特性4、MOSFET放大器5、输入和输出电压6、电压增益7、总结1、概述 在前面的文章中,我们已经…

01.Ambari自定义服务开发-项目初始化

文章目录 基础环境在PyCharm中初始化项目配置项目相关依赖在PyCharm中导入依赖 基础环境 PyCharmPython 2.7已经安装完成的Ambari服务端 在PyCharm中初始化项目 项目名称就是我们要安装服务的名称,要求名称为全大写,如:DORIS创建Python2.7…

网格处理库 pmp-library 编译及应用笔记 -- 已全部解决√

多边形网格处理库Polygon Mesh Processing Library,简称pmp-library的 编译及应用笔记 – 已全部解决√ 官网:https://www.pmp-library.org/index.html 代码:https://github.com/pmp-library/pmp-library 平台:Ubuntu1 20.04&…

知识图谱——Neo4j数据库实战

数据与代码链接见文末 1.Neo4j数据库安装 JDK 安装:https://www.oracle.com/java/technologies/javase-downloads.html Neo4j 安装:https://neo4j.com/download-center/ 配置好 JDK 和 Neo4j 的环境变量

多电商账户为什么要用指纹浏览器?

随着电子商务的蓬勃发展,越来越多的商家选择开设多店来扩大经营规模。然而多店运营也带来了一系列的挑战,其中之一就是账号安全。 1. 了解反检测浏览器和代理服务器 在我们开始讨论如何有效地使用反检测浏览器之前,我们首先需要了解这两个工…

Excel 宏录制与VBA编程 —— 12、文本字符串类型相关(转换、拆分、分割、连接、替换、查找、“Like“)

字符串分割,文末示例(文末代码3附有源码) 代码1 - 基础字符串 代码2 - 字符串拆分 代码3 - 字符串分割 Option ExplicitSub WorkbooksClear()Dim DataRange As RangeSet DataRange Range("C2:E12")DataRange.Clear End SubSub Wo…

爆火网络的 AI 粘土风照片,如何用免费的AI绘画工具Stable Diffusion实现?只需一个Lora即可轻松解决!

大家好,我是画画的小强 最近粘土滤镜照片在小某书上爆火,随便一翻就出现好多 这些丑可爱丑可爱的粘土滤镜是这样紫。 这些照片都是通过手机APP Remini 来转绘的。Remini原来是由国人开发,据说卖给了国外公司,现在排在了谷歌商店下…

最年轻获奖者诞生!一文带你了解历届国家最高科学技术奖获奖人

内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨沛贤 深度好文:4000字丨15分钟阅读 作为国家层面面向科学、技术领域的最高级别奖励,国家最高科学技术奖于 2000 年由国务院设立,每年评选…

8. Revit API UI: DockablePane(可停靠窗口)

8. Revit API UI: DockablePane(可停靠窗口) 接着前面的预览控件和外部事件,这一篇,我们来看看可停靠窗口DockablePane的实现。 实现流程 可停靠窗口相关的类与接口主要有DockablePane和IDockablePageProvider,都是…

探索Facebook的未来世界:数字社交的演进之路

在数字化和全球化的浪潮中,社交网络如Facebook已经成为了人们日常生活不可或缺的一部分。然而,随着技术的迅猛发展和用户需求的不断变化,Facebook正在经历着社交平台的演进之路。本文将探索Facebook的未来世界,分析数字社交的发展…

Android 13 为应用创建快捷方式

参考 developer.android.google.cn 创建快捷方式 来自官网的说明: 静态快捷方式 :最适合在用户与应用互动的整个生命周期内使用一致结构链接到内容的应用。由于大多数启动器一次仅显示四个快捷方式,因此静态快捷方式有助于以一致的方式执行…

ADC位数、增益调制与参考电压

位数:12bit、10bit、8bit 一般就是对应的ADC值分别为:4095、1023、255,也就选用对应位数时ADC的最大值。 增益的作用 增益设置用于放大或缩小输入信号,使其适配到ADC的输入范围。增益设置可以通过配置SAADC的通道配置寄存器来实…

第一后裔The First Descendant开服时间、配置要求一览

第一后裔是一款采用虚幻5引擎打造的第三人称合作射击动作RPG,玩家将化身为一名继承者,通过各种任务和故事不断成长,为守护人类与对抗侵略者战斗。该作即将上线,为了不让玩家们错过这款精彩的游戏,本文整理了第一后裔上…

[行业原型] Web端原型案例:康欣医疗后台管理系统

​医疗管理系统是一个业务复杂,功能庞大的系统,以下为HIS医院管理系统的常见模块,供大家参考。 本周为大家带来Web端原型案例:康欣医疗后台管理系统,先上原型: 完整文档加班主任微信号 添加班主任回复 “1…

推荐两款电脑文件处理工具,强大到你不舍得卸载

EasyFileCount EasyFileCount是一款基于Java开发的多功能文件管理工具,旨在帮助用户更轻松地管理和优化他们的文件存储。以下是EasyFileCount的主要功能和特点: 查看文件夹大小:用户可以快速统计和查看文件夹的总大小,实时显示各…