- 博客(5)
- 收藏
- 关注
原创 delete和truncate的区别,和drop又有什么区别?
数据库删除操作差异:DELETE是DML操作,可回滚并支持WHERE条件筛选,但速度最慢;TRUNCATE是DDL操作,快速清空表数据且不可回滚,会重置自增列;DROP也是DDL操作,直接删除整个表结构及数据,速度最快但不可恢复。三者执行速度依次递增,风险也随之增大,使用需谨慎。尤其注意DROP操作可能导致'删库跑路'的严重后果,重大操作前务必备份数据。
2025-07-27 14:29:28
498
原创 SQL语句执行顺序总结及大概示例
不同数据库的逻辑执行顺序存在差异:Oracle执行顺序为FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY;Hive则是FROM→WHERE→GROUP BY→SELECT→HAVING→ORDER BY;PostgreSQL和MySQL类似,都包含表关联操作(JOIN在WHERE前),但PostgreSQL支持LIMIT/OFFSET。主要区别体现在HAVING的位置(Hive在SELECT后)、LIMIT支持度(Oracle不支持)以及DISTINCT的执行时机。
2025-07-26 14:25:37
423
原创 SQL语法之union和union all 的区别?
摘要: 本文比较了SQL中UNION ALL和UNION操作的差异。UNION ALL直接合并两表数据,保留所有重复行,效率较高。而UNION会基于所有列值进行全局去重,需额外排序操作,效率较低。关键区别在于:UNION ALL保留全部数据,UNION自动去重但性能较差。使用时需确保合并表的列数、数据类型一致,结果列名取自第一个SELECT语句。实际工作中推荐优先使用UNION ALL
2025-07-24 23:39:06
868
原创 SQL执行优化之连接查询时,条件写在where后面和写在on后面的区别
SQL连接查询中ON与WHERE条件的关键区别:ON条件定义表间关联逻辑,保留左表所有记录,右表不匹配时补NULL(如第一条SQL结果同时包含c/d和a/b数据);WHERE条件对最终结果全局过滤,不满足条件的行会被剔除(如第二条SQL仅保留a/b数据)。实际应用中,需根据需求选择:若需保留主表全部数据使用ON条件过滤右表,若需筛选最终结果集则使用WHERE条件。典型场景包括历史数据比对、数据质量检查等。
2025-07-23 20:33:51
207
原创 SQL优化小技巧之查询数据是否存在的优化
如果你的数据库目标有非常多的数据,按照原来的做法会查询全部后统计出来,而优化后的SQL只查询到第一条就结束了。相当于你需要寻找操作上的跑道是否有标记的点,你原来的做法是在操场上跑一圈查看地面上所有有标记的点,再统计求和得出结果;而优化后的做法是直接跑起来,找到第一个标记的点就可以得到结果。,让数据库查询时遇到一条就返回结果,不要再继续查找还有多少条了。
2025-07-19 16:23:31
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人