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

SQL常见误区

查询的顺序

书写顺序

SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表。。他们的加载顺序

逻辑处理实际顺序

在这里插入图片描述

常见错误

在 WHERE 中使用 SELECT 的别名

sql
– 错误示例(WHERE 中不能使用别名)
SELECT Name AS EmployeeName
FROM Employees
WHERE EmployeeName LIKE ‘A%’; – 报错!
在 GROUP BY 中使用聚合函数

sql
– 错误示例(GROUP BY 不能包含聚合函数)
SELECT DeptID, AVG(Salary)
FROM Employees
GROUP BY AVG(Salary); – 报错!
混淆 HAVING 和 WHERE

sql
– HAVING 用于过滤分组,WHERE 用于过滤行
SELECT DeptID, COUNT()
FROM Employees
WHERE Salary > 5000 – 过滤行
GROUP BY DeptID
HAVING COUNT(
) > 10; – 过滤分组

IS NULL 和 IS NOT NULL

为什么不能用 = NULL 或 <> NULL?

NULL 的特殊性:
NULL 表示“未知”或“无值”,它不是具体的数据值,无法通过常规比较符(=、<>、<、>)判断。

三值逻辑:
SQL 中逻辑运算的结果可能是 TRUE、FALSE 或 UNKNOWN。当比较 NULL 时,结果通常是 UNKNOWN,而 WHERE 子句只返回 TRUE 的记录。

http://www.xdnf.cn/news/289711.html

相关文章:

  • 如何扫描系统漏洞?漏洞扫描的原理是什么?
  • 【MCP Node.js SDK 全栈进阶指南】专家篇(1):MCP-SDK扩展与定制
  • Dify本地 + vllm + Qwen
  • 走出 Demo,走向现实:DeepSeek-VL 的多模态工程路线图
  • 协议(消息)生成
  • qt csv文件写操作
  • 3.5/Q1,GBD数据库最新一区文章解读
  • P3246 [HNOI2016] 序列 Solution
  • 项目生成日志链路id,traceId
  • 数据库的二级索引
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】4.4 异构数据源整合(CSV/JSON/Excel数据导入)
  • 数据结构小扫尾——栈
  • BUUCTF 大流量分析(一) 1
  • 比较两种判断相同二叉树的方法:递归与遍历序列对比
  • 湖北理元理律师事务所:债务法律服务的民生价值重构
  • brep2seq kaggle安装 micromamba conda环境
  • 政务服务智能化改造方案和案例分析
  • QT6 源(79):阅读与注释表盘 QDial 的源码,其是基类QAbstractSlider 的子类,及其刻度线的属性举例
  • 深入理解 CSS Flex 布局:代码实例解析
  • 【Hive入门】Hive安全管理与权限控制:基于SQL标准的授权GRANT REVOKE深度解析
  • kotlin 05flow -从 LiveData 迁移到 Kotlin Flow 完整教程
  • 用Python打造自己的专属命令行工具
  • 手写 Vue 源码 === reactive 方法
  • 判断题材持续性
  • Redis的过期设置和策略
  • rocketMq win10安装并注册服务 centos7安装
  • 嵌软笔记名词汇总
  • C++基础知识1:内建数据类型 vs 自定义数据类型
  • 豆包多轮对话优化策略:上下文理解与记忆,意图识别,对话管理
  • 力扣每日一题1128等价多米诺骨牌对的数量