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

 基础查询

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, -- 选择用户的用户IDu.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, -- 子查询中选择书籍编号IDCOUNT(order_id) AS order_count -- 子查询中对每个书籍ID的订单ID进行计数,并命名为order_countFROM `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, -- 选择用户IDstock_qty -- 选择书籍库存
FROM user `order`  -- 从用户表中选择数据
JOIN (SELECT order_id, -- 子查询中选择用户IDSUM(quantity) AS total_spent -- 子查询中对每个用户的订单总数量进行求和,并命名为total_spentFROM `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.mzph.cn/diannao/36452.shtml

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

相关文章

位运算(、|、^、~、>>、<<)

一、概念 在C#中,位运算是对整数的二进制表示进行操作的运算。这些运算包括按位与(AND)、按位或(OR)、按位异或(XOR)、按位取反(NOT)、左移(Left Shift&…

【区间动态规划】1771. 由子序列构造的最长回文串的长度

本文涉及知识点 动态规划汇总 LeetCode1771. 由子序列构造的最长回文串的长度 给你两个字符串 word1 和 word2 ,请你按下述方法构造一个字符串: 从 word1 中选出某个 非空 子序列 subsequence1 。 从 word2 中选出某个 非空 子序列 subsequence2 。 连…

企业AI落地的大法器-用数据清洗手段提升数据质量,找回遗珠之光

开篇 书接上文,在上文《谈LORA微调与数据质量处理之争》中我们详细叙述了:LORA微调手段和数据清洗之分,以及如何平衡和组合使用LORA微调与数据清洗的手法。 文末我们提到了“下一篇我们讲着重讲述:在打造企业数据清洗工具、平台…

003 SpringBoot操作ElasticSearch7.x

文章目录 5.SpringBoot集成ElasticSearch7.x1.添加依赖2.yml配置3.创建文档对象4.继承ElasticsearchRepository5.注入ElasticsearchRestTemplate 6.SpringBoot操作ElasticSearch1.ElasticsearchRestTemplate索引操作2.ElasticsearchRepository文档操作3.ElasticsearchRestTempl…

git tag 打标签指南

参考 Pro Git 打标签 查看标签 git tag git tag -l 创建标签 git tag tag002 创建了名称是 tag002 的标签,打在最新提交的 commit 上。只是打在本地,没有推送到远程。 如果要给以前的 commitId 打标签,就用 git tag tag001 159e40 给 159e4…

java基于ssm+jsp 弹幕视频网站

1前台首页功能模块 弹幕视频网站,在弹幕视频网站可以查看首页、视频信息、商品信息、论坛信息、我的、跳转到后台、购物车、客服等内容,如图1所示。 图1前台首页界面图 登录,通过登录填写账号、密码等信息进行登录操作,如图2所示…

GPT-5即将登场:期待AI新时代的技术突破与人机高效协作

随着科技的飞速发展,我们即将迎来一个人工智能领域的重要里程碑——GPT-5的发布。这一技术革新无疑是一个激动人心的时刻,它预示着AI技术将迈向一个全新的高度。GPT-5作为人工智能领域的一大突破,有望为我们带来前所未有的应用场景与深远影响…

显卡GTX与RTX有什么区别?哪一个更适合玩游戏?

游戏发烧友们可能对游戏显卡并不陌生,它直接关系到游戏画面的流畅度、细腻程度和真实感。在众多显卡品牌中,英伟达的GTX和RTX系列显卡因其出色的性能而备受关注。 一、GTX与RTX的区别 架构差异 GTX系列显卡采用的是Pascal架构,这是英伟达在…

探索MySQL核心技术:理解索引和主键的关系

在数据密集型应用中,数据库的性能往往是决定一个应用成败的重要因素之一。其中,MySQL作为一种开源关系型数据库管理系统,以其卓越的性能和丰富的功能被广泛应用。而在MySQL数据库优化的众多技巧中,索引和主键扮演着极其重要的角色…

