当前位置: 首页 > news >正文

SQL数据处理流程

一、数据处理

1、数据清洗

  • 对空值处理:删除/填充为0
-- 用 0 填充 NULL
SELECT COALESCE(sales, 0) AS sales FROM orders;-- 删除含 NULL 的记录
DELETE FROM users WHERE email IS NULL;

COALESCE(bonus, 0) 相当于IF(bonus IS NULL, 0, bonus),当数据为null值,就返回0,否则返回本身

  • 去重复值:删除(查找重复记录,删除重复值)
-- 查找重复记录
SELECT name, COUNT(*) FROM products GROUP BY name HAVING COUNT(*) > 1;-- 删除重复记录(保留最小 ID)
DELETE FROM products WHERE id NOT IN (SELECT MIN(id) FROM products GROUP BY name);
  • 去字符串空格
-- 去除字符串空格
SELECT TRIM(name) FROM customers;

trim(name)去除字符串name首尾空格

  • 处理异常值:筛选掉/替换异常值
-- 过滤年龄小于 0 或大于 120 的记录
SELECT * FROM users WHERE age BETWEEN 0 AND 120;-- 过滤金额为负数的记录
SELECT * FROM orders WHERE amount >= 0;
-- 将异常年龄替换为 NULL
UPDATE users 
SET age = NULL 
WHERE age < 0 OR age > 120;-- 使用 CASE 表达式替换异常值
SELECT name,CASE WHEN age < 0 THEN NULLWHEN age > 120 THEN 120ELSE ageEND AS valid_age
FROM users;

2、数据转换

(1)数据格式转换

  • 字符串转换为数值
-- 字符串转数值
SELECT CAST(revenue AS DECIMAL(10,2)) FROM sales;

