学习MySQL:九:常见查询示例

目录

一:目的

1、想知道::常见查询示例

二、参考

1、MySQL 8 的学习——7常见查询示例

三、操作

1、创建一个可供测试的表

2、查询一下 shop 表

3、列的最大值:查询最高的 article  编号

4、查询某列最大值的行

①方法一:

②方法二:

③方法三:使用特定于MySQL的LIMIT子句获取第一行

5、每组最大列数:找到每篇文章的最高价格。

6、保持某一列的分组最大值的行


一:目的

1、想知道::常见查询示例

 

二、参考

1、MySQL 8 的学习——7常见查询示例

https://blog.csdn.net/zjy_android_blog/article/details/81741916

①总结:good:很好,我操作就是按照作者的来进行练习的,

 

三、操作

1、创建一个可供测试的表

 CREATE TABLE shop(article int(4) unsigned zerofill default '0000' not null,
    -> dealer char(20) default '0000' not null,
    -> dealer char(20) default '0000' not null,\c
 CREATE TABLE shop(article int(4) unsigned zerofill default '0000' not null,
    -> dealer CHAR(20)        DEFAULT ''    NOT NULL,
    -> price  DOUBLE(16,2)    DEFAULT '0.00'NOT NULL,
    -> PRIMARY KEY(article,dealer));

 

 INSERT INTO shop VALUES
    -> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
    -> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);

 

2、查询一下 shop 表

SELECT *FROM shop;

 

3、列的最大值:查询最高的 article  编号

 

SELECT MAX(article) AS article FROM shop;

 

4、查询某列最大值的行

①方法一:

 

任务:查找最昂贵文章的编号,经销商和价格。

这可以通过子查询轻松完成:

 ##任务:查找最昂贵文章的编号,经销商和价格。
 ##这可以通过子查询轻松完成:

SELECT article ,dealer,price FROM shop WHERE price=(SELECT MAX(price) FROM shop);

 

②方法二:

查询某列最大值的行:其他解决方案是使用a LEFT JOIN或者按价格降序排序所有行,并使用特定于MySQL的LIMIT子句获取第一行:

SELECT s1.article ,s1.dealer,s1.price FROM shop s1 LEFT JOIN shop s2 ON s1.price<s2.price WHERE s2.article IS NULL;

 

③方法三:使用特定于MySQL的LIMIT子句获取第一行

 SELECT article,dealer,price FROM shop ORDER BY price DESC LIMIT 1;

 

5、每组最大列数:找到每篇文章的最高价格。

 

 SELECT article,MAX(price) AS price FROM shop GROUP BY article;

 

6、保持某一列的分组最大值的行

任务:对于每篇文章,找到价格最贵的经销商或经销商。

这个问题可以通过像这样的子查询来解决:

##对于每篇文章,找到价格最贵的经销商或经销商。
 ##这个问题可以通过像这样的子查询来解决:
SELECT article,dealer,price FROM shop s1 WHERE price=(SELECT MAX(s2.price)FROM shop s2 WHERE s1.article=s2.article);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章