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

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python实现数据清洗的18种方法

《Python实现数据清洗的18种方法》本文主要介绍了Python实现数据清洗的18种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1. 去除字符串两边空格2. 转换数据类型3. 大小写转换4. 移除列表中的重复元素5. 快速统

Mysql DATETIME 毫秒坑的解决

《MysqlDATETIME毫秒坑的解决》本文主要介绍了MysqlDATETIME毫秒坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 今天写代码突发一个诡异的 bug,代码逻辑大概如下。1. 新增退款单记录boolean save = s

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d