MySQL将表中的价格全部加五_MySQL总结练习---如何查找每个分类中最贵的商品、如何将查询的数据插入到某个表中...

本文主要是介绍MySQL将表中的价格全部加五_MySQL总结练习---如何查找每个分类中最贵的商品、如何将查询的数据插入到某个表中...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

sql语句练习

一、如何查找每个分类中最贵的商品

1、创建数据库,插入数据

creare database jingdong charset=utf8;

use jingdong;

create table goods(

id int unsigned primary key auto_increment not null,

name varchar(150) not null,

cate_name varchar(40) not null,

brand_name varchar(40) not null,

price decimal(10.3) not null default 0,

is_show bit not null default 1,

is_saleoff bit not null default 0);

--插入数据

insert into goods values(0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default,default);

cbdbfe94e7a9ced0318771225bb9a772.png

2、-- 求所有商品的平均价格,并且保留两位小数

select round(avg(price),2) from goods;

– 查询所有价格大于平均价格的商品,并且按价格降序排序

select name from goods

where price > (select avg(price) from goods)

order by price desc;

– 查询类型cate_name为 ‘超级本’ 的商品名称、价格

select name,price from goods where cate_name = "超级本";

– 显示商品的种类

select cate_name from goods group by cate_name;

– 显示每种类型的商品的平均价格

select cate_name,avg(price) from goods group by cate_name;

3、-- 查询每种类型的商品中 最贵、最便宜、平均价、数量

select cate_name,max(price),min(price),avg(price),count(*) from goods

group by cate_name;

167ebbd2be4a5c328e5f5c0c92b9794c.png

4、查询每种类型中最贵的商品信息

1)方法一,表级子查询,内关联方式

拆解一下,首先通过分组,划分每种类型。但是没有办法通过单纯的聚合max来得到多个值,故思考使用关联2个表的方法:

查询得到一个有类型信息和每个类型中最贵的价格。即上题得到的表。

通过关联总表所有商品的价格与上表最贵价格,内连接取交集,即得到每种类型中最贵的商品信息

select * from goods inner join

(select cate_name,max(price) as 最贵,min(price),avg(price),count(*) from goods

group by cate_name) as info

on goods.cate_name=info.cate_name and goods.price=info.最贵;

2c7a140c3cea848fe3b59af0a60edc88.png

简化一下结果,把子表去掉

select goods.* from goods inner join

(select cate_name,max(price) as 最贵,min(price),avg(price),count(*) from goods

group by cate_name) as info

on goods.cate_name=info.cate_name and goods.price=info.最贵;

df782619ec87b3ef5eb45626a13ecf04.png

2)方法二:行级子查询,判断多列的值,注意使用in或=any,不能单独使用=号,=号代表了一行对应多行

select * from goods where cate_name,price in

(select cate_name,max(price) from goods group by cate_name);

select * from goods where (cate_name,price) =any (select cate_name,max(price) from goods group by cate_name);

bd67a54c26fda7e52c3dc0ea671e7cac.png

二、如何将查询的数据插入到某个表中

– insert into xx表 values (), (),…; 需要手动写比较麻烦

– insert … select # 将查询的结果插入到某一个表中,注意新表后要加括号说明字段值,否则报错

1、创建新表

create table if not exists goods_cates(

id int unsigned primary key auto_increment,

name varchar(40) not null

);

2、将goods表中的商品类别插入到goods_cates表的name字段,注意括号

insert into goods_cates(name)

select distinct cate_name from goods;

3、表连接更新,update…set

将主表中数据依据从表数据更新

将goods表中的商品类别更新为goods_cates表中类别对应的id

update goods as g inner join

goods_cates as c on g.cate_name = c.name

set g.cate_name = c.id;

9aeae45a1b70dc37ebdd5dc6e19b0edd.png

– 更新字段名称和数据类型 字符串类型 — > int 类型

alter table goods change cate_name cate_id int unsigned not null;

这篇关于MySQL将表中的价格全部加五_MySQL总结练习---如何查找每个分类中最贵的商品、如何将查询的数据插入到某个表中...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/728756

相关文章

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

MySQL 筛选条件放 ON后 vs 放 WHERE 后的区别解析

《MySQL筛选条件放ON后vs放WHERE后的区别解析》文章解释了在MySQL中,将筛选条件放在ON和WHERE中的区别,文章通过几个场景说明了ON和WHERE的区别,并总结了ON用于关... 今天我们来讲讲数据库筛选条件放 ON 后和放 WHERE 后的区别。ON 决定如何 "连接" 表,WHERE

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

MySQL日志UndoLog的作用

《MySQL日志UndoLog的作用》UndoLog是InnoDB用于事务回滚和MVCC的重要机制,本文主要介绍了MySQL日志UndoLog的作用,文中介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、Undo Log 的作用二、Undo Log 的分类三、Undo Log 的存储四、Undo

MySQL游标和触发器的操作流程

《MySQL游标和触发器的操作流程》本文介绍了MySQL中的游标和触发器的使用方法,游标可以对查询结果集进行逐行处理,而触发器则可以在数据表发生更改时自动执行预定义的操作,感兴趣的朋友跟随小编一起看看... 目录游标游标的操作流程1. 定义游标2.打开游标3.利用游标检索数据4.关闭游标例题触发器触发器的基

MySQL查看表的历史SQL的几种实现方法

《MySQL查看表的历史SQL的几种实现方法》:本文主要介绍多种查看MySQL表历史SQL的方法,包括通用查询日志、慢查询日志、performance_schema、binlog、第三方工具等,并... 目录mysql 查看某张表的历史SQL1.查看MySQL通用查询日志(需提前开启)2.查看慢查询日志3.

MySQL底层文件的查看和修改方法

《MySQL底层文件的查看和修改方法》MySQL底层文件分为文本类(可安全查看/修改)和二进制类(禁止手动操作),以下按「查看方法、修改方法、风险管控三部分详细说明,所有操作均以Linux环境为例,需... 目录引言一、mysql 底层文件的查看方法1. 先定位核心文件路径(基础前提)2. 文本类文件(可直

MySQL数据目录迁移的完整过程

《MySQL数据目录迁移的完整过程》文章详细介绍了将MySQL数据目录迁移到新硬盘的整个过程,包括新硬盘挂载、创建新的数据目录、迁移数据(推荐使用两遍rsync方案)、修改MySQL配置文件和重启验证... 目录1,新硬盘挂载(如果有的话)2,创建新的 mysql 数据目录3,迁移 MySQL 数据(推荐两