我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL基本查询示例(2)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL基本查询示例(2)

注:本博文基于上一篇博文中的表进行查询,上篇博文:MySQL基本查询示例(1)。

1、查询fruits表中每个s_id对应的所有f_name值

<!--以组来进行紧凑-->
mysql> select s_id,group_concat(f_name) as name from fruits group by s_id having count(f_name) > 1;

返回结果如下:

MySQL基本查询示例(2)

2、统计相同s_id值的行有多少?

mysql> select s_id,count(*) as total
    -> from fruits
    -> group by s_id with rollup;

MySQL基本查询示例(2)

注:with rollup的作用是将s_id分组后的和再进行相加,统计出来的总数,也就是16。

3、创建一个新表并插入数据

<!--创建新表-->
mysql> create table orderitems
    -> (
    -> o_num int not null,
    -> o_item int not null,
    -> f_id char(10) not null,
    -> quantity int not null,
    -> item_price decimal(8,2) not null,
    -> primary key(o_num,o_item)
    -> );
<!--插入数据-->
mysql> insert into orderitems(o_num,o_item,f_id,quantity,item_price)
    -> values(30001,1,'a1',10,'5.2'),
    -> (30001,2,'b2',3,'7.6'),
    -> (30001,3,'bs1',5,'11.2'),
    -> (30001,4,'bs2',15,'9.2'),
    -> (30002,1,'b3',2,'20.0'),
    -> (30003,1,'c0',100,10),
    -> (30004,1,'o2',50,'2.50'),
    -> (30005,1,'c0',5,'10'),
    -> (30005,2,'b1',10,'8.99'),
    -> (30005,3,'a2',10,'2.2'),
    -> (30005,4,'m1',5,'14.99');

查看表中的数据如下:

MySQL基本查询示例(2)

4、查询同一个o_num列的quantity(数量)和item_price(价格)相乘结果大于100的行

mysql> select o_num,SUM(quantity*item_price) as total from orderitems
    -> group by o_num having total > 100 order by total;

5、limit——限制返回的行数

限制1:
<!--只显示表中的前四行-->
mysql> select * from fruits limit 4;

返回结果如下:

MySQL基本查询示例(2)

限制2:
<!--从第四行开始,显示后面3行-->
mysql> select * from fruits limit 4,3;

返回结果如下:

MySQL基本查询示例(2)

6、查询每个o_num对应的f_id有几个

mysql> select o_num,count(f_id) as items_total 
    -> from orderitems
    -> group by o_num;

返回的结果如下:
MySQL基本查询示例(2)

7、查询o_num为30005的quantity(数量)有多少

mysql> select sum(quantity) as items_total
    -> from orderitems
    -> where o_num = 30005;

返回的结果如下:

MySQL基本查询示例(2)

8、查询s_id为103的f_price的平均数是多少(s_id的平均价格是多少)

mysql> select avg(f_price) as avg_price from fruitss where s_id = 103;

返回的结果如下:

MySQL基本查询示例(2)

9、查询每个s_id对应的平均价格(f_price)是多少?

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

返回的结果如下:

MySQL基本查询示例(2)

10、查询每个s_id中f_price值最大的行是哪个?

mysql> select s_id, max(f_price) as max_price from fruits group by s_id;

返回的结果如下:

MySQL基本查询示例(2)

同理,若要查看最小的行,只需要将max换为min即可。

11、查询每个f_price值最大的值及其所对应的s_id、f_name。

mysql> select s_id,f_price,f_name from fruits
    -> where f_price in(select max(f_price) from fruits group by s_id);

返回的结果如下:

MySQL基本查询示例(2)

12、再次创建所需表并插入数据

<!--创建表-->
mysql> create table suppliers
    -> (
    -> s_id int not null auto_increment,
    -> s_name char(50) not null,
    -> s_city char(50) null,
    -> s_zip char(10) null,
    -> s_call char(50) not null,
    -> primary key(s_id)
    -> );
mysql> create table orders
    -> (
    -> o_num int not null auto_increment,
    -> o_date datetime not null,
    -> c_id int not null,
    -> primary key(o_num)
    -> );
<!--插入数据-->
mysql> insert into suppliers(s_id,s_name,s_city,s_zip,s_call) 
    -> values(101,'FastFruit Inc.','tianjin','300000','48075'),
    -> (102,'LT Supplies','chongqing','400000','44333'),
    -> (103,'acme','shanghai','200000','90046'),
    -> (104,'fnk inc.','zhongshan','528437','11111'),
    -> (105,'good set','taivuang','030000','22222'),
    -> (106,'just eat ours','beijing','010','45678'),
    -> (107,'dk inc.','zhengzhou','450000','33332');
