SQL必知必会-读书笔记(四)

SQL过滤与应用过滤

在实际开发中,我们可以选择SQL过滤,也可以选择应用过滤。但不管如何,都建议使用SQL过滤,

理由如下:

  • SQL过滤的效率通常高于应用过滤(尤其是SQL优化后)
  • 在应用端处理数据库的工作会极大地影响应用性能,并使应用不具备可伸缩性
  • 使用应用过滤时,服务器不得不通过网络发送大量数据,浪费了带宽

操作符兼容问题

我们知道 !=<> 的含义是一样的,但是从不同 DBMS 兼容性的角度考虑,更加推荐使用 <>


空值 NULL

  1. 空值 NULL 是一种特殊的值,通常使用 IS NULLIS NOT NULL 来进行条件过滤
  2. NULL 与任何值比较都是 NULL
  3. NULL 在布尔类型中既不是 true 也不是 false

举个例子,假设执行:

1
SELECT * FROM your_table WHERE column1 <> 1

该语句不会包括 column1 为 NULL,因为 NULL <> 1 -> NULL,而不是true