8 месяцев назад
«SQL и NULL: почему они настолько странные?»
Иногда кажется, что SQL — это набор классических правил с жёсткой логикой, но вот приходит тема NULL, и оказывается, что ничего жёстко не работает. В этой статье мы разберёмся, почему SQL расценивает NULL весьма необычным образом (и ломает нам «обычную» логику уникальности). Будем опираться на опыт и примеры из поста “SQL nulls are weird”, где автор подробно рассказывает, как базы SQLite, Postgres и MySQL ведут себя, когда дело доходит до NULL. Если мы создаём таблицу вида: CREATE TABLE sample ( ...
Работа с NULL значениями в SQL
Работа с NULL значениями в SQL Часто бывает такое, что вместо явного значения данных в таблице попадаются NULL - "пустые" значения. И когда стоит задача отфильтровать данные, то у неопытных аналитиков и инженеров могут возникать сложности с такими пустыми значениями. Почему так происходит? В большинстве случаев фильтры пишутся с указанием явных значений в данных: конкретная строка/строки, число/числа, дата/даты Например, найти заказы, в которых участвовали продукты с id 4, 7, 9 SELECT * FROM orders WHERE product_id IN (4,7,9) Здесь все понятно. А если нужно наоборот исключить такие продукты из запроса? SELECT * FROM orders WHERE product_id NOT IN (4,7,9) Тоже вроде ок...