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

影刀RPA 影刀中的SQL查询大全:从简单查询到多表联查

影刀RPA 影刀中的SQL查询大全:从简单查询到多表联查

作者:林焱

影刀内置了SQLite指令,但很多新手只会最简单的SELECT *。这篇把RPA场景中最常用的SQL语句整理出来——不是数据库教科书,而是你在写影刀流程时打开就能抄的速查表。

基础查询

-- 查全部SELECT*FROMproducts;-- 查特定列SELECTname,priceFROMproducts;-- 条件筛选SELECT*FROMproductsWHEREprice>100;-- 多条件SELECT*FROMproductsWHEREprice>100ANDstock>0;SELECT*FROMproductsWHEREcategory='数码'ORcategory='家电';![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1cf08cda066d4f33874624a2d2a7520f.png#pic_center)-- 模糊搜索SELECT*FROMproductsWHEREnameLIKE'%手机%';-- 排序SELECT*FROMproductsORDERBYpriceDESC;-- 降序SELECT*FROMproductsORDERBYsalesASC;-- 升序-- 取前N条SELECT*FROMproductsORDERBYsalesDESCLIMIT10;

聚合统计

-- 计数SELECTCOUNT(*)FROMorders;SELECTcategory,COUNT(*)ascntFROMproductsGROUPBYcategory;-- 求和SELECTSUM(amount)FROMordersWHEREdate>='2024-06-01';-- 平均值SELECTAVG(price)FROMproductsWHEREcategory='数码';-- 最大值/最小值SELECTMAX(price),MIN(price)FROMproducts;[video(video-9wo1KKmt-1784060842079)(type-csdn)(url-https://live.csdn.net/v/embed/526818)(image-https://v-blog.csdnimg.cn/asset/582d14c3bd0451c5399cd990b56e2a0d/cover/Cover0.jpg)(title-拼多多店群自动化报活动上架!)]-- 分组统计(RPA最常用)SELECTcategory,COUNT(*)astotal,AVG(price)asavg_price,SUM(stock)astotal_stockFROMproductsGROUPBYcategoryHAVINGtotal>5-- 只显示商品数大于5的分类ORDERBYtotalDESC;

去重与数据清洗

-- 查重复数据SELECTname,COUNT(*)ascntFROMproductsGROUPBYnameHAVINGcnt>1;-- 去重查询SELECTDISTINCTcategoryFROMproducts;![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e2c5f6fa5ced4874a728da9dbae284e4.png#pic_center)-- 找NULL值SELECT*FROMproductsWHEREpriceISNULL;SELECT*FROMproductsWHEREdescriptionISNULLORdescription='';-- 替换NULLSELECTname,COALESCE(price,0)aspriceFROMproducts;

多表联查

-- 内连接:只返回两表都匹配的SELECTo.order_id,p.name,o.quantityFROMorders oINNERJOINproducts pONo.product_id=p.id;-- 左连接:返回左表全部,右表没匹配的填NULLSELECTp.name,o.order_idFROMproducts pLEFTJOINorders oONp.id=o.product_id;-- 子查询SELECTname,priceFROMproductsWHEREprice>(SELECTAVG(price)FROMproducts);-- 联合查询(两个表结构相同,上下拼接)SELECTname,priceFROMproducts_2023UNIONALLSELECTname,priceFROMproducts_2024;

数据操作(增删改)

-- 插入INSERTINTOproducts(name,price,stock)VALUES('新产品',99.00,50);-- 批量插入(影刀采完数据后写入)INSERTINTOdaily_sales(date,product,sales)VALUES('2024-06-26','商品A',100),('2024-06-26','商品B',85);-- 更新UPDATEproductsSETprice=129.00WHEREid=1;![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/374b49e370c54d76b1991cc432f87e6f.png#pic_center)-- 条件更新UPDATEproductsSETstock=stock-1WHEREidIN(1,2,3);-- 删除DELETEFROMproductsWHEREstock=0;-- 清空表(保留结构)DELETEFROMtemp_data;

RPA场景常用SQL

-- 增量更新:新数据插入,冲突则更新INSERTORREPLACEINTOproducts(id,name,price)VALUES(1,'商品A',99.00);-- 查今天的记录SELECT*FROMordersWHEREdate=DATE('now');-- 查最近7天SELECT*FROMordersWHEREdate>=DATE('now','-7 days');-- 查本月SELECT*FROMordersWHEREstrftime('%Y-%m',date)=strftime('%Y-%m','now');-- 数据对比:昨天和今天的差异SELECTtoday.product,today.sales-yesterday.salesaschangeFROMdaily_sales todayLEFTJOINdaily_sales yesterdayONtoday.product=yesterday.productANDyesterday.date=DATE('now','-1 days')WHEREtoday.date=DATE('now');

踩坑实录

坑1:SQLite的日期函数和其他数据库不同

MySQL用NOW(),SQLite用DATE('now')DATE_ADD在SQLite中不存在,用DATE('now', '+7 days')

坑2:字符串拼接用 || 而不是 +

SELECT '商品' || name FROM products;对。SELECT '商品' + name会得到数字0。

坑3:SQLite的LIKE默认不区分大小写(英文字母)

TEMU店群矩阵自动化运营核价报活动

WHERE name LIKE 'apple%'能匹配 “Apple” 也匹配 “apple”。但中文字符是区分大小写的(虽然中文没有大小写)。

坑4:sqlite3默认自动提交

影刀的SQLite执行完INSERT/UPDATE/DELETE自动提交,不需要手动commit。但如果用Python的sqlite3模块,每次修改后需要conn.commit()

坑5:大量写入时性能低

SQLite一次INSERT一条在循环里会很慢。用executemany()批量插入,速度提升几十倍:

data=[(1,'A',99),(2,'B',199),...]cursor.executemany("INSERT INTO products VALUES (?,?,?)",data)

写在最后

SQL是RPA数据处理的基本功。90%的数据操作SQL都能搞定,不需要写Python循环去处理列表。掌握上述SQL语句,你就不需要为了"按分类统计"或"查重复数据"去写一堆Python代码了。

http://www.jsqmd.com/news/1191696/

相关文章:

  • Midscene.js框架(5):测试报告系统与调试技巧
  • 第二章 温度、热量与能量(四)---焓
  • 为什么你的Claude脚本总要人工重写?深度拆解Prompt熵值与代码可执行性之间的3个数学阈值(基于217个真实case统计)
  • 从GESP五级真题解析C++算法思维:有趣的数字和问题
  • 模型监控仪表盘实战:从数据漂移到服务延迟的五维健康监测
  • Cocos Creator 3.8.6 游戏快速上架微信小游戏全流程实战指南
  • 2026工作总结工具哪家好用?5款AI工具实测对比,告别无效熬夜写总结
  • 【电路实战】MOS管缓启动电路的设计要点与参数计算
  • C++20 Ranges实战:filter与transform高效用法与性能优化
  • TI CC2640R2L蓝牙5.1 MCU:超低功耗物联网设计全解析
  • 影刀RPA 影刀流程的单元测试方法:不靠试跑靠验证
  • MSP430F676x1A外设配置与低功耗设计实战指南
  • GPT-4o原生语音架构解析:多模态实时交互的技术本质
  • Matlab实战:数据预处理的完整流程与核心技巧
  • 从流到帧:拆解TCP粘包拆包与HTTP/1.1的边界协议设计
  • TI TPS6594-Q1 ESM模块深度解析:电平与PWM模式配置及功能安全实践
  • LangChain--07智能体----Agent的基本用法
  • C++多线程数据竞争:从检测工具到修复模式的完整指南
  • 热成像技术开发实战:从原理到Python代码实现
  • C++标识符与关键字详解:命名规则、编译原理与最佳实践
  • STC8H高级定时器实现PWM移相与动态占空比控制
  • 国际半导体展会哪家好?全球供应链对接,行业展会汇总 - 品牌深度评测
  • 夏斐临摹:AI代码生成从记忆到理解的技术突破
  • VC++实现Modbus TCP协议栈:从原理到工业自动化通信实战
  • VC++实现Word表格到Excel自动化转换:COM与OpenXML方案详解
  • Vue3 useAttrs() 进阶:透传属性的高效封装与实战避坑
  • 认知卸载与增强:从工具使用者到思维协作者的跃迁
  • Copernicus Open Access Hub:从数据门户到自动化工作流的开发者指南
  • C++编译错误深度解析:从“未声明的标识符”到项目配置实战
  • VS Code合规接入Claude 3与Gemini 1.5编程指南