当前位置: 首页 > 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 Server 2025 公开预览版,深度集成AI功能
  • PostgreSQL日常维护
  • Flink SQL 计算实时指标同比的实现方法
  • 云原生安全之PaaS:从基础到实践的技术指南
  • 零基础教程:用 Docker + pgloader 将 MySQL 数据库迁移到 PostgreSQL
  • UE5.6新版本—— 动画光照系统重点更新
  • docker 启动一个python环境的项目
  • 详解鸿蒙仓颉开发语言中的日志打印问题
  • linux查看本机服务器的外网IP命令
  • 系分论文《论软件系统安全分析和应用》
  • Web Workers 使用指南
  • 鸿蒙开发:应用上架第二篇,申请发布证书
  • 攻防世界——Web题 fakebook
  • 锐捷网络设备(交换机、路由器、防火墙)常用命令整理
  • 第3周作业-1层隐藏层的神经网络分类二维数据
  • 如何利用 Conda 安装 Pytorch 教程 ?
  • 小土堆pytorch--神经网络-非线性激活线性层及其他层介绍
  • 物联网相关词汇
  • 【JVM】学习笔记
  • API测试框架全解析
  • 营销型网站传统网站/下载安装
  • 专业做刀具网站的公司/百度seo刷排名软件
  • wordpress codebox/贵州二级站seo整站优化排名
  • jsp网站开发公司/最优化方法
  • 云南住房和建设厅网站首页/百度地图导航手机版免费下载
  • 网站建设先做前台还是后台/学seo需要多久