mysql基础作业_mysql中基础练习
练习用的表
表结构
把num值处于[20,29]之间,改为20;num值处于[30,39]之间的,改为30。
方法一:
update mian set num = 20 where num between 20 and 29;
update mian set num = 30 where num between 30 and 39;
方法二:
update mian set num = floor(num/10)*10 where num between 20 and 39;
改后结果
练习用的表
表结构
1、基础查询where的练习:
1.1、主键为32的商品
select goods_id, goods_name, shop_price,market_price from goods where goods_id = 32;
图1-1
1.2、不属第3栏目的所有商品
select goods_id, goods_name, cat_id, shop_price,market_price from goods where cat_id != 3;
图1-2
1.3、本店价格高于3000元的商品
select goods_id, goods_name, cat_id, shop_price,market_price from goods where shop_price > 3000;
图1-3
1.4、本店价格低于或等于100元的商品
select goods_id, goods_name, cat_id, shop_price,market_price from goods where shop_price < 100;
图1-4
1.5、取出第4栏目或第11栏目的商品(不许用or)
select goods_id, goods_name, cat_id, shop_price,market_price from goods where cat_id in (4,11);
图1-5
1.6、取出100<=价格<=500的商品(不许用and)
select goods_id, goods_name, cat_id, shop_price,market_price from goods where shop_price between 100 and 500;
图1-6
1.7、取出不属于第3栏目且不属于第11栏目的商品(and,或not in分别实现)
select goods_id, goods_name, cat_id, shop_price,market_price from goods where cat_id !=3 and cat_id !=11;
select goods_id, goods_name, cat_id, shop_price,market_price from goods where cat_id not in (3, 11);
图1-7
1.8、取出价格大于100且小于300,或者大于4000且小于5000的商品
select goods_id,cat_id,goods_name,shop_price from goods where shop_price > 100 and shop_price < 300 or shop_price > 4000 and shop_price < 5000;
图1-8
1.9、取出第3个栏目下面价格<1000或>3000,并且点击量>5的系列商品
select goods_id,cat_id,goods_name,shop_price,click_count from goods where cat_id = 3 and (shop_price < 1000 or shop_price > 3000) and click_count > 5;
图1-9
1.10、取出第1个栏目下面的商品(注意:1栏目下面没商品,但其子栏目下有)
栏目表如下图:
本题所说的栏目表
题目中要取出栏目为1的商品,即cat_id为1的goods表中的商品。从表中可知cat_id 2~5的栏目均属于cat_id = 1的子栏目,所以这些要取出来。
# 建立一个视图保存从goods表中匹对出第1栏中的子栏商品
create view catid_1 as
-> select goods.cat_id, goods_name,category.parent_id, cat_name
-> from goods right join category
-> on goods.cat_id = category.cat_id and category.parent_id = 1;
图1-10-1 view视图
# 选出parent_id为1的商品即可
select parent_id, cat_id, goods_name, cat_name from catid_1 where parent_id = 1;
图1-10-2 最终结果
1.11、取出名字以"诺基亚"开头的商品
select goods_id,cat_id,goods_name,shop_price from goods where goods_name like '诺基亚%';
图1-11
1.12、取出名字为"诺基亚Nxx"的手机
select goods_id,cat_id,goods_name,shop_price from goods where goods_name like '诺基亚N__';
图1-12
1.13、取出名字不以"诺基亚"开头的商品
select goods_id,cat_id,goods_name,shop_price from goods where goods_name not like '诺基亚%';
图1-13
1.14、取出第3个栏目下面价格在1000到3000之间,并且点击量>5 "诺基亚"开头的系列商品
select goods_id,cat_id,goods_name,shop_price from goods where cat_id = 3 and (shop_price between 1000 and 3000) and goods_name like '诺基亚%';
图1-14
1.15、把goods表中商品名为'诺基亚xxxx'的商品,改为'HTCxxxx',提示:大胆的把列看成变量,参与运算,甚至调用函数来处理 .(substring(),concat())
update goods set goods_name = concat('HTC',substring(goods_name,4)) where goods_name like '诺基亚%';
图1-15
2、分组查询group:
2.1、查出最贵的商品的价格
select max(shop_price) from goods;
图2-1
2.2、查出最大(最新)的商品编号
select max(goods_id) from goods;
图2-2
2.3、查出最便宜的商品的价格
select min(shop_price) from goods;
图2-3
2.4、查出最旧(最小)的商品编号
select min(goods_id) from goods;
图2-4
2.5、查询该店所有商品的库存总量
select sum(goods_number) from goods;
图2-5
2.6、查询所有商品的平均价
select avg(shop_price) from goods;
图2-6
2.7、查询该店一共有多少种商品
select count(*) from goods;
图2-7
2.8、查询每个栏目下面
最贵商品价格
最低商品价格
商品平均价格
商品库存量
商品种类
提示:(5个聚合函数,sum,avg,max,min,count与group综合运用)
select cat_id, max(shop_price),min(shop_price), avg(shop_price), sum(goods_number),count(goods_id) from goods group by cat_id;
图2-8
3、having与group综合运用查询:
3.1、查询该店的商品比市场价所节省的价格
select goods_id, goods_name, market_price - shop_price as safe_money from goods;
图3-1
3.2、查询每个商品所积压的货款(提示:库存*单价)
select goods_id, goods_name, goods_number * shop_price as loan from goods;
图3-2
3.3、查询该店积压的总货款
select sum(goods_number * shop_price) as loan_all from goods;
图3-3
3.4、查询该店每个栏目下面积压的货款.
select cat_id, sum(goods_number * shop_price) as loan_all from goods group by cat_id;
图3-4
3.5、查询比市场价省钱200元以上的商品及该商品所省的钱(where和having分别实现)
where:
select goods_id, goods_name, shop_price, market_price, market_price - shop_price as safe_money from goods where (market_price - shop_price) > 200;
having:
select goods_id, goods_name, shop_price, market_price, market_price - shop_price as safe_money from goods having safe_money > 200;
图3-5
3.6、查询积压货款超过2W元的栏目,以及该栏目积压的货款
select cat_id, sum(goods_number * shop_price) as loan_all from goods group by cat_id having loan_all > 20000;
图3-6
3.7、where-having-group综合练习题
图3-7-1 所用表格
要求:查询出2门及2门以上不及格者的平均成绩。
select name, avg(score) as avg_score, sum(score < 60) as fail_courses from result
group by name
having fail_courses >= 2;
图3-7-2
Ps:这里很容易出错,一开始我自己就错用count( )来统计不及格成绩数,但是count( )只能计算行数,及格数也占一行,所以统计出来的数量是错误的。另外,sql思路与以往有所区别,要什么就先取什么,然后再一步步筛选。
mysql基础作业_mysql中基础练习相关推荐
- MySQ快速基础篇_MySQL数据库基础
MySQ快速基础篇_MySQL数据库基础 文章目录 MySQ快速基础篇_MySQL数据库基础 MySQL数据库基础 学习目录 学习目标 一.数据库概述 1.数据库介绍 2.数据库分类 ☆ 关系型数据库 ...
- mysql loop嵌套_MySQL中Nested-Loop Join算法小结
数据库中JOIN操作的实现主要有三种:嵌套循环连接(Nested Loop Join),归并连接(Merge Join)和散列连接或者哈稀连接(Hash Join).其中嵌套循环连接又视情况又有两种变 ...
- mysql range用法_MySQL中Explain的用法总结(详细)
本篇文章给大家带来的内容是关于MySQL中Explain的用法总结(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 执行计划(query Execution plan) 语法e ...
- mysql join图解_MySQL中Join算法实现原理分析[多图]
在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join.顾名思义,Nes ...
- mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享
因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...
- mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...
情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a, a,b a,b, ...
- mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享
因需要在MysqL的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的MysqL函数,可以有效的从字符串中提取出数字. 该MysqL提取出字符串中的数字函数如下: CREATE ...
- mysql regexp边界_MySQL中REGEXP正则表达式使用大全
以前我要查找数据都是使用like后来发现mysql中也有正则表达式了并且感觉性能要好于like,下面我来给大家分享一下mysql REGEXP正则表达式使用详解,希望此方法对大家有帮助. MySQL采 ...
- mysql row_number吗_MySQL中的ROW_NUMBER()是什么?
MySQL版本8.0中包含的Row_NUMBER().这是一种窗口函数.这可用于为行分配序列号.要了解,请借助CREATE pcommand创建一个表- 建立表格CREATE table rowNum ...
最新文章
- AWS攻略——使用CodeBuild进行自动化构建和部署静态网页
- 一次难得的分库分表实践
- Django使用中常见的错误
- c++STL(标准模板库)理论基础
- OpenShift 4 之Kafka(2)-配置Kafka Bridge,通过HTTP访问Kafka Topic
- 看动画轻松理解「Trie树」
- 黄聪:Loopup集合类笔记
- Java线程并发与安全性问题详解
- XenCenter6.2 配置ISO库
- python 区块链_如何用Python快速实现区块链?
- IT 工作中常用的英语单词
- 游戏设计梦工厂学习笔记(一)
- 运动目标识别系统Matlab仿真——附上程序
- 小知识(1):关于端口的复用及重映射
- python开发中级_针对中级Python开发人员的13个项目构想
- 什么是CC攻击?CC攻击的防御措施有哪些?
- BERT-MRC论文笔记
- 阿里巴巴“相信小的伟大”:用普世情怀传播小力量
- 【联合首发】2020年中国线上高增长消费市场白皮书-魔镜市场情报.pdf(附下载链接)
- 【Unity植物大战僵尸】太阳花功能基本完善(八)
热门文章
- 0,‘0’,‘\0’,null的区别
- Android 进程间通信机制(二) mmap 原理
- hotspot源码下载
- pm2 start 带参数_pm2配置文件介绍
- 电脑插了网线连不上网(已解决)
- mysql declare 语法_sql_declare等语法 | 学步园
- 微信小程序+VUE社区疫情防控(含源码+论文+答辩PPT等)
- HTC VIVE Wave 概览
- facebook instant game 发布指南-设置智能助手
- jquery按钮置灰_Jquery 实现表单提交按钮变灰,防止多次点击提交重复数据