数据库基础 (六)单表查询进阶

       通过前面的多篇博文,我们已经可以进行对数据库的基本操作了,但是数据库是远远不止这些的,接下来我们将会进入更深层次的数据库学习,勤学苦练才能有所得。

      下面将介绍数据库的重要查询方式

              1.排序查询

                      对查询结构进行排序

                     关键字:order by   字段名   [ASC|DESC]

                        ASC:升序    从小到大 (默认的)

                       DESC:降序  从大到小

      我们还是以上篇文章的  commodity 表为例进行查询   

#我们对表中的cname(商品名称)和cprice(商品价格)进行查询并按cprice(商品价格)大小进行排序
#按商品价格小到大顺序
SELECT cname,cprice FROM commodity ORDER BY cprice ASC;
#按商品价格大到小顺序
SELECT cname,cprice FROM commodity ORDER BY cprice DESC;
#查询所有商品按价格从小到大排序
SELECT * FROM commodity ORDER BY cprice ASC;
#查询所有商品信息,在价格(降序)的基础上 ,以cid排序(降序)
-- 在此查询中 我们是以价格为主进行查询,当价格相同时我们才会以cid对价格相同的商品进行降序查询
SELECT *FROM commodity ORDER BY cprice DESC,cid DESC; 

               2.聚合查询

                           以前的查询都是横向查询,而聚合查询是纵向个数查询。

扫描二维码关注公众号,回复: 5924909 查看本文章

                                           聚合查询的特点:查询到的结构是 单一值 

                           聚合函数

                                  count:求记录数的聚合函数,count函数会自动忽略空值

                                   以下四个常用于数值查询:

                                             max:最大值

                                             min:最小值

                                             avg:平均值

                                              sun:总和 

                          我们以代码为例进行学习  

#查询所有商品信息
SELECT COUNT(*) FROM commodity;
#以ctype(商品类型)进行聚合查询
SELECT COUNT(ctype) FROM commodity;
#查询所有商品价格的最大值
SELECT MAX(cprice) FROM commodity;
#查询所有商品价格的最小值
SELECT MIN(cprice) FROM commodity;
#查询所有商品最大值,最小值,平均值,总和
SELECT MAX(cprice) AS 最大值,MIN(cprice)  最小值,AVG(cprice)  平均值,SUM(cprice)  总和  FROM commodity;

                 

                 3.分组查询

                                把查询分为几个组

                                       关键字:group by 字段

                                       先分组,再查询。具体查询结果数,取决能分多少组。

                                       如果分组后还有需要条件判断 那么我们使用 having 关键字

                                  where 和 having之间的区别:

                                          where  写在基本查询后面 

                                          having  写在分组查询后面  

                                   where 后面不能写 count sum等聚合函数

                                   而having后面能够写

                   如下实例

#查询所有以ctype分组后的价格总和
SELECT SUM(cprice) AS 以stype分组后的价格总和  FROM commodity GROUP BY ctype; 

#统计商品总数
SELECT COUNT(*) FROM commodity;
#按照商品类型进行分组
SELECT COUNT(*)FROM commodity GROUP BY ctype; 
#统计各个类型商品的个数,且显示个数大于1的
SELECT COUNT(*) 个数 FROM commodity GROUP BY ctype HAVING 个数>1;

                    4.分页查询

                                只查询记录中的一部分

                                 关键字:limit  数值1(查询下标 从零开始),数值2(需要查询的记录数) 

#查询表中前5条数据
SELECT * FROM commodity LIMIT 0,5; 

#查询第6条后的2条数据
SELECT *FROM commodity  LIMIT 6,2;  

猜你喜欢

转载自www.cnblogs.com/G1314520/p/10725188.html