MySQL数据库的基础练习(下)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL数据库的基础练习(下)

17.查询s_id=81或者s_id=82的水果供应商的f_price和f_name。


select f_price,f_name from fruits where s_id=81 or s_id=82;


0f36a2b0e7abe5143be91dc387e598ac.jpg


18.查询s_id=81或者s_id=82的水果供应商的f_price和f_name


select f_price,f_name from fruits where s_id=81 or s_id=82;


2113a93fdb991202c0bdffae5c54ae81.jpg

19.查询fruits表中s_id字段的值,返回s_id字段值且不得重复。


select distinct s_id from fruits;


4049a7c120f8529c85c90bcd5d29cae5.jpg


20.查询fruits表的f_name字段值,并对其进行排序。


select f_name from fruits order by f_name;


5f8eeb2fe1965d1fa79a4b23149f4924.jpg


21.查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序。


select f_name,f_price from fruits order by f_name,f_price;

d29a1894e7e0caf1ce629f82df98fda2.jpg


22.查询fruits表中的f_name和f_price字段,对结果按f_price降序方式排序。


select f_name,f_price from fruits order by f_price desc;

fbb7cdbe5ed5fcf6f2dd09a1f54c34ca.jpg


23.查询fruits表,先按f_price降序排序,再按f_name字段升序排序。


select f_price,f_name from fruits order by f_price desc,f_name;


13f30a1398e34a97ac10564d3b7518a7.png


24.根据s_id对fruits表中的数据进行分组。


select s_id count(*) as total from fruits group by s_id;


fdb439629b31c60d878d0909c2a9de5c.jpg


25.根据s_id对fruits表中的数据进行分组,将每个供应商的水果名称显示出来。


SELECT s_id, COUNT(*) AS Total FROM fruits GROUP BY s_id WITH ROLLUP;


e337d1232d77136e3ef7fa139af72f90.jpg


26.根据s_id对fruits表中的数据进行分组,并显示水果种类大于1的分组信息。


select s_id, GROUP_CONCAT(f_name) as names from fruits group by s_id having count(f_name) > 1;

774842e647b3591ed52298a25c0e3fc8.jpg


group_concat()函数的用法


group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])


27.以id分组,把name字段的值打印在一行,逗号分隔(默认)


select s_id,group_concat(f_name) from fruits group by s_id;

5069f30dd23974386f1fcd53b9aa78e0.jpg


以id分组,把name字段的值打印在一行,分号分隔


select s_id,group_concat(f_name separator ';') from fruits group by s_id;

f9202aae77fff621b08557eb44cab846.jpg


以id分组,把去冗余的name字段的值打印在一行, 逗号分隔


select s_id,group_concat(distinct f_name) from fruits group by s_id;


336001eadd84d4c42f5920a41da5d0c3.jpg


以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序


select s_id,group_concat(f_name order by f_name desc) from fruits group by s_id;


a42ea7b2d9e0262f0a853bff62651e82.jpg


28.根据s_id对fruits表中的数据进行分组,并显示记录数量。


select s_id, count(*) from fruits group by s_id with rollup;


ec1077424f95fa794a0a816febc4fb36.jpg


29.根据s_id和f_name字段对fruits表中的数据进行分组。


select s_id & f_name from fruits group by s_id & f_name;


fa6e0efed68e0326ad0a198552d94598.png


30.查询订单价格大于80的订单号和总订单价格。


SELECT o_num, SUM(quantity * item_price) AS orderTotalFROM orderitemsGROUP BY o_numHAVING SUM


7da7dceb8e4d3c1b94bff7b4f565e8d6.jpg

caad8729cf2145f42709a7e71fc8e974.jpg


31.显示fruits表查询结果的前4行。


select * from fruits limit 4;


5e09ea8ad1d145dca46a142d43db1a50.jpg


32.在fruits表中,使用LIMIT子句,返回从第5个记录开始的,行数长度为3的记录。


select * from fruits limit 4,3;


50187bb17ba8fb3c1050ac9946288c1b.jpg


33.查询customers1表中总的行数


select count(*) as goods_num  from customers;


19817106c91f64cc0d7024b1ea6d612b.png


34.查询customers1表中有电子邮箱的顾客的总数查询customers1表中有电子邮箱的顾客的总数。


select count(c_email) as email_num from customers;


9b2d4729c83501517b4ab7a7ebacb6ae.jpg


35.在orderitems表中,使用COUNT()函数统计不同订单号中订购的水果种类。


select count(f_id) as o_num from fruits;


181cd62594783047ee9f42886092cf01.png


36.在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量。


select  sum(quantity)  from orderitems;


d193a1e3cc74db63d5315a5d462a5f5b.jpg


37.在fruits表中,查询s_id=83的供应商的水果价格的平均值。


select avg(f_price) as avg_price from fruits  where s_id = 83;


6e6a0b0eb8a4337497d92bf54ec61e47.png


38.在fruits表中,查询每一个供应商的水果价格的平均值。


select s_id,avg(f_price) as avg_price from fruits group by s_id;


6a70ccdde9db57de82412687b14de260.jpg


39.在fruits表中查找市场上价格最高的水果。


select max(f_price) from fruits;


fdd02e2b1dd2ffcfdf5e1add3ceb03f9.jpg


40.在fruits表中查找不同供应商提供的价格最高的水果。


select distinct s_id,max(f_price) minpri  from fruits group by s_id;


2644b97dc8c4c109a3bcf8f2df0e575c.jpg


41.在fruits表中查找f_name的最大值。


select max(f_name) from fruits;


22c9b884d3266833bc3a264a56cfc996.jpg


42.在fruits表中查找市场上价格最低的水果。


select min(f_name) from fruits;


fd47f8f82bca58b998bb2ea259d7d4a4.jpg


43.在fruits表中查找不同供应商提供的价格最低的水果。


select distinct s_id,min(f_price) minpri  from fruits group by s_id;


f94cb8413ef60be629742aff51891b5d.jpg


注意:where 子句和 having 子句都具有按照条件筛选数据的功能,两者之间的区别主要有:


where 子句再进行分组操作前用来选择记录,而having 子句在进行分组操作之后通过过滤来选择分组;


having 子句中的每个字段必须包含在select 关键字后的字段列表中;


having 子句可以包含聚合函数,但是where 子句不能。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库子查询练习——EXISTS(存在)
MySQL数据库子查询练习——EXISTS(存在)
58 1
|
5月前
|
关系型数据库 MySQL 数据挖掘
MySQL窗口函数详解(概念+练习+实战)
MySQL窗口函数详解(概念+练习+实战)
1056 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列15、电子邮件管理系统
MySQL数据库基础练习系列15、电子邮件管理系统
43 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列14、博客后台管理系统
MySQL数据库基础练习系列14、博客后台管理系统
43 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列13、用户注册与登录系统
MySQL数据库基础练习系列13、用户注册与登录系统
42 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列12、论坛管理系统
MySQL数据库基础练习系列12、论坛管理系统
45 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列11、新闻发布系统
MySQL数据库基础练习系列11、新闻发布系统
36 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列10、访客登记系统
MySQL数据库基础练习系列10、访客登记系统
51 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列9、在线投票系统
MySQL数据库基础练习系列9、在线投票系统
34 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列8、成绩录入与分析系统
MySQL数据库基础练习系列8、成绩录入与分析系统
33 1