SQL напоминалка

R5AM, Александр Ящук, Москва, 2018г.
На главную


SQL
Structured Query Language - язык структурированных запросов, формальный непроцедурный язык программирования для создания, модификации и управления данными в реляционной базе данных.

Типы JOIN-нов
(INNER) JOIN - перересечение двух множеств. Результат содержит только записи из обеих таблиц, отвечающие указанному критерию.
Диаграмма Венна - INNER JOIN
Диаграмма Венна - INNER JOIN
Пример INNER JOIN
    SELECT t1.key1, 
           t1.field1 as Name, 
           t1.key2 as T1Key, 
           t2.key2 as T2Key, 
           t2.field1 as City
      FROM Table1 t1 INNER JOIN Table2 t2 ON t1.key2 = t2.key2;
    
LEFT (OUTER) JOIN - левое внешнее объединение. В результате все запрошенные данные из таблицы в левой части JOIN плюс данные из правой таблицы, пересекающиеся с первой таблицей.
Диаграмма Венна - LEFT JOIN
Диаграмма Венна - LEFT JOIN
Пример LEFT JOIN
    SELECT t1.key1, 
           t1.field1 as Name, 
           t1.key2 as T1Key, 
           t2.key2 as T2Key, 
           t2.field1 as City
      FROM Table1 t1 LEFT JOIN Table2 t2 ON t1.key2 = t2.key2;
    
RIGHT JOIN - правое внешнее объединение. В результате все запрошенные данные из таблицы, стоящей в правой части оператора JOIN, плюс данные из левой таблицы, пересекающиеся с правой.
Диаграмма Венна - RIGHT JOIN
Диаграмма Венна - RIGHT JOIN
Пример RIGHT JOIN
    SELECT t1.key1,
           t1.field1 as Name,
           t1.key2 as T1Key,
           t2.key2 as T2Key,
           t2.field1 as City
      FROM Table1 t1 RIGHT JOIN Table2 t2 ON t1.key2 = t2.key2;
    
FULL JOIN - полное внешнее соединение. Комбинация двух предыдущих. В результате присутствуют все записи из Table1 и соответствующие им записи из Table2. Если соответствия нет - поля из Table2 будут пустыми. Записи из Table2, которым не нашлось пары в Table1, тоже будут присутствовать в результирующем наборе. В этом случае поля из Table1 будут пустыми.
Диаграмма Венна - FULL JOIN
Диаграмма Венна - FULL JOIN
CROSS JOIN - Результат содержит все варианты комбинации строк из Table1 и Table2, то есть Декартово произведение. Условие соединения при этом не указывается. При использовании CROSS JOIN генерируется точно тот же результат, что и при вызове двух таблиц (разделенных запятой) без всякого JOIN вообще. Если в Table1 содержится N1 записей, а в Table2 – N2 записей, в результате будет произведение N1хN2 записей. Диаграмма Венна трёхмерная будет???
1

    




На главную
К началу страницы