牛客网-SQL专项练习1
①检索所有比“王华”年龄大的学生姓名、年龄和性别。SQL语句:
解析:
第一步:先找到王华的年龄
SELECT AGE FROM S WHRE SN = "王华";
第二步:将第一步的结果作为条件进行筛选,比他年龄大的人的信息
SELECT SN,AGE,SEX
FROM S
WHRE AGE > (SELECT AGE FROM S WHRE SN = "王华");
知识点:单行子查询
②有一个User用户表,现要删除整张表(指完全删除表数据和表结构),下面正确的MySQL语句是:
A.DELETE TABLE User; B.DROP TABLE User;
C.TRUNCATE TABLE User; D.DELETE FROM User ;
解析:题目中要求是删除整张表(包括表数据和表结构)。B选项符合要求
知识点:本题主要考查DELETE、DROP、TRUNCATE三者的区别:
DELETE:
语法:DELETE FROM 表名 WHERE 筛选条件
TRUNCATE:
语法:TRUNCATE TABLE 表名; #不允许加条件,不加where
DROP:
DROP TABLE 表名称 #删除表数据和结构
DROP DATABASE #用于删除数据库:
三者区别:
数据恢复方面:delete 可以恢复删除的数据,而 truncate 和 drop 不能恢复删除的数据。
执行速度方面:drop > truncate > delete。
删除数据方面:drop 是删除整张表,包含行数据和字段、索引等数据,而 truncate 和 drop 只删除了行数据。
添加条件方面:delete 可以使用 where 表达式添加查询条件,而 truncate 和 drop 不能添加 where 查询条件。
重置自增列方面:在 InnoDB 引擎中,truncate 可以重置自增列,而 delete 不能重置自增列
③比赛结果result表内容如下:
Date Win
2017-07-12 胜
2017-07-12 负
2017-07-15 胜
2017-07-15 负
如果要生成下列结果, sql语句是:
比赛日期 胜 负
2017-07-12 1 1
2017-07-15 1 1
解析:
要显示的是比赛日期、胜、负,将胜或者负统计成得分求和,并按日期进行分组
故SQL语句为:
SELECT DATE AS 比赛日期, SUM(CASE WHEN '胜' then 1 else 0 end) AS 胜,SUM(CASE WHEN '负' then 1 else 0 end) AS 负
FROM result
GROUP BY DATE;
知识点:
1.别名:select 原名 as 别名 from 表名;
2.聚合函数:常用的聚合函数SUM(总和)、MAX(最大值)、MIN(最小值)、AVG(平均值)、COUNT(计数);
3.流程控制函数语法:
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
…
else 要显示的值n或语句n
end
4.GROUP BY :将表中的数据分成若干组,需要将SELECT后面的字段名(除了聚合函数)都包含上【select后面的字段,必须是group by后出现的字段】。
④在gameList表中(player_id, event_date)是主键,如何显示每个玩家(player_id)首次登录的设备号(device_id),并同时显示玩家ID(player_id)?

