草庐IT

sqlserverMySQL

全部标签

那些年我们踩过的坑,SQL 中的空值陷阱!

SQL是一种声明式的语言,我们只需要描述想要的结果(WHAT),而不关心数据库如何实现(HOW);虽然SQL比较容易学习,但是仍然有一些容易混淆和出错的概念。今天我们就来说说SQL中的空值陷阱和避坑方法,涉及的数据库包括MySQL、Oracle、SQLServer、PostgreSQL以及SQLite。还是老规矩,结论先行:NULL特性MySQLOracleSQLServerPostgreSQLSQLite三值逻辑✔️✔️✔️✔️✔️空值比较IS[NOT]NULL、exprNULLIS[NOT]NULL、''ISNULLIS[NOT]NULLIS[NOT]NULL、IS[NOT]DISTINC

SQL 编程思想:一切皆关系

在计算机领域有许多伟大的设计理念和思想,例如:在Unix中,一切皆文件。在面向对象的编程语言中,一切皆对象。关系数据库同样也有自己的设计思想:在SQL中,一切皆关系。关系模型关系模型(Relationalmodel)由E.F.Codd博士于1970年提出,以集合论中的关系概念为基础;无论是现实世界中的实体对象还是它们之间的联系都使用关系表示。我们在数据库系统中看到的关系就是二维表(Table),由行(Row)和列(Column)组成。因此,也可以说关系表是由数据行构成的集合。关系模型由数据结构、关系操作、完整性约束三部分组成。关系模型中的数据结构就是关系表,包括基础表、派生表(查询结果)和虚拟

那些年我们踩过的坑,SQL 中的空值陷阱!

SQL是一种声明式的语言,我们只需要描述想要的结果(WHAT),而不关心数据库如何实现(HOW);虽然SQL比较容易学习,但是仍然有一些容易混淆和出错的概念。今天我们就来说说SQL中的空值陷阱和避坑方法,涉及的数据库包括MySQL、Oracle、SQLServer、PostgreSQL以及SQLite。还是老规矩,结论先行:NULL特性MySQLOracleSQLServerPostgreSQLSQLite三值逻辑✔️✔️✔️✔️✔️空值比较IS[NOT]NULL、exprNULLIS[NOT]NULL、''ISNULLIS[NOT]NULLIS[NOT]NULL、IS[NOT]DISTINC

SQL 编程思想:一切皆关系

在计算机领域有许多伟大的设计理念和思想,例如:在Unix中,一切皆文件。在面向对象的编程语言中,一切皆对象。关系数据库同样也有自己的设计思想:在SQL中,一切皆关系。关系模型关系模型(Relationalmodel)由E.F.Codd博士于1970年提出,以集合论中的关系概念为基础;无论是现实世界中的实体对象还是它们之间的联系都使用关系表示。我们在数据库系统中看到的关系就是二维表(Table),由行(Row)和列(Column)组成。因此,也可以说关系表是由数据行构成的集合。关系模型由数据结构、关系操作、完整性约束三部分组成。关系模型中的数据结构就是关系表,包括基础表、派生表(查询结果)和虚拟