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

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`));

题解:

 select * from employees order by hire_date desc limit 1;

【2】查找入职员工时间排名倒数第三的员工所有信息 (表同问题1)题解:limit m, n 表示从第 m 条数据(0-based)开始取 n 条数据。(或者也可以理解成 limit m, n  表示从第 m + 1 条数据开始, 取 n 条数据)

 select * from employees order by hire_date desc limit 2, 1;
 
 【3】查找当前薪水详情以及部门编号dept_no查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no 。

CREATE TABLE `dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`)); CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

题解:两张表 join 一下,然后选择 salaries 表作为主表join dept表。 (注意写法)。

select s.* , d.dept_no from salaries as s join dept_manager as d on s.emp_no=d.emp_no
where s.to_date = '9999-01-01' and d.to_date = '9999-01-01'
【4】查找所有已经分配部门的员工的last_name和first_name

CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`)); 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`));

题解:

select emp.last_name, emp.first_name, dept.dept_no from employees as emp join dept_emp as dept on emp.emp_no = dept.emp_no;
 
 
 【5】查找所有员工的last_name和first_name以及对应部门编号dept_no查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工。创建表语句同第4题。题解:因为没有分配具体部门的员工也需要展示,所以,需要 left join。INNER JOIN 两边表同时有对应的数据,即任何一边缺失数据就不显示。LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。RIGHT JOIN 会读取右边数据表的全部数据,即便左边表无对应数据。 注意on与where有什么区别,两个表连接时用on,在使用left  jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left  join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
 
select emp.last_name, emp.first_name, dept.dept_no from employees as emp left join dept_emp as dept on emp.emp_no = dept.emp_no;
 

【6】查找所有员工入职时候的薪水情况

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

【8】找出所有员工当前具体的薪水salary情况

【9】获取所有部门当前manager的当前薪水情况

【10】获取所有非manager的员工emp_no

【11】获取所有员工当前的manager

【12】获取所有部门中当前员工薪水最高的相关信息

【13】从titles表获取按照title进行分组

【14】从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略。

【15】查找employees表所有emp_no为奇数

【16】统计出当前各个title类型对应的员工当前薪水对应的平均工资

【17】获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

【18】查找当前薪水排名第二多的员工编号emp_no

【19】查找所有员工的last_name和first_name以及对应的dept_name

【20】查找员工编号emp_now为10001其自入职以来的薪水salary涨幅值growth

【21】查找所有员工自入职以来的薪水涨幅情况

【22】统计各个部门对应员工涨幅的次数总和

【23】对所有员工的当前薪水按照salary进行按照1-N的排名

【24】获取所有非manager员工当前的薪水情况

【25】获取员工其当前的薪水比其manager当前薪水还高的相关信息

【26】汇总各个部门当前员工的title类型的分配数目

【27】给出每个员工每年薪水涨幅超过5000的员工编号emp_no

【28】查找描述信息中包括robot的电影对应的分类名称以及电影数目

【29】使用join查询方式找出没有分类的电影id以及名称

【30】使用子查询的方式找出属于Action分类的所有电影对应的title,description

【31】获取select

【32】将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分

【33】创建一个actor表,包含如下列信息

【34】批量插入数据

【35】批量插入数据,如果数据已经存在,请忽略,不使用replace操作

【36】创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表

【37】对first_name创建唯一索引uniq_idx_firstname,对last_name创建普通索引idx_lastname

【38】针对actor表创建视图actor_name_view

【39】针对上面的salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005,

【40】在last_update后面新增加一列名字为create_date

【41】构造一个触发器audit_log,在向employees表中插入一条数据的时候,触发插入相关的数据到audit中

【42】删除emp_no重复的记录,只保留最小的id对应的记录。

【43】将所有to_date为9999-01-01的全部更新为NULL,且

【44】将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现。

【45】将titles_test表名修改为titles_2017

【46】在audit表上创建外键约束,其emp_no对应employees_test表的主键id

【47】如何获取emp_v和employees有相同的数据no

【48】将所有获取奖金的员工当前的薪水增加10%

【49】针对库中的所有表生成select

【50】将employees表中的所有员工的last_name和first_name通过(')连接起来。

【51】查找字符串'10,A,B'

【52】获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列

【53】按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees

【54】查找排除当前最大、最小salary之后的员工的平均工资avg_salary

【55】分页查询employees表,每5行一页,返回第2页的数据

【56】获取所有员工的emp_no

【57】使用含有关键字exists查找未分配具体部门的员工的所有信息。

【58】获取employees中的行数据,且这些行也存在于emp_v中

【59】获取有奖金的员工相关信息。

【60】统计salary的累计和running_total

【61】对于employees表中,给出奇数行的first_name   



【sql】牛客网练习题 (共 61 题)的更多相关文章

  1. 牛客网第一场E题 Removal

    链接:https://www.nowcoder.com/acm/contest/139/E 来源:牛客网 Bobo has a sequence of integers s1, s2, ..., sn ...

  2. 牛客网-3 网易编程题(1拓扑&2二叉树的公共最近祖先&3快排找第K大数)

    1. 小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量.这些钻石的重量各不相同.在他们们比较了一段时间后,它们看中了两颗钻石g1和g2.现在请你根据之前比较的信息判断这两颗钻石的哪颗更 ...

  3. 牛客网_Go语言相关练习_判断&选择题(4)

    题目来源于牛客网 一.判断题 成员变量或者函数的首字母表示是否对外部可见. switch后面的声明语句和表达式语句都是可以选择的.例如: //可以什么都不加 switch: break; 错误指的是可 ...

  4. 牛客网练习赛18 A 【数论/整数划分得到乘积最大/快速乘】

    链接:https://www.nowcoder.com/acm/contest/110/A 来源:牛客网 题目描述 这题要你回答T个询问,给你一个正整数S,若有若干个正整数的和为S,则这若干的数的乘积 ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Python内置数学函数

    class NumString: def __init__(self, value): self.value = str(value) def __str__(self): return self.v ...

  2. JUC线程池

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11443644.html newFixedThreadPool 重用指定数目(nThreads)的线程, ...

  3. Ubuntu下的安装notepad++

    Ubuntu下的安装方法: sudo add-apt-repository ppa:notepadqq-team/notepadqq sudo apt-get update sudo apt-get ...

  4. bootsrap 按钮样式

    <!-- Standard button --> <button type="button" class="btn btn-default"& ...

  5. linux基础知识汇总(二)-vi/vim

    转:http://blog.csdn.net/sky04/article/details/5662582 vi与vim一样都是编辑器,不同的是vim更高级一些,可以理解是vi的高级版本.vi就像Win ...

  6. centos7 rm -rf 删除文件的找回

    今天手贱一不小心把我正个项目目录删除了,没办法只能找回啦      文件系统是ext4的,只能使用extundelete   df -hT 文件名  查看 下删除的文件夹所在的硬盘 1. 安装依赖   ...

  7. PAT 1036 Boys vs Girls (25 分)

    1036 Boys vs Girls (25 分)   This time you are asked to tell the difference between the lowest grade ...

  8. Oracle架构实现原理、含五大进程解析(图文详解)

    目录 目录 前言 Oracle RDBMS架构图 内存结构 系统全局区SGA 高速缓存缓冲区数据库缓冲区 日志缓冲区 共享池 其他结构 进程结构 用户连接进程 用户进程User Process Ser ...

  9. 2019 pycharm激活码

    http://lookdiv.com 里面有,钥匙:1211268069 激活码网址里面有 lookdiv.com 里面的钥匙就是lookdiv.com

  10. 点读系列《jmeter官方用户手册》

    官网:http://jmeter.apache.org/usermanual/ 说明:十八元件.十九属性.二十函数,涉及清单内容暂未仔细阅读,个人觉得一是仅供使用参考,二是适合单独写文章来解读 一.让 ...