知识点1:多表查询之as语法
-- 1. 给表起别名
-- 作用 : 可以让我们使用表时,用更加简便的表名调用表中的字段
-- 关键字 : as
-- 格式 : 在from 后的表名 后添加 as 别名 表名 as 别名
-- 注意1: 给表起别名后, 原始的表名将无法继续使用
-- 注意2: 给表起的别名只在当前sql语句中生效.遇到; 这个别名就失效了.
-- 2. 给字段起别名
-- 作用 : 我们输出该数据时, 显示的字段名称为我们修改过的名称
-- 关键字 : as
-- 格式 : 在select 之后的字段名 添加 as 列名 as 别名
-- 注意1: 可以使用中文进行别名的赋值么? 可以,但是永远不要用, 因为可能由于系统环境, 或软件版本原因无法执行代码.
-- 注意2: 在 分组, 排序, 时可以使用别名
-- 注意3: 在where 条件语句中, 不能使用字段别名
知识点2:多表查询之连接关键字的省略
-- 1. inner join 中的inner 关键字可以省略
-- 2. left outer join 中的 outer关键字可以省略
-- 3. right outer join 中的 outer关键字可以省略
-- 4. 所有给表和字段起别名时书写的as关键字都可以省略
-- 省略后, 效果不变
知识点3:多表查询之子查询
子查询: 在一个select语句中,嵌套另外一个select语句, 内部的查询语句就叫做子查询.
格式: select 列 from 表 (select........)
-- 子查询,就是在一个查询语句中,嵌套另一个查询语句
-- 子查询的结果,可以给外部查询语句使用 ----- 子查询语句先执行
-- 子查询是一个完整的查询语句,如果子查询异常,整个查询语句将报错.-- 子查询可以作为一个值出现
-- 需求1: 获取所有商品中价格最高的商品的全部信息
-- 步骤1: 获取所有商品中的最高价格
SELECT
MAX(price)
FROM
products;-- 步骤2: 获取所有商品中 价格等于5000 的商品信息
SELECT *
FROM
products
WHERE
price = 5000;-- 步骤3: 将第一步与第二步的内容结合, 使第一步的sql语句为第二步的子查询语句
SELECT *
FROM
products
WHERE
price = (SELECT
MAX(price)
FROM
products);
sql语句的执行顺序
SELECT
列1,
列2..... from 表1 (LEFT/RIGHT) JOIN 表2
ON 表1.字段1 = 表2.字段2
WHERE
筛选条件
GROUP BY 分组字段
HAVING
分组后筛选条件
ORDER BY 排序
LIMIT 起始索引, 条目数;
结论: 在group by 之前执行的关键字中,可以使用所有字段, 而在group by 之后的字段只能使用分组字段和聚合函数.
今天的学习笔记就到这里 欢迎大家点赞评论 互相交流
祝大家在程序员的道路上越走越远