数据查询
单表查询
select 字段名[,(字段名…)] from 表名;
字段别名
select 字段1 as 别名,字段2 别名,... from表名;
消除重复行
selectdistinct 字段名 from 表名;
条件查询
select 字段名… form 表名 where 条件;
运算符
比较运算符
- 1.= 等于
- 2.> 大于
- 3.< 小于
- 4.>=大于等于
- 5.<=小于等于
- 6.!= 或 <> 不等于
逻辑运算符
- 1.and 与
- 2.or 或
- 3.not 非
模糊查询
1.like
2.% 任意多个字符
3._ 一个任意字符
范围查询
- 1.in 非连续值
- 2.between-and连续值
空判断
- 1.is null 判断是否为空
- 2.is not null 判断是否不为空
排序
- 1.select 字段名… from 表名 order by 排序字段名排序方式 [,排序字段名 排序方式…];
- 2.asc 升序 ,默认排序方式
- 3.desc 降序
分页
- 1.select 字段名from 表名 limit 开始索引, 记录条数;
- 2.(page-1)*count, count
聚合函数
- 1.sum() 求和
- 2.avg() 求平均值
- 3.max() 求最大值
- 4.min() 求最小值
- 5.count()统计记录条数
- 6.group_concat() 拼接分组中的数据
- 7.聚合函数一般配合分组功能一起使用
分组
- 1.select分组的字段名,聚合函数... from 表名 groupby 分组字段名 having 分组后的条件;
- 2.查询显示的字段必须和分组的字段相同
- 3.分组一般配合聚合函数使用,做数据统计功能
- 4.分组后如果需要设置条件要使用 having 指定
多表查询
普通多表查询
select 表名.字段 ... from 表名1,表名2...
结果为笛卡尔积,无意义
表别名
select 表别名.字段名... from 表1 as 表1别名,表2 表2别名... [条件];
内连接
- 1.select 表名.字段名… from 表1 inner join 表2 on 表1.列运算符表2.列;
- 2.内连接默认不指定连接条件时,实际就是普通多表连接,结果为笛卡尔积
- 3.连接条件可以使用 where 指定,也可以使用 on 指定, 但建议使用 on
- 4.内连接指定连接条件取两表的交集
左连接
- 1.select 表名1.字段名… from 表1 leftjoin 表2 on 表1.列运算符表2.列;
- 2.连接条件只能使用 on 指定
- 3.连接结果以左表记录为准,连接右表中符合条件的记录,无符合记录连接NULL
右连接
- 1.select 表名1.字段名… from 表1 rightjoin 表2 on 表1.列运算符表2.列;
- 2.连接条件只能使用 on 指定
- 3.连接结果以右表记录为准,连接左表中符合条件的记录,无符合记录连接NULL
- 4.右连接可以使用左连接代替使用。只需要交换两个表的位置即可.
子查询
- 1.在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句
- 2.子查询语句是一个可以独立执行的查询语句
- 3.select *from 表1 where 条件运算符(select 查询)
子查询有三种:
- 1.标量子查询 ,子查询 返回结果 为单行单列的值
- 2.列级子查询 ,子查询 返回结果 为多行一列的值
- 3.行级子查询 ,子查询 返回结果 为一行多列的值
自连接(了解)
- 1.由于数据的特殊性,表示不同类型的数据保存到了同一张表中。
- 2.在查询数据时,需要做多表连接时,连接的多个表实际是同一张表,但是在表中取的数3.据是不同类型的数据