mysqlwhere子句以及排序03

1.where 子句 

  后面可以跟

    and or

    like

    > <   <=  >=   !=  <>

    between and

    is null   is not null

    in()

2.模糊查询like

  %:表示0个,一个,多个

  _:仅代替一个字符

3.order by  排序,写在where子句后面

  asc :升序,默认

  desc :降序

  如果order by 后面跟着两个属性,那么先根据第一个属性进行排序,第一个排序相同的,再根据第二个属性进行排序

4.分页  limit

  mysql有limit关键字,oracle没有,要手动写.

  limit Num1,num2: 

    num1:从第几条数据开始显示

    num2:显示多少条数据

  eg:一页显示八条,第三页怎么显示:   limit  16,8  、

5.常用函数

-concat 字符串连接

-日期函数

  -now()

  -curdate()

  -date():获取表达式日期部分

  -time():获取表达式时间部分

6.聚合函数

  -sum(列): 求总和

  -avg(列):求平均值

  -count(*/1):求数据个数

  -min():最小值

  -max():最大值

select 查询语句的执行顺序

  1.from关键字:先找数据源

  2.where : 根据条件进行数据筛选,确定返回的条目数量

  3.group by : 开始分组,将数据划分成多个组

  4.聚合函数运算:因此如果把聚合函数放在where子句中,就会报错

  5.having子句筛选分组条件:因此聚合函数可以放在having子句中

  6.计算所有表达式:

  7.确定select后面的字段:

  8.使用order by 进行排序展示

  group by 使用 having子句过滤条件

    在sql语句中添加having子句的原因,是因为where关键字无法与聚合函数一起使用

    where条件用于过滤行数,having条件用于过滤分组数量 

    (where、group by 、having之间的执行顺序)执行顺序:首先执行where,然后执行group by ,根据一个或者多个列进行分组,之后执行having,

     对分组以后的数据再次过滤,最后执行order by .

  总结:having子句经常和聚合函数一起使用,如果没有使用到聚合函数,要注意是否可以写在where中,如果可以写在where中,那么优先使用where先过滤。免得第三第四部做无效运算

    mysql子查询

      1.子查询是指,在DML语句中,嵌套了另外一个DQL语句

      2.某些DDL语句中也可以使用嵌套,例如create

      3.子查询语句,称为内部查询,而包含子查询的查询语句,称为外部查询

      4.常用的子查询会出现两种

        -外部查询的where子句使用子查询

        -子查询在from后面,用子查询的结果充当一张表

      5.子查询可以在表达式的任何地方出现,但是必须在括号中关闭

      6.子查询可以嵌套在另外一个子查询中

    表连接:

      1.笛卡儿积

      当多表相连时,如果没有写关联条件,返回的结果就是这几张表条目数的乘积,这个乘积就叫过笛卡儿积

      多数情况下,笛卡儿积是毫无意义且浪费资源的。要尽量避免

https://blog.csdn.net/seanb/article/details/51594234

    

      

原文地址:https://www.cnblogs.com/exceptionblog/p/8742032.html