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

相关文章

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

MySQL数据库约束深入详解

《MySQL数据库约束深入详解》:本文主要介绍MySQL数据库约束,在MySQL数据库中,约束是用来限制进入表中的数据类型的一种技术,通过使用约束,可以确保数据的准确性、完整性和可靠性,需要的朋友... 目录一、数据库约束的概念二、约束类型三、NOT NULL 非空约束四、DEFAULT 默认值约束五、UN

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义