кодесурса
«SQLite

Oracle Natural Join

script1adsense2code
script1adsense3code

Что такое естественное соединение в Oracle?

  • Объединение основано на всех столбцах в двух таблицах с одинаковыми именами и типами данных.
  • Объединение создается с использованием ключевых слов NATURAL JOIN.
  • Он выбирает строки из двух таблиц, которые имеют одинаковые значения во всех сопоставляемых столбцах.
  • При указании столбцов, участвующих в естественном объединении, не указывайте имя столбца с именем таблицы или псевдонимом таблицы.

SQL: 1999 синтаксис

 ВЫБЕРИТЕ table1.column, table2.column
ИЗ таблицы 1
ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ table2;

Где table1, table2 - это имена таблиц, участвующих в объединении.

Пример: Oracle Natural Joins

В этом примере таблица LOCATIONS присоединяется к таблице COUNTRY с помощью столбца country_id, который является единственным столбцом с одинаковым именем в обеих таблицах. Если бы присутствовали другие общие столбцы, объединение использовало бы их все.

Пример таблицы: расположение


Пример таблицы: страны


Код SQL:

SQL> SELECT postal_code, city,
  2  region_id, country_name
  3  FROM locations
  4  NATURAL JOIN countries;

Пример вывода:

 POSTAL_CODE CITY REGION_ID COUNTRY_NAME
------------ ------------------------------ -------- - -------------------------
00989 Рома 1 Италия
10934 Венеция 1 Италия
1689 Токио 3 Япония
6823 Хиросима 3 Япония
26192 Саутлейк 2 Соединенные Штаты Америки
99236 Южный Сан-Франциско 2 Соединенные Штаты Америки
50090 Южный Брансуик 2 Соединенные Штаты Америки
98199 Сиэтл 2 Соединенные Штаты Америки
M5V 2L7 Торонто 2 Канада
YSW 9T2 Whitehorse 2, Канада
190518 Пекин 3 Китай
490231 Бомбей 3 Индия
2901 Сидней 3 Австралия
540198 Сингапур 3 Сингапур
             Лондон 1 Великобритания
OX9 9ZB Оксфорд 1 Великобритания
09629850293 Стретфорд 1 Великобритания
80925 Мюнхен 1 Германия
01307-002 Сан-Паулу 2 Бразилия
1730 Женева 1 Швейцария
3095 Берн 1 Швейцария
3029SK Утрехт 1 Нидерланды
11932 Мехико 2 Мексика
23 строки выбраны.	   

Natural объединяет с предложением WHERE

Вы можете реализовать дополнительные ограничения для естественного объединения, используя предложение WHERE. В предыдущем примере таблица LOCATIONS была присоединена к таблице DEPARTMENT с помощью столбца COUNTRY_ID, теперь вы можете ограничить строки вывода теми, чей location_id превышает 2000.

Код SQL:

SQL> SELECT postal_code, city,
   2  region_id, country_name
   3  FROM locations
   4  NATURAL JOIN countries
   5  WHERE location_id>2000;

Пример вывода:

 POSTAL_CODE CITY REGION_ID COUNTRY_NAME
------------ ------------------------------ -------- - -------------------
490231 Бомбей 3 Индия
2901 Сидней 3 Австралия
540198 Сингапур 3 Сингапур
             Лондон 1 Великобритания
OX9 9ZB Оксфорд 1 Великобритания
09629850293 Стретфорд 1 Великобритания
80925 Мюнхен 1 Германия
01307-002 Сан-Паулу 2 Бразилия
1730 Женева 1 Швейцария
3095 Берн 1 Швейцария
3029SK Утрехт 1 Нидерланды
11932 Мехико 2 Мексика
12 выбранных рядов. 

Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 11g Express Edition.

ЕСТЕСТВЕННЫЕ СОЕДИНЕНИЯ: SQL и другие реляционные базы данных

Предыдущий: НЕ EQUIJOINS
Далее: СОЕДИНЯЕТСЯ с предложением ON

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code