操作DB ~~对数据的增删改查!!sql语句 (二)

group by :就是将数据以某个字段的值为“依据”,分到不同的“组别”里。通常都只进行一个字段的分组。

    group  by  字段1  排序方式1,字段2 排序方式2.....

having子句
这里写图片描述
总结:
1)group by 分组可能会丢失数据,比如按某个电器的名字分组的时候,相同电器只会显示一个分组,不会显示多个
2)默认的排序方式是正序,如果要改为倒序加 desc
这里写图片描述
这里写图片描述


3)where是针对表的字段的值进行“条件判断”
having是只针对groupby之后的“组”数据进行条件判断,即
其不能使用:字段名>10
但可以使用:count(字段名)>10, 或 max(price) > 2000, 但如果字段是分组依据,也可以。
4)当然,通常也可以使用select中的有效的字段别名,比如:
select count(*) as f1 , max(f1) as f2 from tab1 group by f3 having f1 > 5 and f2 < 1000;

这里写图片描述
这里写图片描述

聚合函数

这里写图片描述

orderby子句:对前面取得的数据来指定按某个字段的大小进行排列(排序)
排序只有2种方式:
正序: ASC(默认值),可以省略
倒序: DESC

    order  by  排序字段1  [排序方式],  排序字段2  [排序方式], .....

limit子句:表示将前面取得的数据并前面排好之后(如果有),对之指定取得“局部连续的若干条”数据。
起始行号start:第一行的行号为0, 可以省略,则为默认行号(0)。
要取得的行数:如果结果集中从指定的行号开始到最后没有这么多行,则就只取到最后。

    limit   [起始行号start], 要取出的行数num
  • 重要 :
    此子句非常有用——主要用于网页上最常见的一个需求(现象):分页。
分页原理:
分页的前提:人为指定每页显示的条数,$pageSize = 3;
显示(取得)第1页数据:select * from 表名 limit  0,  $pageSize;
显示(取得)第2页数据:select * from 表名 limit  3,  $pageSize;
显示(取得)第3页数据:select * from 表名 limit  6,  $pageSize;
.......
显示(取得)第n页数据:select * from 表名 limit  (n-1)*$pageSize,  $pageSize;

希望对大家有帮助!!

posted @ 2016-11-02 09:45  小郑6  阅读(108)  评论(0编辑  收藏  举报