mysql查

  select   [all | distinct]   字段或表达式列表 [from子句]    [where子句]    [group by子句]    [having子句]    [order by子句]    [limit子句]

解释说明:

  查的字段可以自定义一个名字,比如select sno as s,这个s就代表了查到的sno字段

  [all | distinct]

  用于设定所select出来的数据是否允许出现重复行(完全相同的数据行)

  all:允许出现——默认不写就是All(允许的)。

  distinct:不允许出现——就是所谓的“消除重复行”。

  from子句

  就是指定数据的来源,其实就是“表”,可以是一个表名,也可以是多个表——多表查询了

   

  where子句

  一个概念:where子句,相当于phpjs中的if条件语句:其最终结果就是布尔值(true/false),

  也可以说是限制在具体那个值

  phpif($n  % 4 == 0 && $n % 100 != 0  || $n % 400 == 0 ){}

  则:

  where  true,  where  1;    where 1=1;  都表示true

  where  false,  where  0;    where 1<>1;  都表示false

  比较运算符: >   >=   <    <=   =(等于)   <>(不等于)   

  逻辑运算符: and(与)  or(或)   not(非)

  in语法:XX in (1,2,3,4,5)        XX not in ()  // in 和 = 一样

  Xx = 1 or  xx = 2 or xx =3...

  XX  in (1,值2.......)

  含义:XX等于其中所列出的任何一个值都算成立,相当于:

  XX = 1  or XX = 2  or  XX = 2

  注意:其中的值1通常是“直接值”,但也可以是后面要学习的“查询结果值”

  like语法(模糊查找)

  语法形式: XX like  ‘要查找字符’;

  说明:

  1like语法(模糊查找)用于对字符类型的字段进行字符匹配查找

  2,要查找的字符中,有2个特殊含义的字符:

    2.1:  %   其含义是:代表任意个数的任意字符

    2.2_ 代表一个字符

  group  by  分组子句

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

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

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

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

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

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

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

  having子句

  和where原理一样,但是是专门给group by服务的条件,只能限制分组之后的数据

  Order by子句

  order  by  排序字段1  [排序方式],  排序字段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:当前页码 $pageSize:每页显示多少条

  显示(取得)第$n页数据:select * from 表名 limit  ($n-1)*$pageSize,  $pageSize;

  $n 代表页码 123

  $pageSize 代表每一页显示的条数

  连接查询

  from 1  [连接方式]  join 2  [on 连接条件]

  [外]连接:以左边那张表为主:from  1  left  [outer]  join   2   on  连接条件

  [外]连接:以左边那张表为主:from  1  right  [outer]  join   2   on  连接条件

  子查询

  selelct   字段或表达式或(子查询1)   [as 别名]   from   表名或(子查询2)   where   字段或表达式或(子查询3) 的条件判断

  比如:select * from student where sno=(select sno from student sname='张三')

  注意:

  每个位置所放置的子查询结果,应该符合该位置的数据需求。

  通常:

  子查询1应该是一个“数据结果”。

  子查询2可以是“任意结果”,此位置的查询结果,通常作为数据源,可以给一个别名

  子查询3可以是一个数据或一列数据甚至是一行数据

  联合查询

  select 语句1

  union  [ALL | DISTINCT]

  select 语句2

原文地址:https://www.cnblogs.com/zyfeng/p/10700582.html