♂️ 个人主页: Redamancy_06
系列专栏:《在线编程-SQL篇》
推荐一款找工作神器网站:《牛客网练习入口》|笔试题库|面试经验|实习招聘内推|
无论是面试,还是刷题学习,都非常好用。而且调试在线编程题时,是可以对比测试数据对应的正确输出的。
希望大家多多支持一起进步呀!
如果文章对你有帮助的话,欢迎评论 点赞 收藏 加关注
题目:现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。
id | device_id | gender | age | university | province |
---|---|---|---|---|---|
1 | 2138 | male | 21 | 北京大学 | Beijing |
2 | 3214 | male | 复旦大学 | Shanghai | |
3 | 6543 | female | 20 | 北京大学 | Beijing |
4 | 2315 | female | 23 | 浙江大学 | ZheJiang |
5 | 5432 | male | 25 | 山东大学 | Shandong |
根据示例,你的查询应返回以下结果:
device_id |
---|
2138 |
3214 |
输入:
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32) NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');
输出:
2138
3214
当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力。这时就可以用 LIMIT 关键字来限制查询结果返回的条数。
LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。
LIMIT 关键字有 3 种使用方式,即指定初始位置、不指定初始位置以及与 OFFSET 组合使用。
LIMIT 关键字可以指定查询结果从哪条记录开始显示,显示多少条记录
LIMIT 指定初始位置的基本语法格式如下:
LIMIT 初始位置,记录数
其中,“初始位置”表示从哪条记录开始显示;“记录数”表示显示记录的条数。第一条记录的位置是 0,第二条记录的位置是 1。后面的记录依次类推。
注意:LIMIT 后的两个参数必须都是正整数。
由结果可以看到,该语句返回的是从第 3 条记录开始的之后的 5 条记录。LIMIT 关键字后的第一个数字“2”表示从第 3 行开始(记录的位置从 0 开始,第 3 行的位置为 2),第二个数字 5 表示返回的行数。
LIMIT 关键字不指定初始位置时,记录从第一条记录开始显示。显示记录的条数由 LIMIT 关键字指定。
LIMIT 不指定初始位置的基本语法格式如下:
LIMIT 记录数
其中,“记录数”表示显示记录的条数。如果“记录数”的值小于查询结果的总数,则会从第一条记录开始,显示指定条数的记录。如果“记录数”的值大于查询结果的总数,则会直接显示查询出来的所有记录。
结果中只显示了 3 条记录,说明“LIMIT 3”限制了显示条数为 3。
LIMIT 可以和 OFFSET 组合使用,语法格式如下:
LIMIT 记录数 OFFSET 初始位置
参数和 LIMIT 语法中参数含义相同,“初始位置”指定从哪条记录开始显示;“记录数”表示显示记录的条数。
由结果可以看到,该语句返回的是从第 4 条记录开始的之后的 5 条记录。即“LIMIT 5 OFFSET 3”意思是获取从第 4 条记录开始的后面的 5 条记录,和“LIMIT 3,5”返回的结果相同。
带一个参数的 LIMIT 指定从查询结果的首行开始,唯一的参数表示返回的行数,即“LIMIT n”、"LIMIT n OFFSET 0"与“LIMIT 0,n”返回结果相同
。带两个参数的 LIMIT 可返回从任何位置开始指定行数的数据。
但是:LIMIT 0,n运行效率更高
LIMIT n运行效率低
LIMIT n OFFSET 0运行效率中
SELECT *
FROM emp
LIMIT 0,2 运行效率更高
SELECT *
FROM emp
LIMIT 2 运行效率低
SELECT *
FROM emp
LIMIT 2 OFFSET 0 运行效率中
SELECT device_id
FROM user_profile
LIMIT 0,2
SQL是一种简单的语言,但实践才是最好的学习方式;因为简单,所以上手快;因此是语言,索引需要实践。“纸上谈来终觉浅”,学习一门编程语言,最重要的还是要亲手编程,这个题单正是使用这种手把手指导的方式,教会你亲手编写SQL代码,让你实现从萌新到大佬的跨越。
点击链接赶紧练习起来吧:https://www.nowcoder.com/link/pc_csdncpt_red_sql