牛客网Sql:

1.查询最晚入职的员工信息 

select * from employees

where hire_date =(select max(hire_date) from employees)  //日期最大值就是最晚的

select * from employees  where hire_date=(select max(hire_date)  from employees);

2.查找入职员工时间排名倒数第三的员工所有信息

LIMIT m,n : 表示从第m+1条开始,取n条数据;

LIMIT n : 表示从第0条开始,取n条数据,是limit(0,n)的缩写。

ORDER BY 语句默认按照升序进行排序。

SQL语言的默认排序方式是升序,ORDER BY 子句若未显式指定升序(ASC)或降序(DESC),那么就认按默认升序排序。
例如下列语句为默认按升序排序
select * from t1 order by col1;
它与下列语句等效
select * from t1 order by col1 asc;

升序:最小的数在前面。降序:最大的数在前(从大到小排序)

select * from employees order by hire_date desc limit 2,1;  //排名倒数就是入职最晚的,就是时间最大的,所以降序取第三个

多列降序排序

SELECT prod_id, prod_price, prod_name

FROM products

ORDER BY prod_price DESC, prod_name DESC;

  每个DESC只做作用前面一个字段  ORDER BY必须在FROM之后  LIMIT必须在ORDER BY之后

  1. 查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no

SELECT s.*,  d.dept_no

FROM salaries s ,  dept_manager d

 

WHERE s.to_date='9999-01-01'

 

AND d.to_date='9999-01-01'

 

AND s.emp_no = d.emp_no;

  1. 查找所有已经分配部门的员工的last_name和first_name

-- 查找所有已经分配部门的员工的last_name和first_name

SELECT e.`first_name`,e.`last_name`,d.`dept_no`

FROM dept_emp d,employees e

WHERE e.`emp_no`=d.`emp_no`

  1. 查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工

SELECT e.last_name, e.first_name, d.dept_no

FROM employees e

LEFT JOIN dept_emp d

ON e.emp_no = d.emp_no

 

INNER JOIN 两边表同时有对应的数据,即任何一边缺失数据就不显示。
LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
RIGHT JOIN 会读取右边数据表的全部数据,即便左边表无对应数据。

注意on与where有什么区别,两个表连接时用on,在使用left  jion时,on和where条件的区别如下:

1、  on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left  join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

 

  1. 查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序

SELECT e.emp_no,s.salary

FROM salaries s,employees e

WHERE e.emp_no=s.emp_no

AND e.hire_date=s.from_date  这里查询时注意,日期要相同,因为薪资表中emp_no不唯一,同一员工在涨薪的可能

ORDER BY e.emp_no DESC;

  1. 查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t

WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。

HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

-- 查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t

SELECT a.*

FROM( SELECT emp_no,COUNT(*) AS t  FROM salaries  GROUP BY emp_no) AS a

WHERE t>15

牛客网Sql的更多相关文章

  1. MySql面试题、知识汇总、牛客网SQL专题练习

    点击名字直接跳转到链接: Linux运维必会的100道MySql面试题之(一) Linux运维必会的100道MySql面试题之(二) Linux运维必会的100道MySql面试题之(三) Linux运 ...

  2. 牛客网sql刷题解析-完结

    查找最晚入职员工的所有信息 解题步骤: 题目:查询最晚入职员工的所有信息        目标:查询员工的所有信息 筛选条件:最晚入职           答案: SELECT *--查询所有信息就用* ...

  3. 牛客网sql练习

    一建表语句 /* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50717 Source Host ...

  4. 牛客网sql实战参考答案(mysql版):16-21

    16.统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资.结果给出ti ...

  5. 牛客网sql实战参考答案(mysql版):1-15

    1.查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为--,mysql为comment) CREATE TABLE `employees ...

  6. 牛客网数据库SQL实战解析(51-61题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  7. 牛客网数据库SQL实战解析(41-50题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  8. 牛客网数据库SQL实战解析(31-40题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  9. 牛客网数据库SQL实战解析(21-30题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

随机推荐

  1. Codeforces Round #604 (Div. 2)D(构造)

    构造,枚举起点,如果一个序列成立,那么将它reverse依然成立,所以两个方向(从小到大或从大到小)没有区别,选定一个方向进行探测,直到探测不到以后回头,只要所给数据能成立,那么能探测进去就能探测出来 ...

  2. cube-ui IndexList 切换Tab Y坐标归零

    <template> <div class="fx t12 column"> <div class="order_search_div fl ...

  3. Dart语言学习(二) Dart的常量和变量

    1.使用var声明变量,可赋予不同类型的值 Dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推导 Dart中定义变量可以通过var关键字可以通过类型来申明变量 var str='t ...

  4. 排序算法之希尔排序的python实现

    希尔排序(Shell’s Sort)是插入排序的一种,是直接插入排序算法的一种更高版本的改进版本. 希尔排序的工作原理 如下: (1)把记录按步长gap分组,对每组记录采用直接插入排序方法进行排序: ...

  5. Python Django中一些少用却很实用的orm查询方法

    一.使用Q对象进行限制条件之间 "或" 连接查询 from django.db.models import Q from django.contrib.auth.models im ...

  6. 松软科技课堂:JavaScriptDOM - 改变 CSS

    HTML DOM 允许 JavaScript 更改 HTML 元素的样式. 改变 HTML 样式 如需更改 HTML 元素的样式,请使用此语法: document.getElementById(id) ...

  7. opencv:Mat对象

    Mat对象:图像文件的内存数据对象 读取为 Mat 对象 读取图像位Mat对象,获取图像的相关信息 #include <opencv2/opencv.hpp> #include <i ...

  8. 吴裕雄 python 神经网络——TensorFlow实现AlexNet模型处理手写数字识别MNIST数据集

    import tensorflow as tf # 输入数据 from tensorflow.examples.tutorials.mnist import input_data mnist = in ...

  9. Excel数据可视化方法

    目录: Excel图表基础: 1.选择要为其创建图表的数据,如: 2.单击“插入”菜单中的“推荐的图表”(也可点击右下角的下拉箭头),点击后选择所有图表即可查看所有的图标类型 3.选择所要的图表,单击 ...

  10. QM[中控群控云控]01. 中控原理

    QM[中控群控云控]01. 中控原理 虽然自己对于中控有了解 也自己做过一些简单中控 不过看看紫猫老师的思路 应该有很多帮助和提高 中控核心:数据交流而已 脚本端和服务端之间的信息交换 ------个 ...