基本查询格式:
select 查询列表
from 表名 别名
【连接方式】join 表2
on 连接条件
where 筛选条件
group by 分组列表
having 分组后筛选条件
order by 排序列表 【desc/asc(默认升序)】
limit 起始条目索引,条目数
每一次执行都会生成一个虚拟表,然后对这个虚拟表进行操作
执行顺序:
①from:调用指定的表
②join:与另一张表笛卡尔积
③on:根据连接条件筛选
④where:筛选
⑤group by:根据字段名分组
⑥having:分组后的筛选
⑦select:根据查询列表确定表的列
⑧order by:按排序条件排序
⑨limit:选择要查询的条目
各关键词使用要点:
select:查询列表可以是一个或多个字段、常量、表达式、函数,还可以是其他查询语句,*表示所有字段。
from :第一个执行的语句,后加表名。
join:①有内连接(inner)、左外连接(left outer)、右外连接(right outer)、全外连接(full outer)、交叉连接(cross,与笛卡尔积类似)。其中,inner和outer可以省略。
②内连接、全外链接、交叉连接时,表的顺序无影响;左外连接时左边是主表,右外连接是右边是主表。
③查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null。
④连接的表可以是其他查询语句生成的虚拟表。
on:只用于join后面确定连接条件。
where:①确定筛选条件,有简单条件运算符(> < = <> != >= <= <=>)、逻辑运算符(and、or、not),还有模糊查询。
②模糊查询:
like:一般搭配通配符使用,可以判断字符型或数值型
通配符:%任意多个字符,_任意单个字符
between and、in、is null /is not null。
③where不能用在group by 后面。
group by:将表中用于分组的字段名相同的合并。
having:放在group by后面的筛选条件。
order:按排序条件进行排序,支持 单个字段、多个字段、函数、表达式、别名,默认升序排序。
可与limit 合用来找最大值、最小值。
limit:用来确定查询的条目,用来分页,如果每页的条目数为size,要显示第page页数据,,则形如:limit (limit -1)*size,size。
起始查询条目索引的默认值为0。