解析:
需要展示每个玩家(player_id)首次登录的设备号(device_id)并同时展示id,则需要通过子查询的方式获得最小的时间,然后按照id进行展示。
第一步:通过子查询的方式找到每个玩家首次登录的设备号,这里将每个玩家按照时间分等级
SELECT * ,
RANK() OVER(
PARTITION BY player_id
ORDER BY event_date
) AS rank_date
FROM gamelist;
这时就会变成:
| player_id | device_id | event_date | games_played | rank_date |
| 111 | 21 | 2020-01-02 | 6 | 1 |
| 111 | 21 | 2020-03-01 | 5 | 2 |
| 212 | 33 | 2020-09-03 | 1 | 1 |
| 322 | 11 | 2020-01-21 | 0 | 1 |
| 322 | 44 | 2020-03-02 | 5 | 2 |
第二步:然后按照id进行展示
SELECT player_id, device_id
FROM(第一步 )t
WHERE t.rank_date=1
结果:
SELECT player_id, device_id
FROM(SELECT * ,rank() over (partition by player_id order by event_date ) as rank_date from gamelist )t
WHERE t.rank_date=1
| player_id | device_id |
| 111 | 21 |
| 212 | 33 |
| 322 | 11 |
知识点:
牛客网-SQL专项练习1的更多相关文章
- MySql面试题、知识汇总、牛客网SQL专题练习
点击名字直接跳转到链接: Linux运维必会的100道MySql面试题之(一) Linux运维必会的100道MySql面试题之(二) Linux运维必会的100道MySql面试题之(三) Linux运 ...
- 牛客网Sql
牛客网Sql: 1.查询最晚入职的员工信息 select * from employees where hire_date =(select max(hire_date) from employee ...
- 牛客网sql刷题解析-完结
查找最晚入职员工的所有信息 解题步骤: 题目:查询最晚入职员工的所有信息 目标:查询员工的所有信息 筛选条件:最晚入职 答案: SELECT *--查询所有信息就用* ...
- Java基础之引用(String,char[],Integer)总结于牛客网的专项练习题
1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer ...
- 牛客网sql练习
一建表语句 /* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50717 Source Host ...
- 牛客网sql实战参考答案(mysql版):16-21
16.统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资.结果给出ti ...
- 牛客网sql实战参考答案(mysql版):1-15
1.查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为--,mysql为comment) CREATE TABLE `employees ...
- 牛客网数据库SQL实战解析(51-61题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(41-50题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(31-40题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
随机推荐
- 基于ADS1292芯片的解决方案之源码解析
接口解析 A 该芯片和主控使用的是SPI接口通信的. SPI接口一般有四根线,确保四根线准确连接是对的. B 该芯片可以有中断模式数据触发,所以,主控mcu需要有外部中断处理流程. //DRDY中断 ...
- GDB简洁指南
启动gdb:gdb program 设置运行参数:set args 10 20 30 启动程序: run(r),start 显示源代码:list(l) 显示当前栈帧和运行行:frame(f) 设置显示 ...
- HISI3520DV300 折腾记录(三)之《终篇》
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 5、Azure Devops之Azure Test Plans篇
1.什么是Azure Test Plans Azure Test Plans是提供给团队测试人员,管理测试计划.测试套件.测试用例的部件.管理测试计划.测试用例的定义,包括请求类型定义.参数定义,执行 ...
- 打造餐饮+元宇宙新体验!实时云渲染赋能DQverse未来世界
随着元宇宙的迅猛发展,实体餐饮产业与虚拟元宇宙之间的交汇愈发频繁.诸如海底捞.奈雪的茶.星巴克.王老吉.肯德基等知名餐饮品牌纷纷加大对元宇宙领域的投资与布局. 图源网络 最初只是线上虚拟餐厅的概念,如 ...
- 如何利用云流送(Cloud Streaming)构造一个全三维、沉浸式的数字化虚拟景区
随着科技的发展,数字化虚拟景区已经离我们越来越近!所谓数字化虚拟景区,即利用现代计算机数字技术,模拟真实景区,实现在计算机和互联网上再现景区的真实场景. 数字化虚拟景区一般包含以下内容: 数字电子沙盘 ...
- WebView开源库终极方案
目录介绍 01.前沿说明 1.1 案例展示效果 1.2 该库功能和优势 1.3 相关类介绍说明 1.4 WebView知识点 02.如何使用 2.1 如何引入 2.2 最简单使用 2.3 常用api ...
- react-naive工作原理
react-naive工作原理是从react的工作原理衍生出来的 react的工作原理 在react中,virtual dom 就像一个中间层,介于开发者描述的视图与实际在页面上渲染的视图之间.为了在 ...
- Windows上部署spring boot jar项目
1.下载地址:https://github.com/winsw/winsw/releases 下载红色框内三个文件就够了. sample-allOptions.xml 所有配置参考 sample-mi ...
- verilog模型概述
模型功能 verilog是硬件描述语言的一种,主要用于ASIC和FPGA中,用于实现数字逻辑控制. 相较于VHDL,verilog的语法更加接近C语言,格式也更加宽松,具备更强的灵活性. 模型框图 v ...