cast:CAST(expression AS target_type [length])

  • expression:要转换的值(如列名、常量或表达式)
  • target_type:目标数据类型(如 INTEGERVARCHARDATE 等)
  • length:可选参数,用于指定长度(如 VARCHAR(50)
  • 用于不同格式之间的转换

  • 数值与字符串相互转换:
-- 字符串转整数
SELECT CAST('123' AS INTEGER);  -- 结果:123-- 整数转字符串
SELECT CAST(123 AS VARCHAR(10));  -- 结果:'123'-- 浮点数(保留两位小数)
SELECT CAST(3.14159 AS DECIMAL(10,2));  -- 结果:3.14-- 浮点数转字符串
SELECT CAST(CAST(3.14159 AS DECIMAL(10,2)) AS VARCHAR);  -- 结果:"3.14"

CAST(3.14159 AS DECIMAL(10,2)) ,在计算机中浮点数是用二进制储存的,所以要先用DECIMAL(10,2)转换为十进制表示的数据,2代表保留两位小数

  • 日期和字符串相互转换:
-- 字符串转日期(格式需匹配)
SELECT CAST('2023-01-01' AS DATE);  -- 结果:2023-01-01-- 日期转字符串(按指定格式)
SELECT CAST(CURRENT_DATE AS VARCHAR(10));  -- 结果:'2023-01-01'

(2)统一日期格式 

-- 日期格式化
SELECT DATE_FORMAT(order_date, '%Y-%m') AS month FROM orders;

(3)字符串拼接

-- 字符串拼接
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;

 二、数据集成

1、表连接:内连接、左连接、右连接

2、子查询

3、联合查询 union

三、高级数据转换

1、聚合与分组、窗口函数

2、数据透视 (case when新增列)

四、性能优化

(1)减少子查询,多使用表连接

(2)避免SELECT *,表明要查询的列

(3)大数据量时使用LIMIT offset进行分页

(4)创建索引,避免全表查询(索引就相当于目录)

相关文章:

SQL数据处理流程

一、数据处理 1、数据清洗 对空值处理&#xff1a;删除/填充为0 -- 用 0 填充 NULL SELECT COALESCE(sales, 0) AS sales FROM orders;-- 删除含 NULL 的记录 DELETE FROM users WHERE email IS NULL; COALESCE(bonus, 0) 相当于IF(bonus IS NULL, 0, bonus)&#xff0c;当…...

Mysql差异备份与恢复

1.练习差异备份 差异备份&#xff1a;备份完全备份后&#xff0c;新产生的数据。 在192.168.88.50主机完成差异备份 步骤一&#xff1a;练习差异备份//周一完全备份 mysql> select * from test.one; --------------------- | name | age | sex | ------------------…...

目标检测 Lite-DETR(2023)详细解读

文章目录 迭代高级特征跨尺度融合高效的低层次特征跨尺度融合KDA&#xff1a;Key-aware Deformable Attention 论文翻译&#xff1a; CVPR 2023 | Lite DETR&#xff1a;计算量减少60%&#xff01;高效交错多尺度编码器-CSDN博客 DINO团队的 &#xff08;Lightweight Transfo…...

【Java学习方法】类变量

类变量 引出关键字&#xff1a;static 又名&#xff1a;静态变量&#xff0c;静态字段&#xff0c;类字段&#xff08;字段又名属性&#xff0c;成员方法&#xff09;&#xff0c;类属性 是什么&#xff1f; 供该&#xff08;同一个类&#xff09;的所有对象共享的变量 &am…...

智能手表为什么需要做 EN 18031 认证?

EN 18031 是欧盟针对电磁兼容性&#xff08;EMC&#xff09;中人体暴露于电磁场的安全要求制定的标准&#xff0c;全称为 《Electromagnetic compatibility (EMC) - Standards for protective measures against electromagnetic fields with regard to human exposure》&#x…...

什么是 Agent 的 Message

Messages 2.4.1 概述 什么是 Agent 的 Message&#xff1f; 当你和朋友聊天、在网上搜索信息或是对手机语音助手说“帮我查一下天气”时&#xff0c;其实你都在向某个“代理者(Agent)”发送一条“信息(Message)”。这里的“代理者”既可以是一个人&#xff0c;也可以是一个能执…...

如何用JAVA手写一个Tomcat

一、初步理解Tomcat Tomcat是什么&#xff1f; Tomcat 是一个开源的 轻量级 Java Web 应用服务器&#xff0c;核心功能是 运行 Servlet/JSP。 Tomcat的核心功能&#xff1f; Servlet 容器&#xff1a;负责加载、实例化、调用和销毁 Servlet。 HTTP 服务器&#xff1a;监听端口…...

WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来

引言 音视频直播技术已经深刻影响了我们的生活方式&#xff0c;尤其是在教育、医疗、安防、娱乐等行业中&#xff0c;音视频技术成为了行业发展的重要推动力。近年来&#xff0c;WebRTC作为一种开源的实时通信技术&#xff0c;成为了音视频领域的重要选择&#xff0c;它使得浏览…...

COMPUTEX 2025 | 广和通创新解决方案共筑AI交互新纪元

5月20日至23日&#xff0c;广和通携多领域创新解决方案亮相2025年台北国际电脑展&#xff08;COMPUTEX 2025&#xff09;&#xff0c;台北南港展览馆#K0727a展位。此次展会&#xff0c;广和通围绕“Advancing Connectivity Intelligent Future”为主题&#xff0c;设置四大核心…...

COMPUTEX 2025 | 广和通率先发布基于MediaTek T930 平台的5G模组FG390

5月19日&#xff0c;全球领先的无线通信模组和AI解决方案提供商广和通率先发布基于MediaTek T930平台的5G模组FG390系列。FG390系列模组为以5G固定无线接入&#xff08;Fixed Wireless Access&#xff0c;FWA&#xff09;为代表的MBB终端产品而设计&#xff0c;将在CPE&#xf…...

Power Integrations 汽车电源管理方案:为汽车应用增加系统价值

在新能源汽车产业蓬勃发展的当下&#xff0c;高效的电源管理方案成为提升汽车性能与可靠性的关键。近期&#xff0c;Power Integrations 举办线上交流会&#xff0c;介绍了基于其 1700V InnoSwitch3-AQ 反激式开关 IC 的五款全新参考设计&#xff0c;旨在为 800V 纯电动汽车提供…...

汽车转向系统行业2025数据分析报告

汽车转向系统市场概况 2024年全球汽车转向系统市场规模约为2769.4亿元&#xff0c;预计到2031年将增长至3296.3亿元&#xff0c;年均复合增长率&#xff08;CAGR&#xff09;为2.5%。这一增长主要得益于汽车行业的持续发展以及转向系统技术的不断进步。 市场驱动因素 汽车转…...

Tiny C 编译器中,如何实现宏展开和头文件包含的预处理逻辑?

首先&#xff0c;预处理的主要功能包括宏展开、头文件包含、条件编译等。用户的问题主要集中在宏展开和头文件包含&#xff0c;所以需要分别考虑这两个部分。 关于宏展开&#xff0c;首先需要解析#define指令。编译器在预处理阶段需要维护一个符号表&#xff0c;用来存储宏的名…...

谈谈 Kotlin 中的构造方法,有哪些注意事项?

在 Kotlin 中&#xff0c;构造方法分为主构造方法&#xff08;Primary Constructor&#xff09;和次构造方法&#xff08;Secondary Constructor&#xff09;。 1 主构造方法 主构造方法是类的核心构造方法&#xff0c;直接在类头声明&#xff0c;位于类名之后。 1.1 基本语…...

Elasticsearch常用命令

以下是 Elasticsearch 查看集群状态配置和索引完整操作流程的详细命令: 一、查看集群状态与配置 1. 集群健康状态 curl -X GET "localhost:9200/_cluster/health?pretty" 关键参数: level=indices:显示每个索引的健康状态 level=shards:显示每个分片的详细状…...

深入解读RTP协议:RFC 3550的技术分析与应用

引言 实时传输协议&#xff08;RTP&#xff09;&#xff0c;作为一项重要的技术规范&#xff0c;在多媒体通信中扮演着至关重要的角色。尤其在音视频传输中&#xff0c;RTP为媒体流提供了端到端的传输机制&#xff0c;能够支持高质量、低延迟的音视频数据流传输。随着互联网及…...

使用 electron-builder 打包与发布 Electron 应用

基于 electron-vite-vue 项目结构 本文将基于 electron-vite-vue 脚手架&#xff0c;详细介绍如何使用 electron-builder 实现&#xff1a; ✅ 多平台打包&#xff08;Windows / macOS / Linux&#xff09;✅ 自动更新发布配置✅ 常用构建脚本与输出结构 &#x1f4c1; 项目结…...

命令行删除node_modules

文章目录 前言一、linux二、windows 前言 最近公司在重构项目&#xff0c;使用的monorepo&#xff0c;这就导致多个项目有多个node_modules。所以在主项目的package.json中写一个清除所有项目的node_modules。第一次研究命令行的代码&#xff0c;记录一下。但我感觉我写的不太…...

naive-ui切换主题

1、在App.vue文件中使用 <script setup lang"ts"> import Dashboard from ./views/dashboard/index.vue import { NConfigProvider, NGlobalStyle, darkTheme } from naive-ui import { useThemeStore } from "./store/theme"; // 获取存储的主题类…...

开源Vue表单设计器FcDesigner中组件联动的配置教程

在用FcDesigner表单开发中&#xff0c;经常需要实现组件之间的联动行为&#xff0c;例如当某个输入框的值满足特定条件时&#xff0c;动态显示或隐藏其他组件。FormCreate 提供了强大的组件联动功能&#xff0c;通过 control 配置项实现组件的加载、显示、禁用和必填等状态控制…...

使用 Shadcn UI 构建 Java 桌面应用

许多桌面应用程序&#xff0c;如 Slack、Notion、Microsoft Teams 和 Linear&#xff0c;都采用基于 Web 的用户界面。这已成为现代软件开发中的常见做法&#xff0c;开发者可以借助熟悉的 Web 技术构建应用&#xff0c;从而简化开发流程。 在本篇文章中&#xff0c;我们将向您…...

25_05_19Linux实战篇、第一章_01若依前后端部署之路(后端)

Linux_实战篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;若依前后端动静分离(后端 ) 版本号: 1.0,0 作者: 老王要学习 日期: 2025.05.20 适用环境: Rocky9.5 文档说明 本文围绕 Linux 实战展开&#x…...

Python慕课学习记录

中国大学MOOC&#xff08;慕课&#xff09;观看记录&#xff1a; Python123课后相应的练习、考试记录...

2025年渗透测试面试题总结-快手[实习]安全工程师(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 快手[实习]安全工程师 一面问题分析与详细回答 1. 自我介绍 4. 项目问题与解决 7. 防止SQL注入&…...

【iOS(swift)笔记-10】利用类的继承来实现不同地区语言的显示

XCode项目原生开发有自带的可区分语言的功能体系&#xff0c;建议采用原生开发&#xff0c;此处利用类的继承来实现不同地区语言的显示是为了方便&#xff0c;而且在unity游戏开发中采用此法也挺灵活适用。 // 定义一个语言控制类 class LanguageController { // 根据系统切换…...

C语言中的弱符号 __attribute__((weak)) 的使用方法

以下是一个脱离 CallStack.h 的极简 C 语言示例&#xff0c;通过 弱符号覆盖 和 运行时检查 两个场景&#xff0c;展示 __attribute__((weak)) 的核心用法&#xff1a; 一、代码实现 1. 弱符号定义与覆盖&#xff08;weak_demo.c&#xff09; // weak_demo.c #include <st…...

禁止window安全中心乱删文件

将文件/文件夹添加到 Defender 排除列表 如果你确定文件安全&#xff0c;可以将其添加到 排除列表&#xff0c;防止 Defender 误删&#xff1a; Windows 安全中心 → “病毒和威胁防护” → “管理设置”。 下拉找到 “排除项” → “添加或删除排除项”。 点击 “ 添加排除…...

【JavaScript异步编程终极指南】从回调地狱到Async/Await的实战突围

目录 &#x1f30d; 前言&#xff1a;技术背景与价值&#x1f494; 当前技术痛点&#x1f6e0; 解决方案概述&#x1f465; 目标读者说明&#x1f50d; 一、技术原理剖析&#x1f9e0; 核心作用讲解&#x1f9e9; 关键技术模块说明⚖️ 技术选型对比 &#x1f4bb; 二、实战演示…...

【算法专题十五】BFS解决最短路问题

文章目录 1.最短路问题简介&#xff08;边权为1的最短路问题&#xff09;2.迷宫中离入口最近的出口2.1 题目2.2 思路2.3 代码 3.最小基因变化3.1 题目3.2 思路3.3 代码 4.单词接龙4.1 题目4.2 思路4.3 代码 5.为高尔夫比赛砍树5.1 题目5.2 思路5.3 代码 1.最短路问题简介&#…...

upload-labs通关笔记-第16关 文件上传之exif_imagetype绕过(图片马)

目录 一、exif_imagetype 二、开启exif模块 1、phpstudy设置勾选php_exif模块 2、php.ini文件配置开启php_exif模块 三、源码分析 四、图片马 1、图片马概念 2、图片马制作 五、渗透实战 1、上传图片马 2、利用文件包含访问图片马 &#xff08;1&#xff09;jpg …...

力扣-两数之和

1.题目描述 2.题目链接 LCR 006. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 3.题目代码 class Solution {public int[] twoSum(int[] numbers, int target) {int[]retnew int[2];int left0,rightnumbers.length-1;while(left<right){if(numbe…...

什么是大数据?

大数据的详细定义 大数据是来自计算机、移动设备和机器传感器的海量数据&#xff08;数万亿字节&#xff09;。企业利用这些数据推动决策、改进流程和政策&#xff0c;并打造以客户为中心的产品、服务和体验。大数据之所以被定义为 “大”&#xff0c;不仅在于其体量&#xff…...

25_05_19Linux实战篇、第一章_02若依前后端部署之路(前端)

Linux_实战篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;若依前后端动静分离(前端) 版本号: 1.0,0 作者: 老王要学习 日期: 2025.05.21 适用环境: Rocky9.5 文档说明 环境准备 硬件要求 服务器&…...

SuperVINS:应对挑战性成像条件的实时视觉-惯性SLAM框架【全流程配置与测试!!!】【2025最新版!!!!】

一、项目背景及意义 SuperVINS是一个改进的视觉-惯性SLAM&#xff08;同时定位与地图构建&#xff09;框架&#xff0c;旨在解决在挑战性成像条件下的定位和地图构建问题。该项目基于经典的VINS-Fusion框架&#xff0c;但通过引入深度学习方法进行了显著改进。 视觉-惯性导航系…...

【后端】【UV】【Django】 `uv` 管理的项目中搭建一个 Django 项目

&#x1f680; 一步步搭建 Django 项目&#xff08;适用于 uv pyproject.toml 项目结构&#xff09; &#x1f9f1; 第 1 步&#xff1a;初始化一个 uv 项目&#xff08;如果还没建好&#xff09; uv init django-project # 创建项目&#xff0c;类似npm create vue⚙️ 第 …...

sqlsugar查看表结构并导出word文档

前提 SqlSugar 5.1.4 MiniWord 0.9.2 使用 using MiniSoftware; using SqlSugar;namespace ConsoleApp5 {internal class Program{/// <summary>/// 导出数据库表结构和字段信息/// https://www.donet5.com/Home/Doc?typeId1203/// </summary>/// <param n…...

【机器学习】支持向量机(SVM)

目录 一、支持向量机基本概念 1.1 定义 1.2 支持向量&#xff1a;距离超平面最近的样本点&#xff0c;决定了超平面的位置。 二、线性支持向量机 2.1 硬间隔支持向量机 2.2 软间隔支持向量机 三、非线性支持向量机 3.1 核函数 3.2 常用核函数 3.2.1 线性核&#xff1a…...

[Java实战]Spring Boot整合MinIO:分布式文件存储与管理实战(三十)

[Java实战]Spring Boot整合MinIO&#xff1a;分布式文件存储与管理实战&#xff08;三十&#xff09; 一、MinIO简介与核心原理 MinIO 是一款高性能、开源的分布式对象存储系统&#xff0c;兼容 Amazon S3 API&#xff0c;适用于存储图片、视频、日志等非结构化数据。其核心特…...

SpringBoot微服务编写Dockerfile流程及问题汇总

背景 跟 Docker 磕了两天&#xff0c;将一个包含 N 个微服务的应用部署包改造&#xff0c;使其能够生成 Docker 镜像&#xff0c;并在 Docker 容器中运行。几年前玩过 Docker&#xff0c;隐约记得几个命令「Dockerfile 命令&#xff1a;黑卡饮料、山楂果费、哦SUV&#xff0c;…...

PostgreSQL使用

一、PostgreSQL语法 PostgreSQL表、模式、库三者之间的关系 库 -> 模式 -> 表、视图、函数等等对象。 在postgresql的交互式终端psql中&#xff0c;“\”开头的命令称为元命令&#xff08;类似mysql的show语句&#xff09;&#xff0c;用于快速管理数据库。 常见元命令&…...

现代化SQLite的构建之旅——解析开源项目Limbo

现代化SQLite的构建之旅——解析开源项目Limbo 在当今飞速发展的技术世界中&#xff0c;轻量级且功能强大的数据库已成为开发者的得力助手。当我们谈论轻量级数据库时&#xff0c;SQLite无疑是一个举足轻重的名字。然而&#xff0c;随着技术的进步&#xff0c;我们对数据库的需…...

MySQL 主从复制搭建全流程:基于 Docker 与 Harbor 仓库

一、引言 在数据库管理中&#xff0c;MySQL 主从复制是一种非常重要的技术&#xff0c;它可以实现数据的备份、读写分离&#xff0c;减轻主数据库的压力。本文将详细介绍如何使用 Docker 和 Harbor 仓库来搭建 MySQL 主从复制环境&#xff0c;适合刚接触数据库和 Docker 的新手…...

网页表格转换为markdown

网页表格到Markdown&#xff1a;一键转换&#xff0c;复制即用&#xff01; 在日常工作中&#xff0c;我们经常需要从网页上复制表格数据&#xff0c;并将其转换成Markdown格式&#xff0c;以便在文档、邮件或论坛中使用。然而&#xff0c;手动转换不仅耗时&#xff0c;还容易…...

MySQL字符串拼接方法全解析

目录 常用字符串处理函数 方法一&#xff1a;CONCAT基础拼接 方法二&#xff1a;CONCAT_WS带分隔符拼接 方法三&#xff1a;GROUP_CONCAT分组拼接 方法四&#xff1a;算术运算符拼接&#xff08;仅限数字&#xff09; 常用字符串处理函数 方法一&#xff1a;CONCAT基础拼接…...

零基础教程:用 Docker + pgloader 将 MySQL 数据库迁移到 PostgreSQL

在日常开发中&#xff0c;可能会遇到从 MySQL 迁移到 PostgreSQL 的需求。你也许是&#xff1a; 正在准备从传统架构转向云原生&#xff1b;想使用 PostgreSQL 更强的事务与 JSON 支持&#xff1b;想统一团队数据库技术栈&#xff1b;纯粹为了尝试学习不同的数据库系统。 别担…...

影刀Fun叉鸟-2048

文章目录 仅为自动化演示&#xff0c;实际2048判定逻辑需要更加严谨 参考代码 # 使用提醒: # 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能 # 2. package包提供访问当前应用数据的功能&#xff0c;如获取元素、访问全局变量、获取资源文件等功能 # 3. 当此模块作…...

uni-app(2):页面

1 页面简介 uni-app项目中&#xff0c;一个页面就是一个符合Vue SFC规范的 vue 文件。 在 uni-app js 引擎版中&#xff0c;后缀名是.vue文件或.nvue文件。 这些页面均全平台支持&#xff0c;差异在于当 uni-app 发行到App平台时&#xff0c;.vue文件会使用webview进行渲染&…...

【spring】spring学习系列之十一:spring的事件监听

系列文章目录 文章目录 系列文章目录前言一、使用二、整体流程三、EventListenerMethodProcessor和DefaultEventListenerFactory1.EventListenerMethodProcessor2.DefaultEventListenerFactory3.ApplicationListenerDetector4.initApplicationEventMulticaster5.registerListen…...

代码随想录打卡|Day45 图论(孤岛的总面积 、沉没孤岛、水流问题、建造最大岛屿)

图论part03 孤岛的总面积 代码随想录链接 题目链接 视频讲解链接 思路&#xff1a;既然某个网格在边界上的岛屿不是孤岛&#xff0c;那么就把非 孤岛的所有岛屿变成海洋&#xff0c;最后再次统计还剩余的岛屿占据的网格总数即可。 dfs&#xff1a; import java.util.Scanner…...

AI人工智能——Matplotlib绘制各种数据可视化图表的基础方法

一、绘制图像基础 import matplotlib.pyplot as plt# 1、创建画布 plt.figure(figsize(20, 8), dpi100) # 2、绘制图像 x [1, 2, 3, 4, 5, 6] y [3, 5, 4, 3, 6, 1] plt.plot(x, y) # 3、显示图像 plt.show() 二、图像保存 import matplotlib.pyplot as plt# 1、创建画布 p…...