在sql中,很多时候我们的操作都是在查询数据,本章详解了sql中不同查询的用法和功能。
查询数据库中的数据都是用select语句,搭配不同的关键字实现不同的效果。
如果要查询数据库表的数据,SQL语句格式如下:
SELECT * FROM <表名>
返回的结果是该表所有行的数据
在基本查询的基础上,我们希望给返回的结果加上一点条件
例如我们想查询分数在80分以上的学生记录,我们可以使用where关键字来设定查询的条件。
SELECT * FROM students WHERE score >= 80;
其中score是表的列名,该列存储了学生的成绩。
如果我们只希望返回某些列的数据,而不是所有列的数据,我们可以用
SELECT 列1, 列2, 列3 FROM ...
这会让结果集仅包含指定列,这种操作称为投影操作。
SELECT id, score, name FROM students;
查询结果集通常是按照id
排序的,也就是根据主键排序,这也是大部分数据库的做法。
如果我们想根据其他条件排序,可以使用order by语句。
ORDER BY 排序列表 [ASC|DESC];
其中asc代表的是升序,desc代表的是降序,如果不写,默认是升序
例如将成绩由低到高排序
SELECT id, name, gender, score FROM students ORDER BY score;
例如将成绩由高到低排序
SELECT id, name, gender, score FROM students ORDER BY score DESC;
用SELECT查询时,如果结果集数据量很大,比如几万行数据,放在一个页面显示的话数据量太大,不如分页显示,每次显示100条。要实现分页功能,实际上就是从结果集中显示第1~100条记录作为第1页,显示第101~200条记录作为第2页,以此类推。
LIMIT <N-M> OFFSET <M>
其中首先是limit,limit后面如果跟着两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量
select* from article LIMIT 1,3
这样则表示跳过一条数据,然后取3条数据
当limit跟着一个参数的时候,代表要取的数据的数量
select* from article LIMIT 3
这样代表直接取前3条数据
当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 。
select * from article LIMIT 3 OFFSET 1
这样代表表示跳过1条数据,取3条数据
https://www.liaoxuefeng.com/