8.MySQL知识巩固-牛客网练习题

 

目录

 SQL228 批量插入数据

描述

SQL202 找出所有员工当前薪水salary情况

描述

示例1

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

示例1

SQL196 查找入职员工时间排名倒数第三的员工所有信息描述

SQL201查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t

描述


 SQL228 批量插入数据

如果忘记了可以参考我这一篇文章

6.MySQL的增删改查-CSDN博客

批量插入数据_牛客题霸_牛客网 (nowcoder.com)icon-default.png?t=N7T8https://www.nowcoder.com/practice/51c12cea6a97468da149c04b7ecf362e?tpId=82&tqId=29802&tPage=2&rp=&ru=%2Fta%2Fsql&qru=%2Fta%2Fsql%2Fquestion-ranking

描述

对于表actor批量插入如下数据
CREATE TABLE IF NOT EXISTS actor (
actor_id smallint(5) NOT NULL PRIMARY KEY,
first_name varchar(45) NOT NULL,
last_name varchar(45) NOT NULL,
last_update timestamp NOT NULL DEFAULT (datetime('now','localtime')))

actor_idfirst_namelast_namelast_update
1PENELOPEGUINESS2006-02-15 12:34:33
2NICKWAHLBERG2006-02-15 12:34:33

输入:

drop table if exists actor;
CREATE TABLE actor (
   actor_id  smallint(5)  NOT NULL PRIMARY KEY,
   first_name  varchar(45) NOT NULL,
   last_name  varchar(45) NOT NULL,
   last_update  DATETIME NOT NULL)

输出:

1|PENELOPE|GUINESS|2006-02-15 12:34:33
2|NICK|WAHLBERG|2006-02-15 12:34:33

插入语句语法:

insert into 表名 (字段名,,,,) values (要插入的数据字段对齐,,,)
# INSERT INTO actor(actor_id,
#                   first_name,
#                   last_name,
#                   last_update)
# VALUES(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
#       (2,'NICK','WAHLBERG','2006-02-15 12:34:33');



insert into actor VALUES(1,"PENELOPE","GUINESS","2006-02-15 12:34:33"),
(2,"NICK","WAHLBERG","2006-02-15 12:34:33");

SQL202 找出所有员工当前薪水salary情况

如果忘记了可以参考我这篇文章:

6.MySQL的增删改查-CSDN博客

找出所有员工当前薪水salary情况_牛客题霸_牛客网 (nowcoder.com)icon-default.png?t=N7T8https://www.nowcoder.com/practice/ae51e6d057c94f6d891735a48d1c2397?tpId=82&tqId=29760&tPage=1&rp=&ru=%2Fta%2Fsql&qru=%2Fta%2Fsql%2Fquestion-ranking

描述

有一个薪水表,salaries简况如下:

emp_no salaryfrom_date to_date
10001725272002-06-229999-01-01
10002725272001-08-029999-01-01
10003433112001-12-019999-01-01

请你找出所有员工具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示,以上例子输出如下:

salary
72527
43311

示例1

输入:

