Введение в язык SQL запросов к базам данных. Баканов В.М. - 24 стр.

UptoLike

Составители: 

- 24 -
До сих пор все примеры относились к работе с одной таблицей (ЕМР
или DEPT). Запрос типа JOIN (соединение) позволяет выбирать данные из
двух или более таблиц и объединять выбранные данные в одной общей таб-
лице.
Предположим, что необходимо узнать, где работает работник по фами-
лии ALLEN. Просматривая две таблицы в БД, можно
видеть, что таблица
ЕМР не содержит колонку LOC (местоположение), а эта колонка находится в
таблице DEPT. Однако обе таблицы имеют колонку DEPTNO - номер от-
дела. Именно эти номера, содержащиеся в обеих таблицах, позволят со-
отнести строки из таблицы ЕМР со строками таблицы DEPT.
Запрашивая таблицу ЕМР, можно найти номер отдела, где работает
ALLEN:
SELECT ENAME,DEPTNO
FROM ЕМР
WHERE ENAME = 'ALLEN';
ENAME DEPTNO
ALLEN 30
И, далее, запрашивая таблицу DEPT, можно найти расположение отдела
30:
SELECT LOC
FROM DEPT
WHERE DEPTNO = 30;
LOC
CHICAGO
В результате использования этих двух запросов выяснилось, что ALLEN
работает в Чикаго.
Можно получить тот же самый результат, используя только один запрос
типа JOIN. В этом запросе перечисляются названия таблиц, которые запра-
шиваются в клаузе FROM и имена колонок, сравниваемых в обеих таблицах
(то есть общие колонки) в клаузе WHERE:
SELECT ENAME,LOC
FROM ЕМР,DEPT --- запрос к двум таблицам
WHERE ENAME = 'ALLEN'
AND EMP.DEPTNO = DEPT.DEPTNO; --- условие соединения
ENAME LOC
                                     - 24 -



     До сих пор все примеры относились к работе с одной таблицей (ЕМР
или DEPT). Запрос типа JOIN (соединение) позволяет выбирать данные из
двух или более таблиц и объединять выбранные данные в одной общей таб-
лице.
     Предположим, что необходимо узнать, где работает работник по фами-
лии ALLEN. Просматривая две таблицы в БД, можно видеть, что таблица
ЕМР не содержит колонку LOC (местоположение), а эта колонка находится в
таблице DEPT. Однако обе таблицы имеют колонку DEPTNO - номер от-
дела. Именно эти номера, содержащиеся в обеих таблицах, позволят со-
отнести строки из таблицы ЕМР со строками таблицы DEPT.
     Запрашивая таблицу ЕМР, можно найти номер отдела, где работает
ALLEN:

  SELECT ENAME,DEPTNO
  FROM ЕМР
  WHERE ENAME = 'ALLEN';

  ENAME          DEPTNO
 ALLEN             30

       И, далее, запрашивая таблицу DEPT, можно найти расположение отдела
30:

  SELECT LOC
  FROM DEPT
  WHERE DEPTNO = 30;

    LOC
 CHICAGO

     В результате использования этих двух запросов выяснилось, что ALLEN
работает в Чикаго.
     Можно получить тот же самый результат, используя только один запрос
типа JOIN. В этом запросе перечисляются названия таблиц, которые запра-
шиваются в клаузе FROM и имена колонок, сравниваемых в обеих таблицах
(то есть общие колонки) в клаузе WHERE:

  SELECT ENAME,LOC
  FROM ЕМР,DEPT --- запрос к двум таблицам
  WHERE ENAME = 'ALLEN'
     AND EMP.DEPTNO = DEPT.DEPTNO; --- условие соединения

      ENAME       LOC