Введение в Inner Join в Oracle
Предложения joins используются в базе данных oracle для доступа к данным из нескольких таблиц для получения информации. Существуют различные типы соединений в базе данных Oracle.
Внутреннее объединение - это один из видов объединения в базе данных Oracle. Внутреннее соединение, объединение нескольких таблиц и возвращение тех строк, для которых условие соединения является или является истинным. Внутреннее соединение также называется простым соединением. Внутреннее соединение является наиболее распространенным соединением среди типов объединения.
Синтаксис внутреннего соединения
SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;
Визуальное представление внутреннего соединения представлено на диаграмме ниже, так как на диаграмме ниже заштрихованная область возвращается в результате внутреннего соединения Oracle
В результате Oracle Inner Join возвращает записи о пересечении t1 и t2.
Примеры запросов для внутреннего соединения
Давайте разберемся с внутренним объединением в деталях с помощью некоторых примеров запросов:
Пример № 1
Пример запроса для Inner Join
SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;
Приведенный выше пример Oracle INNER JOIN вернет все строки из таблицы сотрудников и таблицы отделов, в которых значение _id сотрудника в таблице сотрудников и таблице отделов совпадает.
Здесь мы рассмотрим схему hr, которая является образцом схемы базы данных Oracle. Схема hr содержит таблицы COUNTRIES, EMPLOYEES, DEPARTMENTS, JOB_HISTORY, JOBS, LOCATIONS, REGIONS, в которых мы заинтересованы или нуждаемся в таблицах EMPLOYEES, DEPARTMENTS и LOCATIONS.
Описание этих таблиц -
Стол СОТРУДНИКОВ
Таблица ОТДЕЛОВ
Таблица МЕСТО
Пример № 2
Пример внутреннего объединения для двух таблиц
Здесь мы хотели бы получить данные из двух таблиц СОТРУДНИКИ и ОТДЕЛЕНИЯ. Здесь запрос мы пишем, чтобы получить идентификатор сотрудника и имя сотрудника из таблицы сотрудника и название отдела из таблицы отдела -
SELECT employees. employee_id, employees. first_name, departments.department_name
FROM employees, departments
WHERE employees. employee_id = departments. department_id;
Выход
Именам столбцов с таблицей предшествует предложение Oracle SELECT. Если столбец является общим для обеих таблиц, то для ясности имя столбца должно начинаться с имени таблицы. Таблицы, из которых извлекаются данные, указываются в предложении from с разделителями-запятыми. В предложении WHERE укажите условие соединения. Отношение между сотрудниками и таблицами отделов определяется значениями в общем столбце employee_id в обеих таблицах, которые должны быть одинаковыми, и это отношение называется Equi Join. Обычно первичный ключ и внешние ключи участвуют в этом отношении.
Пример № 3
Пример внутреннего объединения двух таблиц с псевдонимами
Давайте перепишем приведенный выше пример, используя псевдонимы таблиц как -
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id;
Выход
Как и в предыдущем запросе, псевдонимы таблиц создаются в предложении from после имени столбца, а вместо записи полного имени таблицы в предложении select перед каждым столбцом используйте псевдонимы таблиц как e и d в указанном выше запросе.
Пример № 4
Пример внутреннего объединения для двух таблиц с добавлением дополнительных предложений
Следующий пример запроса, где мы добавляем дополнительные предложения к нашему оператору Oracle SELECT, где предложение для добавления агрегатов, ограничения возвращаемых строк, определения порядка сортировки и так далее. Вот пример запроса, который извлекает всех сотрудников, которые работают в отделах финансов, производства и строительства.
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ( 'Finance', 'Manufacturing', 'Construction' );
Выход
Пример № 5
Пример внутреннего объединения двух таблиц с предложением order by
В следующем примере запроса мы переписываем вышеуказанный запрос, добавляя предложение order by, поэтому отображаются данные сотрудника, отсортированные по названию отдела.
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ('Finance', 'Manufacturing', 'Construction')
ORDER BY d. department_name;
Выход
Пример № 6
Пример внутреннего объединения для объединения нескольких таблиц
Иногда для получения информации нам может потребоваться объединить более двух таблиц. Далее мы напишем пример запроса для объединения нескольких таблиц. Рассмотрим пример, в котором мы хотим получить имя сотрудника из таблицы сотрудников, название отдела из таблицы отделов и идентификатор страны местоположения, где этот сотрудник работает, в таблице местоположений.
SELECT e. first_name, e. salary, d. department_name, l. city, l. country_id
FROM employees e, departments d, locations l
WHERE e. employee_id = d. department_id
AND
d. location_id = l. location_id;
Выход
Для объединения четырех или более таблиц применяется та же концепция, добавляя имя таблицы в предложении FROM оракула и применяя условие соединения в предложении WHERE оракула.
Вывод
Внутреннее объединение - это один из видов объединения в базе данных Oracle. Внутреннее соединение, используемое для объединения нескольких таблиц и возврата тех строк, для которых условие соединения является или является истинным. Обычно первичный ключ и внешний ключ участвуют во внутреннем соединении, чтобы создать связь между таблицами.
Рекомендуемые статьи
Это руководство по Inner Join в Oracle. Здесь мы обсуждаем введение в Inner join вместе с некоторыми примерами в деталях. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -
- Присоединяется в MySQL
- Oracle Queries
- Oracle Data Warehousing
- Что такое база данных Oracle