SQL经典查询

  1. 查询不在表里的数据,一张学生表,一张学生的选课表,要求查出没有选课的学生?
select students.student_name from students left join course_selection on students.student_id=course_selection.student_id where course_selection.student_id is null

在这里插入图片描述

  1. 查找第N高的数据,查找课程编号为”01“的成绩第三高的学生,如果不存在则返回null
select IFNULL((select scores.score from scores order by scores.score desc limit 1 offset 2) ,null) as "第三高的成绩"
  1. 分组排序,按成绩从大到小排序如80,80,76,70,50 对应的排序为1,1,3,4,5
select  *,RANK() over(ORDER BY scores.score DESC) as "排名" from scores

在这里插入图片描述
在这里插入图片描述

  1. 连续出现N次问题,学生连续3个学号相邻的学生出现年龄相同的年龄
select distinct a.age from students a,students b,students c where a.student_id=b.student_id+1 and b.student_id=c.student_id+1 and a.age=b.age and b.age=c.age 

常见知识点:

1. 多层嵌套子查询 + 聚合函数

题目:查询订单总额高于该客户平均订单金额的所有订单

SELECT order_id, customer_id, total_amount
FROM orders o1
WHERE total_amount > (SELECT AVG(total_amount)FROM orders o2WHERE o2.customer_id = o1.customer_id
);

考点:关联子查询、聚合函数、比较运算符


2. 多表JOIN + 分组统计

题目:查询每个部门的最高薪员工信息

SELECT d.dept_name, e.emp_name, e.salary
FROM departments d
JOIN employees e ON d.dept_id = e.dept_id
WHERE e.salary = (SELECT MAX(salary)FROM employeesWHERE dept_id = d.dept_id
);

考点:内连接、相关子查询、分组极值


3. 窗口函数应用

题目:查询每个部门薪资排名前三的员工

SELECT dept_id, emp_name, salary 
FROM (SELECT *,DENSE_RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) as rkFROM employees
) t
WHERE rk <= 3;

考点:窗口函数、排名函数、子查询


4. 递归查询层级数据

题目:查询某员工的所有下级(包含N级)

WITH RECURSIVE emp_tree AS (SELECT emp_id, emp_name, manager_idFROM employeesWHERE emp_id = 1001  -- 指定上级IDUNION ALLSELECT e.emp_id, e.emp_name, e.manager_idFROM employees eJOIN emp_tree et ON e.manager_id = et.emp_id
)
SELECT * FROM emp_tree;

考点:CTE递归查询、树形结构处理


5. 行转列动态查询

题目:动态生成各月销售额的列式报表

SET @sql = NULL;
SELECTGROUP_CONCAT(DISTINCTCONCAT('SUM(CASE WHEN MONTH(order_date) = ',month,' THEN amount ELSE 0 END) AS `',month_name, '`')) INTO @sql
FROM (SELECT MONTH(order_date) month, DATE_FORMAT(order_date, '%b') month_nameFROM ordersGROUP BY 1,2
) m;SET @sql = CONCAT('SELECT product_id, ', @sql, ' FROM orders GROUP BY product_id');PREPARE stmt FROM @sql;
EXECUTE stmt;

考点:动态SQL、PIVOT转换、GROUP_CONCAT函数


6. 复杂日期处理

题目:查询连续3天登录的用户

SELECT DISTINCT a.user_id
FROM login_log a
JOIN login_log b ON a.user_id = b.user_id AND b.login_date = DATE_ADD(a.login_date, INTERVAL 1 DAY)
JOIN login_log c ON a.user_id = c.user_id AND c.login_date = DATE_ADD(a.login_date, INTERVAL 2 DAY);

考点:日期函数、自连接、连续性问题


7. 存在性检查

题目:查询购买了所有品类商品的客户

SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING COUNT(DISTINCT category_id) = (SELECT COUNT(DISTINCT category_id) FROM products
);

考点:HAVING子句、集合运算、全量存在判断


8. 分页性能优化

题目:高效实现千万级数据分页

SELECT id, name, create_time
FROM large_table
WHERE create_time > '2023-01-01'
ORDER BY create_time DESC, id DESC
LIMIT 10 OFFSET 100000;

考点:分页优化、索引设计、排序字段选择


9. 多重条件聚合

题目:统计各商品不同价格区间的销量

SELECT product_id,SUM(CASE WHEN price < 100 THEN 1 ELSE 0 END) AS low_price,SUM(CASE WHEN price BETWEEN 100 AND 500 THEN 1 ELSE 0 END) AS mid_price,SUM(CASE WHEN price > 500 THEN 1 ELSE 0 END) AS high_price
FROM orders
GROUP BY product_id;