mysql> insert into orders(o_num,o_date,c_id)
    -> values(30001,'2008-09-01',10001),
    -> (30002,'2008-09-12',10003),
    -> (30003,'2008-09-30',10004),
    -> (30004,'2008-10-03',10005),
    -> (30005,'2008-10-08',10001);

13、表联接类型的概念

在进行接下来的查询,这里有必要说一下多表查询的相关概念。

1)内联接

内联接(inner join)是最常见的一种联接方式,只返回两个数据集合之间匹配关系的行,将位于两个互相交叉的数据集合中重叠部分以内的数据行联接起来。

内联接使用比较运算符进行表间某些列数据的比较操作,并列出这些表中与联接相匹配的数据行。

2)外联接

外联接(outer join)是对内联接的扩充,除了将两个数据集合中重复部分以内的数据行联接起来之外,还可以根据要求返回左侧或右侧表中非匹配的数据或全部的数据。

外联接还可以分为以下几种:

左外联接(left join或left outer join)的结果包括左表的所有行,如果左表的某一行在右表中没有匹配行,则右表返回空值,否则返回相应值。

右外联接(right join或right outer join)是左外联接的反向联接,将返回右表的所有行,如果右表的某一行在左表中没有匹配行,则左表返回空值,否则返回相应值。

全联接(full join 或full outer join)将返回左表和右表中的所有行,当某一行在另一个表中没有匹配行时,另一个表返回空值,否则返回相应值。

14、内联接查询,将两个表的指定列生成一个新表

mysql> select suppliers.s_id,s_name,f_name,f_price from fruits inner join suppliers on fruits.s_id = suppliers.s_id;

返回的结果如下:

MySQL基本查询示例(2)

15、左外联接查询示例

mysql> select customers.c_id,orders.o_num from customers 
    -> left outer join orders on customers.c_id = orders.c_id
    -> ;

返回结果如下:

MySQL基本查询示例(2)

16、内联接查询时指定其他条件

mysql> select customers.c_id,orders.o_num from customers 
    -> left outer join orders on customers.c_id = orders.c_id
    -> ;

返回结果如下:
MySQL基本查询示例(2)

———————— 本文至此结束,感谢阅读 ————————

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL基本查询示例(2)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql (2)-单表查询

简单查询查询一个字段:  select 字段名 from 表名;其中要注意:  select和from都是关键字。  字段名和表名都是标识符。强调:  对于SQL语句来说,是通用的,  所有的SQL语句以“;”结尾。  另外SQL语句不区分大小写,都行。实例:
mysql (2)-单表查询
2019-05-11

MySQL 子查询基本指南

mysql 子查询是高级 sql 查询的基本组成部分,支持嵌套数据检索以获得更精细的结果。这是帮助您入门的简要指南。子查询允许您以复杂的方式过滤数据。典型的用例是在 select 语句中:select a, b from table w
MySQL 子查询基本指南
2024-09-09

Elasticsearch基本查询及组合查询实例分析

这篇文章主要介绍“Elasticsearch基本查询及组合查询实例分析”,在日常操作中,相信很多人在Elasticsearch基本查询及组合查询实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Elast
2023-06-30

MySql中子查询内查询示例详解

西北望乡何处是,东南见月几回圆。 月亮又慢悠悠的挂上了天空,趁着睡前梦呓,我就带领各位可爱的读者们探索MySql最后的子查询部分。 说明:有些查询结果出来结果截图与题目要求不一样会出现多余的字段是为了方便展示结果的可读性。实际操作的读者可以
2022-05-25

基本 MySQL 查询:综合指南

作者:nirmalya mondal介绍mysql 是用于 web 应用程序和其他数据驱动应用程序的最流行的关系数据库管理系统 (rdbms) 之一。无论您是初学者还是想要提高 mysql 技能的人,了解基本查询都是至关重要的。本博客将引导
基本 MySQL 查询:综合指南
2024-08-24

mysql查询FIND_IN_SET REGEXP实践示例

这篇文章主要为大家介绍了mysql查询FIND_IN_SET REGEXP实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-19

ElasticSearch查询文档基本操作实例

这篇文章主要为大家介绍了ElasticSearch查询文档基本操作实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-02

mysql查询的基本语句是什么

mysql 的基本查询语句是 select,它用于从数据库表中检索数据。select 语法包括:select [distinct] 列名1, 列名2, ...from 表名where 条件having 分组条件[limit 限制行数]。My
mysql查询的基本语句是什么
2024-04-22

MySQL基础:基础查询

DQL语言:数据查询语言3.1 基础查询语法select 查询列表from 表名;特点查询列表可以是字段、常量、表达式、函数,也可以是多个查询结果是一个虚拟表示例1、查询单个字段select 字段名 from 表名;2、查询多个字段select 字段名,字段名
MySQL基础:基础查询
2016-06-13

编程热搜

目录