Вы находитесь на странице: 1из 5

Лабораторная работа №5

Тема: Виды соединений


Задания:
1. INNER JOIN
2. LEFT JOIN
3. RIGHT JOIN
4. FULL OUTER JOIN
5. Простые запросы к связанным таблицам

Oracle JOINS используются для извлечения данных из нескольких таблиц. JOIN выполняется


всякий раз, когда две или более таблиц объединяются в SQL предложении.
Есть 4 различных типа присоединения Oracle:
1. Oracle INNER JOIN (или иногда называют простое соединение)
2. Oracle LEFT OUTER JOIN (или иногда называют LEFT JOIN)
3. Oracle RIGHT OUTER JOIN (или иногда называют RIGHT JOIN)
4. Oracle FULL OUTER JOIN (или иногда называют FULL JOIN)

1. INNER JOIN (простое соединение)

INNER JOINS является наиболее распространенным типом соединения. Он возвращает все строки из
нескольких таблиц, где выполняются условия соединения.
В данном примере из двух таблиц: STUDENT и UNIVERSITY, где имеются соответствующие
значение UNIVER_ID, выводим следующие данные студентов: SURNAME, NAME, COURSE,
UNIV_NAME.

Oracle INNER JOIN будет возвращать записи, где table1 и table2 будут пересекаться.


2. LEFT OUTER JOIN

Другой тип соединения называется Oracle LEFT OUTER JOIN. Этот тип соединения возвращает все
строки из таблиц с левосторонним соединением, указанным в условии ON, и строки другой таблицы, где
объединяемые поля равны.
Для реализации скрипта LEFT OUTER JOIN нам необходимо добавить данные в таблицу SUBJECT:

Этот пример LEFT OUTER JOIN возвратит все строки из таблиц SUBJECT и LECTURER, где
объединяемые поля равны.
Если значение SUBJ_ID из таблицы SUBJECT не существует в таблице LECTURER, все поля
таблицы LECTURER будут отображаться в результирующем наборе как NULL.

Oracle LEFT OUTER JOIN возвратит все записи из table1 и только те записи из table2, которые
пересекаются с table1.

3. RIGHT OUTER JOIN


Другой тип соединения называется Oracle RIGHT OUTER JOIN. Этот тип соединения возвращает все
строки из таблиц с правосторонним соединением, указанным в условии ON, и только те строки из другой
таблицы, где объединяемые поля равны.
Для реализации скрипта RIGHT OUTER JOIN нам необходимо добавить данные в таблицу SUBJECT:

Этот пример RIGHT OUTER JOIN возвращает все строки из таблиц UNIVERSITY и LECTURER, где
объединяемые поля равны.
Если значение UNIV_ID из таблицы UNIVERSITY не существует в таблице LECTURER, все поля в
таблице LECTURER будут отображаться в результирующем наборе как NULL.

Строка для UNIVER_ID 4,5 будет включена, так как был использован RIGHT OUTER JOINS. Тем не
менее, вы заметите, что поле SURNAME и NAME для этой записи содержит значение NULL.

Oracle RIGHT OUTER JOIN возвратит все записи из table2 и только те записи из table1, которые
пересекаются с table2.

4. FULL OUTER JOIN

Другой тип соединения называется Oracle FULL OUTER JOIN. Этот тип соединения возвращает все
строки из левой таблицы и правой таблицы с NULL — значениями в местах, где условие объединения не
выполняется.
Oracle FULL OUTER JOIN будет возвращать все записи из обеих таблиц table1 и table2.

5. Простые запросы к связанным таблицам


6.
Необходимо вывести данные (фамилию, имя, курс и вуз) студентов 1,2,3 курса из таблиц STUDENT
и UNIVERSITY:

Необходимо вывести количество студентов по вузам:


Необходимо вывести данные (фамилию, имя, оценка и дата) студентов, которые получили высокие
баллы на экзаменах:

Практические задания:
1. Выведите данные лекторов (фамилия, имя, дисциплина и семестр), которые будут проводить
занятия по следующим дисциплине: Информатика. Список должен быть отсортирован по ФИО
лектора. Для соединения таблиц необходимо использовать оператор INNER JOIN;
2. Выведите данные студентов (фамилия, имя, дата рождения и университет), которые учатся в вузе
НУ. Список должен быть отсортирован по ФИО студента. Для соединения таблиц необходимо
использовать оператор INNER JOIN.