考点:条件聚合、CASE表达式


10. 数据去重保留最新

题目:删除重复订单(保留最新记录)

DELETE FROM orders
WHERE order_id NOT IN (SELECT MAX(order_id)FROM ordersGROUP BY customer_id, product_id, order_date
);

考点:数据去重、保留极值、子查询删除


11. 多结果集合并

题目:合并新老系统用户表(去重)

SELECT user_id, user_name FROM old_users
UNION 
SELECT user_id, user_name FROM new_users;

考点:集合操作、UNION去重


12. 事务并发控制

题目:实现库存安全扣减

START TRANSACTION;
SELECT stock FROM products WHERE id=1001 FOR UPDATE;
UPDATE products SET stock = stock - 1 WHERE id=1001;
COMMIT;

考点:事务隔离、悲观锁、并发控制


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《机器学习数学基础》补充资料:过渡矩阵和坐标变换推导

尽管《机器学习数学基础》这本书&#xff0c;耗费了比较长的时间和精力&#xff0c;怎奈学识有限&#xff0c;错误难免。因此&#xff0c;除了在专门的网页&#xff08; 勘误和修订 &#xff09;中发布勘误和修订内容之外&#xff0c;对于重大错误&#xff0c;我还会以专题的形…

解锁DeepSpeek-R1大模型微调:从训练到部署,打造定制化AI会话系统

目录 1. 前言 2.大模型微调概念简述 2.1. 按学习范式分类 2.2. 按参数更新范围分类 2.3. 大模型微调框架简介 3. DeepSpeek R1大模型微调实战 3.1.LLaMA-Factory基础环境安装 3.1大模型下载 3.2. 大模型训练 3.3. 大模型部署 3.4. 微调大模型融合基于SpirngBootVue2…

第七课:Python反爬攻防战:Headers/IP代理与验证码

在爬虫开发过程中&#xff0c;反爬虫机制成为了我们必须面对的挑战。本文将深入探讨Python爬虫中常见的反爬机制&#xff0c;并详细解析如何通过随机User-Agent生成、代理IP池搭建以及验证码识别来应对这些反爬策略。文章将包含完整的示例代码&#xff0c;帮助读者更好地理解和…

Vue3——Fragment

文章目录 一、Fragment的核心意义1. 解决Vue2的单根限制问题2. 减少不必要的 DOM 嵌套3. 语义化和结构化 二、Fragment 的实现原理三、Fragment 使用方式1. 基本用法2. 结合条件渲染3. 动态组件 四、实际应用场景1. 列表/表格组件2. 布局组件3. 语义化标签 五、注意事项1. 属性…

字节跳动C++客户端开发实习生内推-抖音基础技术

智能手机爱好者和使用者&#xff0c;追求良好的用户体验&#xff1b; 具有良好的编程习惯&#xff0c;代码结构清晰&#xff0c;命名规范&#xff1b; 熟练掌握数据结构与算法、计算机网络、操作系统、编译原理等课程&#xff1b; 熟练掌握C/C/OC/Swift一种或多种语言&#xff…

【Linux学习笔记】Linux基本指令分析和权限的概念

【Linux学习笔记】Linux基本指令分析和权限的概念 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Linux学习笔记 文章目录 【Linux学习笔记】Linux基本指令分析和权限的概念前言一. 指令的分析1.1 alias 指令1.2 grep 指令1.3 zip/unzip 指…

数据库索引的作用:提升数据检索效率的关键

在数据库管理系统中&#xff0c;数据如同浩瀚海洋中的宝藏&#xff0c;如何快速准确地找到所需信息&#xff0c;成为了一个关键问题。这时候&#xff0c;数据库索引就如同一张精确的航海图&#xff0c;指引着我们高效地定位数据。那么&#xff0c;数据库索引究竟是什么&#xf…

Lab18_ SQL injection with filter bypass via XML encoding

文章目录 前言&#xff1a;进入实验室构造 payload 前言&#xff1a; 实验室标题为&#xff1a; 通关 XML 编码绕过过滤器的 SQL 注入 简介&#xff1a; 此实验室的库存检查功能中存在 SQL 注入漏洞。查询结果在应用程序的响应中返回&#xff0c;因此您可以使用 UNION 攻击…

计算机性能指标(计网笔记)

计算机性能指标&#xff1a;速率、带宽、吞吐率、时延、时延带宽积、往返时间RTT、利用率 速率 数据的传输速率&#xff0c;单位bit/s&#xff0c;或kbit/s&#xff0c;Mbit/s&#xff0c;Gbit/s 4*10**10bit/s40Gbit/s 常用带宽单位&#xff1a; 千比每秒kb/s 兆比每秒Mb/s…

