1. MySQL的语法:
2. MySQL语法的定义顺序:
(1) 指定查询的字段(2) 指定是否去重(3) 指定表名(4) 指定联表方式(5) 指定联表条件(6) 指定判断条件(7) 指定分组字段(8) 指定分组后的过滤条件(9) 指定排序方式(10) 指定分页显示方式
3. MySQL语法的执行数序:
(1) 先找到查询的左表(2) 指定左表和右表联表的条件(3) 找到联表的右表生成笛卡尔积临时表(4) 根据判断条件找出符合条件的数据(5) 把结果按照指定的字段进行分组(6) 通过分组再次过滤出符合条件的数据(7) 执行查询(8) 数据去重(9) 按照正/倒序进行排序(10) 限制显示条数
4. select普通查询
简单查询:
去重查询:
四则混合运算查询:
concat()关键字查询(内置函数拼接):
concat_ws()关键字查询(内置函数指定分隔符拼接):
查询字段和表的别名(as):
5. where判断条件
比较运算符查询('=','!=','','>','=','
逻辑运算符查询('not','and','or'):
位运算符查询('in','not in'):
区间范围查询('between...and...'):
模糊匹配查询('like'):'%'代表任意字符,'_'代表任意一个字符
正则表达式查询('regexp'):
6. group by 分组查询
分组后如果查询非分组字段默认显示组内的第一条数据(无意义)修改sql模式(set global sql_mode='ONLY_FULL_GROUP_BY';)之后,坚持查询非分组字段会报错分组之后默认只能查找到分组字段的数据,也可以使用聚合函数得到其他字段的数据
常用的聚合函数:max():求最大值min():求最小值sum():求和avg():求平均值count():统计数量(建议使用count(*)或使用count(1)进行统计,一般是按照字段的主键)
group_concat():查看组内的数据
7. having过滤条件
having在group by之后进行过滤分组后的条件having只能对分组字段进行过滤,无法对非分组字段过滤对非分组条件进行过滤,需要使用聚合函数
8. order by排序
按照单列排序:
按照多列排序(先按照字段1排序,如果仍有重复的数据就按照字段2排序):
9. limit分页
开始条数从0开始开始条数不指定默认从0开始查询条数代表限制每页显示的条数
10. 多表联查
多表联查需要使用join联表,使用on指定联表条件,如果不指定联表条件,会产生交叉连接,生成笛卡尔积连接分为内链接和外连接
内连接(inner join):显示左表和右表共同的数据
外连接分为左外连接、右外连接和全外连接
右外连接(right join):优先显示右表的数据,左表不存在的使用NULL填充左外连接(left join):优先显示左表的数据,右表不存在的使用NULL填充
MySQL默认不支持全外连接,可以使用union关键字进行关联
union all:连接左表和右表的记录,不会去重,会显示所有数据,没有数据的使用NULL填充union:连接左表和右表的记录,然后进行去重
子查询:把一个查询语句的结果当作另外一个查询语句的条件
exists关键字子查询:一个查询语句的返回布尔值的结果(True/False),条件为True运行另外一个查询语句,如果为False则不运行,not exists与exists用法相反
领取专属 10元无门槛券
私享最新 技术干货