任务4.1:查询时选择列
1.查询表中所有数据(使用“ * ”号通配符查询所有记录)
语法:Select * from 表名;
2.查看表中指定字段数据
语法:Select 字段名1,字段名2,… from 表名;
3.字段取别名
字段名 [as] 字段别名
任务4.2:查询时选择行
1.查看表中指定字段数据
语法:Select 字段名1,字段名2,… from 表名 where 条件;
2.查看表中指定字段数据(查看在值1,值2,…里的字段数据)
语法:Select * from 表名 where 字段名 in (“值1”,“值2”,…);
3.where条件判断符
操作符 说明
= 等于
!= 不等于
< 小于
<= 小于或等于
> 大于
>= 大于或等于
between 在指定的两个值之间
4.查看表中指定字段数据(查看在值1和值2之间的字段数据)
语法:Select * from 表名 where 字段名 between “值1” and “值2”;
或 Select 字段名1,字段名2,……,字段名n from 表名 where 字段名 between “值1” and “值2”;
5.查看表中指定字段数据(查看为空的字段数据)
语法:Select * from 表名 where 字段名 is null;
6.查看表中指定字段数据(查看不为空的字段数据)
语法:Select * from 表名 where 字段名 is not null;
7.查询不同的值(去重)
语法:Select distinct 字段名 from 表名;
8.and(并且)连接条件
语法:select * from 表名 where 条件1 and 条件2;
9.or(或者)连接条件
语法:select * from 表名 where 条件1 or 条件2;
10.模糊查询(" % "代表任意长度的字符;" _ "代表任意单个字符)
语法:Select 字段名1,字段名2,……,字段名n from 表名 where 字段名 like 条件;
11.限制条件(两种)
语法:Select * from 表名 limit 行数;
语法:Select * from 表名 limit 偏移量,行数;
多条件联合查询:Select * from 表名 where 条件 order by 字段名 limit 条数;
任务4.3:查询结果排序
1.正序排序
语法:Select * from 表名 where 条件(可省略) order by 字段名;
语法:Select * from 表名 where 条件 order by 字段名 [asc];
2.倒序排序
语法:Select * from 表名 where 条件 order by 字段名 desc;
任务4.4:查询的分组与汇总
1.SQL聚集函数:
函数 作用
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值的总和
2.分组
group by 字段名 (注:分组可和所有的聚集函数一起使用)
group by 字段名 [having 条件]
3.复合条件查询顺序
select -> from -> join -> on ->where -> group by ->having ->order by ->limit
任务4.5:查询多表连接查询
1.交叉连接
语法:select * from 表名1 cross join 表名2;
2.内连接
语法:select * from 表名1 [inner] join 表名2 on 表名1.表1关系字段名 = 表名2.表2关系字段名;
3.多表连接查询
语法:select * from 表名1,表名2,…… ,where 表名1.关系字段 = 表名2.关系字段 [and 连接条件]
4.外连接(左连接、右连接)
左连接:select * from 表名1 left join 表名2 on 表名1.表1关系字段名 = 表名2.表2关系字段名;
右连接:select * from 表名1 right join 表名2 on 表名1.表1关系字段名 = 表名2.表2关系字段名;
5.为表取别名
select * from 表名 [as] 别名;
任务4.6:创建子查询
1.子查询:in
语法:select * from 表名 where 字段名 in [查询语句];
2.子查询:not in
语法:select * from 表名 where 字段名 not in [查询语句];
3.子查询:exists(存在)
语法:select * from 表名 where [not] exists [查询语句];
4.子查询:any(大于查询语句中的任意一个条件就执行)
语法:select * from 表名 where 字段名 >(或其他关系运算符) any (查询语句);
5.子查询:all(大于查询语句中的所有条件就执行)
语法:select * from 表名 where 字段名 >(或其他关系运算符) all (查询语句);
任务4.7:创建多表联合查询
语法:select 查询字段 from 表名 union [all] select 查询字段 from 表名;