Главная страница
Навигация по странице:

  • WHERE .Для CROSS JOIN условие не указывается. SELECT * FROM A CROSS JOIN B; Типы соединения

  • Тип соединения Описание INNER

  • RIGHT [OUTER

  • OUTER

  • Операторы объединения

  • INTERSECT

  • Основы SQL. Основы sql основы sql план курса План курса


    Скачать 1.14 Mb.
    НазваниеОсновы sql основы sql план курса План курса
    АнкорKzkzkzals
    Дата21.09.2022
    Размер1.14 Mb.
    Формат файлаpptx
    Имя файлаОсновы SQL.pptx
    ТипДокументы
    #688650
    страница7 из 9
    1   2   3   4   5   6   7   8   9

    ) s2

    group by s2.aircraft_code

    order by s2.aircraft_code

    with listdata as

    (select ad.aircraft_code

    , ad.model

    , sum(case when to_char(f.date_departure,'mm')=1 then 1 else 0 end) count1

    , sum(case when to_char(f.date_departure,'mm')=2 then 1 else 0 end) count2

    , sum(case when to_char(f.date_departure,'mm')=3 then 1 else 0 end) count3

    from aircrafts_data ad

    , flights f

    where ad.aircraft_code=f.aircraft_code

    and trunc(f.date_departure) between '01.01.17‘ and ’31.03.17’

    group by ad.model, ad.aircraft_code

    )

    select aircraft_code, model, count1, count2, count3 from listdata

    union all

    select null, 'Минимум', min(count1), min(count2), min(count3) from listdata

    union all

    select null, ‘Максимум', max(count1), max(count2), max(count3) from listdata


    Оператор перекрёстного соединения, или декартово произведение CROSS JOIN соединяет две таблицы. Порядок таблиц для оператора неважен.

    Каждая строка одной таблицы соединяется с каждой строкой второй таблицы, давая тем самым в результате все возможные сочетания строк двух таблиц.

    Например, для таблиц:

    SELECT *

    FROM A, B;

    Простое перечисление таблиц через запятую практически не используется.

    Перечисление таблиц, как правило, используется совместно с условием соединения строк из разных таблиц, указываемым в предложении WHERE.

    Для CROSS JOIN условие не указывается.

    SELECT *

    FROM A

    CROSS JOIN B;

    Типы соединения

    Типы соединения

    <таблица А> [<тип соединения>] JOIN <таблица B> ON <предикат>

    В большинстве СУБД при указании слов LEFT, OUTER'>RIGHT, FULL слово OUTER можно опустить. Слово INNER также в большинстве СУБД можно опустить.


    Тип соединения

    Описание

    INNER

    возвращает все строки из нескольких таблиц, где выполняется условия соединения

    LEFT[OUTER]

    включает все строки таблицы А (левая таблица) и все совпадающие значения из таблицы B. Столбцы несовпадающих строки заполняются NULL-значениями.

    RIGHT[OUTER]

    включает все строки таблицы B (правая таблица) и все совпадающие значения таблицы А. обратный вариант для левого объединения.

    FULL[OUTER]

    включает все строки обеих таблиц. Столбцы совпадающих строк заполнены реальными значениями, а несовпадающих строк – NULL-значениями

    OUTER (внешний)

    уточняющее слово, означающее, что несовпадающие строки из ведущей таблицы включаются вместе с совпадающими.

    INNER JOIN

    INNER JOIN


    Для дальнейших пояснений будут использоваться следующие таблицы:

    Оператор внутреннего соединения INNER JOIN соединяет две таблицы. Порядок таблиц для оператора неважен.

    Каждая строка одной таблицы сопоставляется с каждой строкой второй таблицы, после чего для полученной «соединённой» строки проверяется условие соединения (вычисляется предикат соединения). Если условие истинно, в таблицу-результат добавляется соответствующая «соединённая» строка.

    Порядок таблиц для оператора важен.

    Table A

    Table B

    Порядок таблиц для оператора важен.

    Table B

    Table A

    Операторы объединения

    Операторы объединения

    UNION возвращает все строки из обоих операторов SELECT; повторяющиеся значения удаляются.

    UNION ALL возвращает все строки из обоих операторов SELECT; повторяющиеся значения показываются.

    INTERSECT возвращает строки, которые возвращены и первым, и вторым оператором SELECT.

    MINUS возвращает строки, которые возвращены первым оператором SELECT, исключая те, которые возвращены вторым оператором.

    Количество и порядок столбцов, возвращаемых SELECT из обеих таблиц, должны совпадать.


    aircrafts2

    select model from aircrafts1

    union

    select model from aircrafts2

    order by 1

    aircrafts1

    select model from aircrafts1

    union all

    select model from aircrafts2

    order by 1

    select model from aircrafts1

    intersect

    select model from aircrafts2

    aircrafts2

    aircrafts1

    select model from aircrafts1

    minus

    select model from aircrafts2
    1   2   3   4   5   6   7   8   9


    написать администратору сайта