1. 查找最晚入职员工的所有信息-SQL——limit

查找最晚入职员工的所有信息

描述

有一个员工employees表简况如下:

建表语句如下:

CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL, 
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));

 

请你查找employees里最晚入职员工的所有信息,以上例子输出如下:

 

提交答案:

select A.emp_no,A.birth_date,A.first_name,A.last_name,A.gender,A.hire_date 
from employees as A
join (select emp_no, max(hire_date) from employees) as B
where A.emp_no = B.emp_no

提交结果:答案正确 运行时间:17ms 占用内存:3344KB 使用语言:Sqlite 用例通过率:100.00%

网上答案:

select * from employees order by hire_date desc limit 1

提交结果:答案正确 运行时间:18ms 占用内存:3324KB 使用语言:Sqlite 用例通过率:100.00%

 

涉及知识点:

1 limit使用简介
    limit子句是一个选择语句块的最后一个子句,它选取了行的一个子集,来限定中间结果的输出行数。limit子句表示了最前面和最后面被提取的行数。
    通常情况下,Limit关键字可以接受一个或者两个数字参数。需要注意的是,这个参数必须是一个整数常量。如果用户给定两个参数,则第一个参数表示第一个返回记录行的偏移量,第二个参数则表示返回记录行的最大数据。另外需要提醒的是,初始记录行的偏移量是0,而不是1。
    虽然使用了Limit语句来限制返回的记录数,从而可以提高应用程序的工作效率。但是其也会给系统的性能带来一些负面影响。如可能会导致全表扫描等等。如果数据库管理员决定使用Limit子句来指定需要显示的记录数,那么最好能够最大限度的使用索引,以避免全表扫描,提高工作效率。
2 基本语法

  1. SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset  

    LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

5 limit与子查询

    limit也可用在出现在子查询中的语句块块儿中。

select * from   
(select playerno, name   
from players   
order by joined desc, playerno asc  
limit 2) as T  
order by playerno desc;  

 

6 limit偏移量

    通常limit子句用来选择列表头部或尾部,添加一个偏移量则可跳过几行。添加偏移量有两种方式,分别是LIMIT [offset,] rows 或LIMIT rows OFFSET offset,推荐使用第二种,它更明确地表示了要显示的行数和偏移的行数。

select playerno, name   
from players  
order by playerno asc  
limit 3, 4;  
select playerno, name   
from players  
order by playerno asc  
limit 4 offset 3;  

mysql查询语句select-limit使用详解_lin443514407lin的专栏-CSDN博客

https://blog.csdn.net/lin443514407lin/article/details/60127999

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值