drop table if exists  `salaries` ; 
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`));
INSERT INTO salaries VALUES(10001,72527,'2002-06-22','9999-01-01');
INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01');
INSERT INTO salaries VALUES(10003,43311,'2001-12-01','9999-01-01');

输出:

72527
43311

这是答案哦

Select distinct salary from salaries order by salary desc;

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

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

emp_nobirth_datefirst_namelast_namegenderhire_date
100011953-09-02GeorgiFacello   M1986-06-26 
100021964-06-02Bezalel    Simmel    F    1985-11-21
100031959-12-03Parto      Bamford   M    1986-08-28
100041954-05-01Christian  Koblick   M    1986-12-01 

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

emp_nobirth_datefirst_namelast_namegenderhire_date
100041954-05-01Christian  Koblick   M    1986-12-01 

示例1

输入:

drop table if exists  `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`));
INSERT INTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26');
INSERT INTO employees VALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21');
INSERT INTO employees VALUES(10003,'1959-12-03','Parto','Bamford','M','1986-08-28');
INSERT INTO employees VALUES(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01');
INSERT INTO employees VALUES(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12');
INSERT INTO employees VALUES(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02');
INSERT INTO employees VALUES(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10');
INSERT INTO employees VALUES(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15');
INSERT INTO employees VALUES(10009,'1952-04-19','Sumant','Peac','F','1985-02-18');
INSERT INTO employees VALUES(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24');
INSERT INTO employees VALUES(10011,'1953-11-07','Mary','Sluis','F','1990-01-22');

输出:

10008|1958-02-19|Saniya|Kalloufi|M|1994-09-15

答案在这哦

 方法一:我们可以按照入职时间进行降序,入职最晚的就是时间最大的,

从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
select * from employees order by hire_date desc limit 1;

方法二:

-- s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n
select * from employees order by hire_date desc limit 1 offset 0;

方法三:

我们可以使用子查询进行操作

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

SQL196 查找入职员工时间排名倒数第三的员工所有信息描述

查找入职员工时间排名倒数第三的员工所有信息_牛客题霸_牛客网 (nowcoder.com)icon-default.png?t=N7T8https://www.nowcoder.com/practice/ec1ca44c62c14ceb990c3c40def1ec6c?tpId=82&tqId=29754&tPage=1&rp=&ru=%2Fta%2Fsql&qru=%2Fta%2Fsql%2Fquestion-ranking

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

emp_nobirth_datefirst_namelast_namegenderhire_date
100011953-09-02GeorgiFacelloM1986-06-26
100021964-06-02BezalelSimmelF1985-11-21
100031959-12-03PartoBamfordM1986-08-28
100041954-05-01ChristianKoblickM1986-12-01

请你查找employees里入职员工时间排名倒数第三的员工所有信息,以上例子输出如下:

emp_nobirth_datefirst_namelast_namegenderhire_date
100011953-09-02GeorgiFacelloM1986-06-26

注意:可能会存在同一个日期入职的员工,所以入职员工时间排名倒数第三的员工可能不止一个。

既然不止一个人那我们就选择distinct关键字进行去重

SELECT * 
FROM employees
WHERE hire_date = (
    SELECT DISTINCT hire_date 
    FROM employees
    ORDER BY hire_date DESC      
    LIMIT 1 OFFSET 2              
);    

SQL201查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t

描述

有一个薪水表,salaries简况如下:

emp_nosalaryfrom_dateto_date
10001601171986-06-261987-06-26
10001

62102

1987-06-261988-06-25
10001660741988-06-251989-06-25
10001665961989-06-251990-06-25
10001669611990-06-251991-06-25
10001710461991-06-251992-06-24
10001743331992-06-241993-06-24
10001752861993-06-241994-06-24
10001759941994-06-241995-06-24
10001768841995-06-241996-06-23
10001800131996-06-231997-06-23
10001810251997-06-231998-06-23
10001810971998-06-231999-06-23
10001849171999-06-232000-06-22
10001851122000-06-222001-06-22
10001850972001-06-222002-06-22
10002725271996-08-031997-08-03

请你查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t,以上例子输出如下:

emp_not
1000116
select
    emp_no,
    count(emp_no) as t
from
    salaries
group by
    emp_no
having
    t > 15;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/870521.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

记一次数据库慢查询的处理方法

1.案发现场 今天打开系统,发现有个页面一直报接口超时,然后定位到该接口和对应的查询sql,拿到navicat中去执行发现执行效率确实很慢,sql和执行时间如下:SELECT DISTINCTr.id,r.province,r.city,r.district,r.NAME,r.lo…

【C++指南】深入剖析:C++中的引用

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 引言: 一、引用的基本概念 1. 定义与特性 2. 语法与声明 二、引用的进阶用法 1. 函…

[HNCTF 2022 WEEK2]getflag-入土为安的二十一天

难点读程序,写exp *(unsigned __int8 *)(i a1) >> 4: 这将字节 i a1 右移 4 位,提取出字节的高 4 位。 *(_BYTE *)(i a1): 这获取原字节的低 4 位(即,i a1 位置的字节的低 4 位)。 (16 * *(_BYTE *)(i a1))…

怎么在网络攻击中屹立不倒

在当今蓬勃发展的网络游戏产业中,服务器安全无疑是企业生存与发展的基石。面对互联网环境中无处不在的DDoS(分布式拒绝服务)与CC(挑战碰撞)攻击威胁,游戏服务器的防御能力与高效处理能力显得尤为重要。相较…

EmguCV学习笔记 VB.Net 2.S 特别示例

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问:EmguCV学习笔记 C# 目录-CSD…

ffmpeg的基础命令

文章目录 ffmpeg/ffplay/ffprobe区别ffmpeg 的作用ffplay的作用ffprobe的作用 ffmpeg使用概述功能概述转码过程简单使用FFMPEG -i常用的 -i例子 ff***工具之间共享的选项ffmpeg主要选项ffmpeg提取音视频数据ffmpeg命令修改原有的视频格式ffmpeg命令裁剪和合并视频拼接视频的方式…

计算机网络基础详解:从网络概述到安全保障的全面指南

目录 网络基础详细概述 1. 网络概述 1.1数据通信 1.2资源共享 1.3分布式处理 1.4负载均衡 2. 网络分类 2.1按覆盖范围: 2.1.1局域网 (LAN): 2.1.2城域网 (MAN): 2.1.3广域网 (WAN): 2.2按拓扑结构: 2.2.1…

python request 发送包含文件请求

file_path rD:\work\200K.pdf # 额外的参数 # 请求文件 url "http://192.168.1.111:8888/test"payload {param1: test,param2: test2} files [(file, (file_path, open(file_path, rb), application/pdf)) ] headers {} response requests.request("POST&…

X-Recon:一款针对Web安全的XSS安全扫描检测工具

关于X-Recon X-Recon是一款功能强大的Web安全扫描与检测工具,该工具能够帮助广大研究人员识别网页端输入数据,并执行XSS扫描任务。 功能介绍 1、子域名发现:检索目标网站的相关子域名并将其整合到白名单中。这些子域名可在抓取过程中使用&am…

yolov8旋转框+关键点检测

一、Yolov8obb_kpt -----------------------------------现已在v8官方库上更新旋转框分割算法和旋转框关键点检测算法-------------------------- ------------------------------------------- https://github.com/yzqxy/ultralytics-obb_segment---------------------------…

苗情灾情监控系统的工作原理

TH-MQ1苗情灾情监控系统,也常被称为作物生长检测仪,是现代农业技术中的一项重要创新,它集成了物联网、大数据、人工智能等先进技术,为农业生产提供了全面、精准的监测与诊断服务。通过集成高清摄像头、高精度传感器、无人机等多种…

【TCP/IP】自定义应用层协议,常见端口号

互联网中,主流的是 TCP/IP 五层协议 5G/4G 上网,是有自己的协议栈,要比 TCP/IP 更复杂(能够把 TCP/IP 的一部分内容给包含进去了) 应用层 可以代表我们所编写的应用程序,只要应用程序里面用到了网络通信…

VueX 使用

1.简介 就是用来多组件共享数据的实现用的 2.使用VueX 因为使用的是vue2 所以下的是vuex3 若是vue3 必须下的是 vue4 npm i vuex3 3.搭建环境 1.创建 src/store/index.js //该文件用于创建一个Vuex中最为核心的store//引入VueX import Vuex from vuex import Vue from vu…

微服务系列:Spring Cloud 之 Feign、Ribbon、Hystrix 三者超时时间配置

Feign 自身有超时时间配置 Feign 默认集成的 Ribbon 中也有超时时间配置 假如我们又使用了 Hystrix 来实现熔断降级,Hystrix 自身也有一个超时时间配置 注: spring-cloud-starter-openfeign 低一点的版本中默认集成的有 Hystrix,高版本中又移除了。 …

XSS-DOM

文章目录 源码SVG标签Dom-Clobbringtostring 源码 <script>const data decodeURIComponent(location.hash.substr(1));;const root document.createElement(div);root.innerHTML data;// 这里模拟了XSS过滤的过程&#xff0c;方法是移除所有属性&#xff0c;sanitize…

如何发布自己的NPM包详细步骤

前言 在前端开发中&#xff0c;将自己编写的 Vue 组件或插件打包并发布到 NPM 上&#xff0c;不仅可以方便自己在其他项目中复用&#xff0c;还能分享给更多的开发者使用。本文将从 NPM 注册、登录与发布流程&#xff0c;及如何通过 Vue CLI 打包插件的角度详细介绍如何发布 V…

【Linux-进程】系统初识:冯诺依曼体系结构

系列文章&#xff1a;《Linux入门》 目录 冯诺依曼体系结构 1&#xff09;硬件上 &#x1f337;1.什么是冯诺依曼体系结构&#xff1f; &#x1f337;2.冯诺依曼结构的五个主要组成部分 1.运算器 2.控制器 3.存储器 4.输入输出 设备 ⁉️3.为什么还需要内存呢&#xf…

vue中点击导航栏,动态改变样式,经典写法

vue中点击导航栏&#xff0c;动态改变样式&#xff0c;经典写法 在vue中&#xff0c;我们通常会有这样的情况&#xff0c;在多个子模块之间&#xff0c;点击其中一个子模块&#xff0c;修改当前点击的子模块的样式。如图&#xff0c;点击B模块时&#xff0c;模块B样式改变&…

小卷原创视频教程:Java开发必会的Linus环境搭建

csdn的各位同学&#xff0c;大家好&#xff0c;我是小卷。最近一段时间写博客不是那么勤快了&#xff0c;主要是在帮助Java小白做学习录屏。 后续更多会以学习视频的方式和大家一起交流Java、前端以及相关的技术。本次分享的是Java开发必须要会的Linux环境搭建。 衷心感谢各位小…

登录过程记录

过程&#xff1a; 未登录状态打开我的消息页-》调用后端接口查询登录状态->后端接口从cookie里拿lt,判断是否登录-》未登录&#xff0c;携带页面链接(我的消息)跳转passport【单点登录服务】 登录页-》输入验证码提交后-》验证成功-》根据用户信息生成票据-》携带票据和我的…