HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В этом уроке мы вспомним типы соединений JOIN. Это один из ключевых операторов SQL, который позволяет объединять данные из разных таблиц. JOIN позволяет совмещать информацию из нескольких таблиц на основе связанных значений в них, что позволяет получить более полные и сложные результаты запросов к базе данных.</p>
1 <p>В этом уроке мы вспомним типы соединений JOIN. Это один из ключевых операторов SQL, который позволяет объединять данные из разных таблиц. JOIN позволяет совмещать информацию из нескольких таблиц на основе связанных значений в них, что позволяет получить более полные и сложные результаты запросов к базе данных.</p>
2 <h2>Соединение INNER JOIN</h2>
2 <h2>Соединение INNER JOIN</h2>
3 <p>INNER JOIN - это операция объединения, которая возвращает только те строки, которые имеют соответствующие значения в обеих таблицах, участвующих в объединении.</p>
3 <p>INNER JOIN - это операция объединения, которая возвращает только те строки, которые имеют соответствующие значения в обеих таблицах, участвующих в объединении.</p>
4 <h2>Соединение LEFT JOIN</h2>
4 <h2>Соединение LEFT JOIN</h2>
5 <p>LEFT JOIN - это операция объединения, которая возвращает все строки из левой таблицы table1 и только соответствующие строки из правой таблицы table2. Если в правой таблице нет соответствующей строки, то возвращается NULL для значений правой таблицы.</p>
5 <p>LEFT JOIN - это операция объединения, которая возвращает все строки из левой таблицы table1 и только соответствующие строки из правой таблицы table2. Если в правой таблице нет соответствующей строки, то возвращается NULL для значений правой таблицы.</p>
6 <h2>Соединение RIGHT JOIN</h2>
6 <h2>Соединение RIGHT JOIN</h2>
7 <p>RIGHT JOIN - это операция объединения, которая возвращает все строки из правой таблицы (table2) и только соответствующие строки из левой таблицы (table1). Если в левой таблице нет соответствующей строки, то возвращается NULL для значений левой таблицы.</p>
7 <p>RIGHT JOIN - это операция объединения, которая возвращает все строки из правой таблицы (table2) и только соответствующие строки из левой таблицы (table1). Если в левой таблице нет соответствующей строки, то возвращается NULL для значений левой таблицы.</p>
8 <h2>Соединение FULL JOIN</h2>
8 <h2>Соединение FULL JOIN</h2>
9 - <p>FULL JOIN (или FULL OUTER JOIN) - это операция объединения, которая возращает все строки из обеих таблиц (table1 и table2), даже если нет соответствующих строк в другой таблице. Если в любой из таблиц нет соответствующих строк, то возвращается NULL для значений этой таблицы.</p>
9 + <p>FULL JOIN (или FULL OUTER JOIN) - это операция объединения, которая возвращает все строки из обеих таблиц (table1 и table2), даже если нет соответствующих строк в другой таблице. Если в любой из таблиц нет соответствующих строк, то возвращается NULL для значений этой таблицы.</p>
10 <h2>Соединение CROSS JOIN</h2>
10 <h2>Соединение CROSS JOIN</h2>
11 <p>CROSS JOIN - это операция объединения, которая возвращает декартово произведение двух таблиц, то есть все возможные комбинации строк из обеих таблиц. При использовании CROSS JOIN каждая строка из левой таблицы будет объединена со всеми строками из правой таблицы.</p>
11 <p>CROSS JOIN - это операция объединения, которая возвращает декартово произведение двух таблиц, то есть все возможные комбинации строк из обеих таблиц. При использовании CROSS JOIN каждая строка из левой таблицы будет объединена со всеми строками из правой таблицы.</p>
12 <h2>Риски и опасности NULL</h2>
12 <h2>Риски и опасности NULL</h2>
13 <ul><li>Cравнение значений:</li>
13 <ul><li>Cравнение значений:</li>
14 </ul><ul><li>Арифметические вычисления: 5 + NULL = NULL. Любая операция приводит к NULL</li>
14 </ul><ul><li>Арифметические вычисления: 5 + NULL = NULL. Любая операция приводит к NULL</li>
15 <li>Сортировка: NULL попадаются в рандомных местах</li>
15 <li>Сортировка: NULL попадаются в рандомных местах</li>
16 <li>Внешние ключи: Нарушения составления таблиц</li>
16 <li>Внешние ключи: Нарушения составления таблиц</li>
17 <li>Агрегирующие функции: NULL значения в агрегатных функциях обрабатываются по особому - они игнорируются.</li>
17 <li>Агрегирующие функции: NULL значения в агрегатных функциях обрабатываются по особому - они игнорируются.</li>
18 <li>Вывод на экран: Возможное недопонимание результатов, ухудшение пользовательского опыта: сложно воспринимаются, сложно строить графики</li>
18 <li>Вывод на экран: Возможное недопонимание результатов, ухудшение пользовательского опыта: сложно воспринимаются, сложно строить графики</li>
19 </ul><h2>Оператор NVL</h2>
19 </ul><h2>Оператор NVL</h2>
20 <p>Оператор NVL позволяет заменить NULL-значения на какое-то дефолтное значение.</p>
20 <p>Оператор NVL позволяет заменить NULL-значения на какое-то дефолтное значение.</p>
21 <h2>Оператор COALESCE</h2>
21 <h2>Оператор COALESCE</h2>
22 <p>COALESCE возвращает первое не NULL значение из списка. Если все параметры NULL, то функция возвращает NULL.</p>
22 <p>COALESCE возвращает первое не NULL значение из списка. Если все параметры NULL, то функция возвращает NULL.</p>
23 <h2>Оператор DECODE</h2>
23 <h2>Оператор DECODE</h2>
24 <p>Функция DECODE не создана для обработки NULL-значений, но ее можно использовать по аналогии с функцией NVL.</p>
24 <p>Функция DECODE не создана для обработки NULL-значений, но ее можно использовать по аналогии с функцией NVL.</p>