zoukankan      html  css  js  c++  java
  • 数据库子句

    group  by  分组子句

    形式:

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

    通常都只进行一个字段的分组。

    含义:

    什么叫分组?就是将数据以某个字段的值为“依据”,分到不同的“组别”里。

    分组的结果通常:

    1,数据结果只能是“组”——没有数据本身的个体

    2,数据结果就可能“丢失”很多特性,比如没有性别,身高,姓名,等等。

    3,实际上,结果中通常只剩下“组”作为整体的信息:

    首先是该组的本身依据值

    另外,这几个可能的值:组内成员的个数,组内某些字段的最大值最小值平均值总和值

    其他字段,通常就不能用了

    4,如果是2个字段或以上分组,则其实是相当于对前一分组的组内,再进行后一依据的分组。

    上述说明的结果,其实是反映在select语句中,就是select的“取出项”(输出项)就基本只剩下以上信息了

    在分组查询中,基本都依赖于一下几个函数(聚合函数,统计函数):

    count(*):  统计一组中的数量,通常用“*”做参数

    max(字段名):获取该字段中在该组中的最大值。

    min(字段名):获取该字段中在该组中的最小值。

    sum(字段名):获取该字段中在该组中的总和。

    avg(字段名):获取该字段中在该组中的平均值。

    group_concat(字段名):获取该分组内的这个字段所有信息,每条逗号分隔

    having子句

    having子句其实概念跟where子句完全一样:

    where是针对表的字段的值进行“条件判断”

    having是只针对groupby之后的“组”数据进行条件判断,即

    其不能使用:字段名>10

    但可以使用:count(字段名)>10, 或  max(price) > 2000, 但如果字段是分组依据,也可以。

    当然,通常也可以使用select中的有效的字段别名,比如:

    select count(*) as f1 , max(f1) as f2  from tab1  group by f3 having f1 > 5 and  f2 < 1000;

    Order by子句

    形式:

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

    说明:

    对前面取得的数据(含from子句,where子句,group子句,having子句的所有结果)来指定按某个字段的大小进行排列(排序),排序只有2种方式:

    正序: ASC(默认值),可以省略

    倒序: DESC

    如果指定多个字段排序(虽然不常见),则其含义是,在前一个字段排序中相同的那些数据里,再按后一字段的大小进行指定的排序。

    limit子句

    形式:

    limit   [起始行号start], 要取出的行数num

    说明:

    表示将前面取得的数据并前面排好之后(如果有),对之指定取得“局部连续的若干条”数据。

    起始行号start:第一行的行号为0, 可以省略,则为默认行号(0)。

    要取得的行数:如果结果集中从指定的行号开始到最后没有这么多行,则就只取到最后。

    此子句非常有用——主要用于网页上最常见的一个需求(现象):分页。

    分页原理:

    分页的前提:人为指定每页显示的条数,$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;

  • 相关阅读:
    设计模式笔记(22)状态模式(行为型)
    设计模式笔记(16)解释器模式(行为型)
    Lable和Literal控件的使用和区别
    设计模式笔记(15)命令模式(行为型)
    设计模式笔记(25)总结
    在JS方法中返回多个值的三种方法
    SQL 左外连接,右外连接,全连接,内连接
    面试集萃
    ASP.NET MVC如何使用Ajax的辅助方法
    ASP.NET MVC+EF框架+EasyUI实现权限管理(附源码)
  • 原文地址:https://www.cnblogs.com/hjc1234/p/9485288.html
Copyright © 2011-2022 走看看