分页查询
SQL中使用select语句查询出的结果集可能数据量很大,面对这种情况将结果分页展示变成了必要的需求。具体的分页查询语句搭配select语句,对其结果进行分割展示。
可以使用
limit pageSize offset startIndex
或
limit startIndex,pageSize
两种形式。
想要使用分页查询,首先要确定pageSize和pageIndex,即每页展示数量和页码。但是语句中的startIndex需要通过公式(pageIndex-1)*pageSize计算得到。
示例:
select * from user limit 14,7
表示的是将user表中的所有记录分页查询,展示的是从索引14开始,(不包含14,startIndex从0开始),也就是展示结果中的第15条数据到第21条数据。
另外分页查询搭配上排序可以实现SQL语句查询到,例如id大小排名倒数第三这样的记录。
连接查询
连接查询是一种多表查询语句。连接查询将两张表中的一张选为主表,再将另外一张表的某些内容连接到主表中。主要用到……from……inner(left/right) join……on……等关键字。
例如:
SELECT student.name,class.class_name from student
INNER JOIN class on student.class_num = class.class_num;
上面语句通过查询两张表得到了正确的学生姓名和班级名的结果集。
具体细节:
1.from 之后的表确定主表。
2.inner join 选择了连接种类为内连接,还存在left 和 right 的左右连接用法。
3.join 之后的表是 连接的表。
4.on 之后的是判断条件。
5.可以对结果集继续使用where 或order by 语句。可以对表使用别名简化语句。
左连接:
SELECT student.name,class.class_name from student
LEFT JOIN class on student.class_num = class.class_num;
右连接:
SELECT student.name,class.class_name from student
RIGHT JOIN class on student.class_num = class.class_num;
三种连接的区别: