В SQL, когда вы создаёте поле для идентификатора (id
), ключа в таблице, часто используется либо INT
, либо SERIAL
. Они похожи, но не совсем одно и то же.
Жрецы табличного культа

Когда вы впервые сталкиваетесь с базами данных, всё кажется немного запутанным: таблицы, строки, какие-то «ключи»… Но если объяснить это на живых примерах — всё становится куда яснее. Давайте разберёмся, что такое первичный ключ, внешний ключ, и ещё одно важное пон — суррогатный ключ.
Читать далее »JOIN — один из мощнейших инструментов в SQL. Но с большой силой приходит большая ответственность. Неверное использование JOIN может приводить к дублированию строк, утечке производительности, неявным ошибкам и даже разрушению логики приложения.
В этой статье рассмотрим примеры антипаттернов при использовании JOIN’ов, объясним, почему они плохи, и как их избегать.
Читать далее »Эти два оператора в SQL на первый взгляд делают похожее — они «объединяют» таблицы. Но делают это по-разному и для разных целей.
Читать далее »Конструкция CROSS JOIN
в SQL — это один из видов JOIN
, который создаёт декартово произведение двух таблиц: каждая строка из первой таблицы соединяется со всеми строками второй.
Группировка по полю, содержащему число, используется значительно чаще, чем группировка по текстовому полю. Я думаю, вы использовали функции вроде AVG(), SUM(), MIN() или MAX(). А вот использование функций GROUP_CONCAT, JSON_ARRAYAGG и JSON_OBJECTAGG встречается на столько редко, что разработчики забывают о том, что группировка по текстовому полю вообще возможна.
Читать далее »Присоединение таблиц в запросах — это базовый инструмент в работе с базами данных. Давайте рассмотрим какие присоединения (JOIN) бывают, и что от этого меняется в результатах запроса.
Читать далее »