一、高级查询
数据库主要用于对数据进行存储,更新、删除、查询操作curd。其中最重要的就是查询。
select 【all | distinct】 字段列表 |*| 字段名 【as】 别名 from 数据源 【as】 表别名 【where子句】【group by子句】【order by子句】【having子句】【limit子句】
1、select选项
【all | distinct】
说明:
all:默认在显示结果中包含重复的数据
distinct:在显示结果中去掉重复的数据
212.png

213.png

214.png
2、字段别名
在进行数据查询时,我们可以对查询出来的字段名,在显示时设置一个别名
215.png

216.png

3、数据源
所谓的数据源就是数据的来源
数据源可以分为单数据源,多数据源、子查询数据源
单表数据源:数据只来源于一个表
多表数据源:数据的来源来源于多个表
说明:首先新建两个表,班级表和学生表
217.png

218.png

219.png

参考教程截图如下,多表数据源结果组成(笛卡尔积形式)
220.png

说明:
多表数据源产生的结果是一个笛卡尔积
笛卡尔积的形势是两个字段数相加,记录数相乘。
笛卡尔积没有实际意义,但是mysql中所有的连接查询都是以笛卡尔积形式作为基础的。

子查询数据源:
from后数据的来源是另一个select语句
说明:表中的数据是存储在硬盘的一个文件中,而查询的结果作为一个表,是一个临时的表,并不像班级学生表一样在文件中,而是在内存中临时存在,当查询结束后,查询的结果的表不会保存在内存中,也不会保存在硬盘中,会消失。
221.png
4、表别名
在mysql使用中,也可以给表设置一个班表别名
如:select * from student as stu;

222.png

5、where子句
【where子句】【group by子句】【order by子句】【having子句】【limit子句】成为五子句
这些可以随意组合,但是组合的顺序必须按照语法书写顺序。
以goods表中 select * from goods where brand='华为';为例:(参考视频截图,了解即可)

223.png
6、group by 子句
语法:
select * from 表名 group by 字段1,字段2
作用:group by是对where子句得到的结果进行分组统计。
224.png

原理:资料内容进行分析group by(了解)
225.png

226.png

提示:
如果省略group by 表示,相当于所有的记录为一个大组,但是要把所有的记录都返回。