1. 查询简介
1.1 什么是查询
1.2 查询机制简介
*当查询条件为主键时,查询机制是索引机制(快速定位),否则会进行全表扫描,筛选符合条件的内容
2.查询基础语法
2.1 演示示例表
2.1.1 表1——student
2.1.2 表2——result
2.1.3 表3——subject
2.2 查询所有行与列
SELECT * FROM 表名;
2.3 查询部分列
SELECT 列名1,列名2... FROM 表名;
2.4 查询部分行
SELECT * FROM 表名 WHERE 条件表达式;
2.5 一般查询语法,加入排序规则
SELECT <列名|表达式|函数|常量>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC(默认升序)或DESC(降序)]];
2.6 加入列别名
使用 AS 列别名 对列名进行别名的指定
3.函数
3.1 常用聚合函数
3.1.2 平均值AVG()
关键字 GROUP BY 表示分组
3.1.3 某字段行数COUNT()
3.1.4 某字段最大值MAX()与最小值MIN()
3.1.5 某字段和 SUM()
3.2 常用字符串函数
3.2.1 字符串连接 CONCAT()
可以连接多个字符串
3.2.2 字符串替换INSERT()
四个参数:
参数1 被修改的字符串
参数2 被修改的起始位置
参数3 被修改部分的长度
参数4 替换的新字符串
3.2.3 LOWER()转小写与UPPER()转大写
(4)字符串截取 SUBSTRING()
三个参数:
参数1 被截取的字符串
参数2 截取的起始位置
参数3 截取的长度
3.3 常用时间函数
补充的两个函数
(1)计算相隔天数 DATEDIFF(date1,date2)
(2)计算加上指定天数后的日期 ADDDATE(date,n)
3.4 常用数学函数
4.LIMIT
4.1 LIMIT语法结构
4.2 LIMIT 单参数
4.3 LIMIT 双参数
这个函数初始位置默认是从0开始的
5.子查询
5.1 子查询概述
定义:子查询是一个嵌套在SELECT、INSERT、UPDATE 、DELETE 语句或其他子查询中的查询
语法:SELECT … FROM 表名 WHERE 字段名 比较运算符 (子查询);
注意:①将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个②先执行子查询,返回所有来自子查询的结果,再执行外围的父查询,返回查询的最终结果
5.2 示例
6.多表查询
6.1 分组查询
6.1.1 分组概述
分组查询定义:根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表
分组查询语法:SELECT xxx FROM 表名 GROUP BY xxx;
6.1.2 分组示例
示例1——单分组
示例2——多分组
6.1.3 分组筛选
定义:
WHERE子句——用来筛选 FROM 子句中指定的操作所产生的行
GROUP BY子句——用来分组 WHERE 子句的输出
HAVING子句——用来从分组的结果中筛选行
6.2 多表关联查询
6.2.1 多表关联查询种类
内连接(INNER JOIN)
左外连接(LEFT JOIN)
右外连接(RIGHT JOIN)
自连接(SELF JOIN)
补充:使用 表名.字段名 表示当多个表含有相同字段时需要表明选中哪个表的该字段
6.2.2 内连接
定义:使用比较运算符根据每个表的通用列中的值匹配两个表中的行(双向匹配,排除不匹配的项目)
语法:SELECT xxx FROM 表A INNER JOIN 表B ON 表达式;
示例:
6.2.3 外连接
左外连接:根据左表的记录,在被连接的右表中找出符合条件的记录与之匹配,如果找不到与左表匹配的,用null表示
右外连接:右外连接的原理与左外连接相同,颠倒两表的顺序即可(一般只使用左外连接即可)
示例:
6.2.4 自连接
原理与内连接类似,只不过是将表自己的一个字段与另一个字段进行匹配,此时需要使用AS来对自身不同的表副本进行标记。
示例:
表categories