zhaoyqiu的数据分析进阶之路2.0

D4-查询2

2020-06-28  本文已影响0人  喝奶茶不加奶茶

当数据量过大时,在一页中查看数据是一件非常麻烦的事情

4.1 分页

语法:limit start, count

限制查询出来的数据个数
查询前5个数据


每页显示2个,第1个页面


每页显示2个,第2个页面


每页显示2个,第3个页面


每页显示2个,第4个页面


start=(页数-1)每页的个数*

每页显示2个,显示第4页的信息, 按照年龄从大到小排序
错误写法1:

select * from students limit 6,2 order by age asc;

正确写法:
注意:limit 放在最后面

错误的写法2:

select * from students limit 2*(6-1),2;

4.2 连接查询

当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回。mysql支持三种类型的连接查询,分别为:

4.2.1 内连接

语法:
inner join ... on
select ... from 表A inner join 表B;

查询对应班级的学生以及班级信息


按照要求显示姓名、班级

给数据表起名字


查询 有能够对应班级的学生以及班级信息,显示学生的所有信息 students.*,只显示班级名称 classes.name.


在以上的查询中,将班级姓名显示在第1列


查询 有能够对应班级的学生以及班级信息, 按照班级进行排序


当时同一个班级的时候,按照学生的id进行从小到大排序


4.2.2 左关联

left join
查询每位学生对应的班级信息


查询没有对应班级信息的学生


不建议使用 select * from students left join classes on students.cls_id=classes.id having classes.id is null;
注意:建议having的筛选条件多用在group by中的子表筛选,其余地方建议用where进行筛选。

right join on


注意:右连接转换一下顺序就是左关联,所以我们常用左连接,即,将数据表名字互换位置,用left join完成。


4.3 子查询

定义:在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句
简单来讲就是:查询套查询

补充:

主查询定义:主要查询的对象,第一条 select 语句。

主查询和子查询的关系

子查询分类

4.3.1 标量子查询(一个值)

查询出高于平均身高的信息(height)


4.3.2 行级子查询

查询最高的男生信息(一行值)



4.3.3 列级子查询(一列值)

查询学生的班级号能够对应的 学生名字


注意:"in"和“=”的用法

上一篇 下一篇

猜你喜欢

热点阅读