mysql使用过程中的几个细节注意点

由于博主目前在数据部门工作,接触最多的关系型数据库就是mysql,因为业务部门的数据一般都是存储在mysql,而最终数据需要在大数据平台上管理,所以中间过程少不了ETL,以及给数据分析BI人员提供数据,这样就会导致写很多的sql,关于sql,博主也是半路出家,野路子,所以难免会犯错误,下面整理几个细节,最近体会到的。

1. UNION关键字

MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

下面要重点注意UNION后面的关键字DISTINCT和ALL,使用不同,获取的数据也不同,细节。

语法

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

参数

  • expression1, expression2, ... expression_n: 要检索的列。

  • tables: 要检索的数据表。

  • WHERE conditions: 可选, 检索条件。

  • DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。

  • ALL: 可选,返回所有结果集,包含重复数据。

2.NULL 值处理

MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。

特别注意,NULL的比较不能使用= NULL 或 != NULL

为了处理这种情况,MySQL提供了三大运算符:

  • IS NULL: 当列的值是 NULL,此运算符返回 true。
  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
  • <=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。

关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。

在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。

MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。

猜你喜欢

转载自blog.csdn.net/qq_36330643/article/details/80743051
今日推荐