安霸CVFlow推理开发笔记

一、安霸环境搭建: 1.远程172.20.62.13 2. 打开Virtualbox,所在目录:E:\Program Files\Oracle\VirtualBox 3. 配置好ubuntu18.04环境,Ubuntu密码:amba 4. 安装toolchain,解压Ambarella_Toolchain_CNNGe…

鸿蒙开发HarmonyOS NEXT (二) 熟悉ArkUI

一、构造函数 构造一个商品类Item,然后利用foreach函数循环渲染 class Item {name: stringimage: ResourceStrprice: numberdiscount: numberconstructor(name: string, image: ResourceStr, price: number, discount: number 0) {this.name name;this.image ima…

JAVA进阶学习09

文章目录 一、双列集合Map1.1 双列集合介绍1.2 双列集合Map常见API1.3 Map集合遍历方式1.3.1 通过集合的全部键来遍历集合1.3.2 Map集合遍历方式21.3.3 Map集合遍历方式3 二、Map集合的实现类2.1 HashMap类2.2 LinkedHashMap2.3 TreeMap 三、可变参数四、Collections类五、集合…

Vue 2.0 与 3.0区别

Vue.js是一种流行的前端JavaScript框架,用于构建用户界面和单页面应用程序。随着时间的推移,Vue.js已经从Vue2发展到了Vue3,这两个版本在**生命周期、模板组件以及性能**等方面有显著差异。具体分析如下: 1. **生命周期** - **Vue…

恭喜朱雀桥的越南薇妮她牌NFC山竹汁饮料,成为霸王茶姬奶茶主材

朱雀桥NFC山竹汁饮料:荣登霸王茶姬奶茶主材,非遗传承的天然之选 近日,据小编了解到:霸王茶姬欣喜地宣布,成功与朱雀桥达成合作越南薇妮她VINUT牌NFC山竹汁饮料。这款商超产品凭借其卓越的品质与独特的口感&#xff0c…

PostgreSQL安装教程及文件介绍

Ubuntu 安装和配置 PostgreSQL 以 Ubuntu Server 20.04,PostgreSQL 12 版本为例。 1. 安装 使用如下命令,安装指定版本的 PostgreSQL sudo apt install postgresql-12在 Ubuntu 20.04 中安装 PostgreSQL 登录您的 Ubuntu 系统并使用以下 apt 命令更新…

Java web应用性能分析之【prometheus监控指标体系】

Java web应用性能分析之【系统监控工具prometheus】_javaweb服务器性能监控工具-CSDN博客 Java web应用性能分析之【prometheusGrafana监控springboot服务和服务器监控】_grafana 导入 prometheus-CSDN博客 因为篇幅原因,前面没有详细说明Prometheus的监控指标&…

将手机上的已安装应用拷贝出到电脑中

方法一:通过应用管理器 下载并安装应用管理器:可以使用应用管理器如“ES文件浏览器”或“APK Extractor”。 提取APK文件: 打开应用管理器。 找到已安装的应用程序列表。 选择你想要提取的应用程序,然后选择“提取”或“备份”选…

数据结构 —— 哈夫曼树

数据结构 —— 哈夫曼树 哈夫曼树定义构造算法特性应用 哈夫曼编码核心概念工作原理特点 我们今天来看哈夫曼树: 哈夫曼树 哈夫曼树(Huffman Tree),是一种特殊的二叉树,由D.A. Huffman在1952年提出,主要用…

[面试题]计算机网络

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

ES报错:解决too_many_clauses: maxClauseCount is set to 1024 报错问题

解决too_many_clauses: maxClauseCount is set to 1024 报错问题 问题场景报错信息问题分析解决1. 优化查询2. 增加maxClauseCount3. 改用其他查询类型修改后的查询示例 问题场景 查询语句:查询clcNo分类号包含分类O的所有文档 {"match_phrase_prefix":…