select 列名1,列名2,...
from 数据表名
[where 条件]
[group by 列名 [having 条件]]
[order by 列名 [asc|desc]]
[limit 起始位置,返回数量]
1、select * from 数据表名:查询所有数据,星号(*)代表所有字段。
2、select 列名1,列名2,列名3,... from 数据表名:查询所有数据的指定字段。
3、where 条件:查询符合条件的所有记录。
3.1、条件表达式:=(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、like(字符串模糊查询)。
3.1.1、=(等于)、!=(不等于)。
3.1.2、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
3.1.3、like(字符串模糊查询):表达式中的通配符(%)代表一串字符。
3.2、逻辑表达式:and(与)、or(或)、not(非)。
3.2.1、and(与):and两边的表达式都成立时最终结果成立,否则不成立。
3.2.2、or(或):or两边的表达式都有一个成立时最终结果成立,否则不成立。
3.2.3、not(非):not是对后面表达式的否定,后面表达式成立时最终结果不成立,反之后面表达式不成立时最终结果成立。
4、order by 列名 [asc|desc]:对返回结果按指定字段排序,asc为升序,desc为降序,默认为升序。
5、limit 起始位置,返回数量:返回从起始位置开始的指定数量的记录,起始位置从0开始。
6、group by 列名 [having 条件]:按指定字段进行分组查询,通常用于分组统计,最终结果可使用having进行条件过滤。
6.1、分组查询:按字段值进行分组。
6.2、条件过滤:对分组结果进行过滤输出。
select 列名1,列名2,...
from 数据表1
[inner | left | right] join
数据表2
on 连接条件
1、示例表格。
1.1、用户表user,其中字段rid为外键,引用角色表role的主键rid。
1.2、角色表role,rid为自增主键。
2、连接查询。
2.1、内连接:一个表中的主键(外键)值与另一个表的外键(主键)值有对应关系时才出现在最终的查询结果中。
2.1.1、select 列名1,列名2,... from 数据表1,数据表2 where 连接条件:隐式内连接。
2.1.2、select 列名1,列名2,... from 数据表1 [inner] join 数据表2 where 连接条件:显式内连接。
2.2、外连接:一个表中的主键(外键)值与另一个表的外键(主键)值没有对应关系时使用空值null填充。
2.2.1、select 列名1,列名2,... from 数据表1 left join 数据表2 where 连接条件:左连接,左表(数据表1)中的所有记录都会出现在查询结果中。
2.3、select 列名1,列名2,... from 数据表1 right join 数据表2 where 连接条件:右连接,右表(数据表2)中的所有记录都会出现在查询结果中。