同为科技智能PDU在数据中心场景的应用与解决方案

数据中心当前处于一个快速发展和技术变革的特殊时期&#xff0c;全新的人工智能应用正在重塑整个世界&#xff0c;为社会带来便捷的同时&#xff0c;也为数据中心的发展带来了新的机遇和挑战。智能算例的爆发式增长&#xff0c;对数据中心提出了大算力、高性能的新需求&#xf…

蓝桥杯 C++ b组 积木画深度解析

题目大意&#xff1a;有两种积木块&#xff0c;I型和L型&#xff0c;给定一段2*N的画布&#xff0c;问摆满总共有多少种方式&#xff1f; 解法&#xff1a;状态压缩dp&#xff08;强烈建议拿个笔跟着画一下状态&#xff0c;慢慢就懂了&#xff09; 首先我们规定一下此题解中提…

小程序事件系统 —— 32 事件系统 - 事件分类以及阻止事件冒泡

在微信小程序中&#xff0c;事件分为 冒泡事件 和 非冒泡事件 &#xff1a; 冒泡事件&#xff1a;当一个组件的事件被触发后&#xff0c;该事件会向父节点传递&#xff1b;&#xff08;如果父节点中也绑定了一个事件&#xff0c;父节点事件也会被触发&#xff0c;也就是说子组…

【从0到1搞懂大模型】神经网络的实现:数据策略、模型调优与评估体系(3)

一、数据集的划分 &#xff08;1&#xff09;按一定比例划分为训练集和测试集 我们通常取8-2、7-3、6-4、5-5比例切分&#xff0c;直接将数据随机划分为训练集和测试集&#xff0c;然后使用训练集来生成模型&#xff0c;再用测试集来测试模型的正确率和误差&#xff0c;以验证…

Django与数据库

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲alpha策略制定后的测试问题 mysql配置 Django模型体现了面向对象的编程技术&#xff0c;是一种面向对象的编程语言和不兼容类型能相互转化的编程技术&#xff0c;这种技术也叫ORM&#…

从 GitHub 批量下载项目各版本的方法

一、脚本功能概述 这个 Python 脚本的主要功能是从 GitHub 上下载指定项目的各个发布版本的压缩包&#xff08;.zip 和 .tar.gz 格式&#xff09;。用户需要提供两个参数&#xff1a;一个是包含项目信息的 CSV 文件&#xff0c;另一个是用于保存下载版本信息的 CSV 文件。脚本…

ECC升级到S/4 HANA的功能差异 物料、采购、库存管理对比指南

ECC升级到S/4 HANA后&#xff0c;S4 将数据库更换为HANA后性能有一定提升&#xff0c;对于自开发程序&#xff0c;可以同时将计算和部分业务逻辑下推到HANA数据库层&#xff0c;减少应用层和数据库层的交互次数和数据传输&#xff0c;只返回需要的结果到应用层和显示层。提升自…

表格columns拼接两个后端返回的字段(以umi框架为例)

在用组件对前端项目进行开发时&#xff0c;我们会遇到以下情况&#xff1a;项目原型中有取值范围这个表字段&#xff0c;需要存放最小取值到最大取值。 而后端返回给我们的数据是返回了一个最小值和一个最大值&#xff0c; 在columns中我们需要对这两个字段进行拼接&#xff0…

使用Galaxy创建生物信息学工作流的步骤详解

李升伟 整理 Galaxy 是一个基于 Web 的生物信息学平台&#xff0c;提供了直观的用户界面和丰富的工具&#xff0c;帮助用户创建和管理生物信息学工作流。以下是使用 Galaxy 创建生物信息学工作流的主要步骤&#xff1a; 1. 访问 Galaxy 平台 打开 Galaxy 的官方网站&#xff…

蓝桥杯—走迷宫(BFS算法)

题目描述 给定一个NM 的网格迷宫 G。G 的每个格子要么是道路&#xff0c;要么是障碍物&#xff08;道路用 11表示&#xff0c;障碍物用 0 表示&#xff09;。 已知迷宫的入口位置为 (x1​,y1​)&#xff0c;出口位置为 (x2​,y2​)。问从入口走到出口&#xff0c;最少要走多少…

【GPT入门】第12课 FunctionCall 生成数据库sql代码

【GPT入门】第12课 FunctionCall 生成数据库sql代码 1.概述2. 代码3.执行结果 1.概述 如下代码的任务&#xff1a;自然语言问ai,自动生成sql并回答用户 实现思路&#xff1a; 步骤1. ai会把用户的问题&#xff0c;转为sql 步骤2. 程序执行sql 步骤3.把执行的sql结果&#xff…