Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Природне з'єднання




Еквіз'єднання

Стовпці, що обчислюються

У фразі SELECT можна сформувати новий стовпець. У ньому записуватимуться ре­зультати обчислення виразу, в якому використовуються значення з інших стовп­ців таблиць, що з'єднуються. Наведений нижче запит видає дані про всі кафедри факультету інформатики разом з їхніми фондами та інформацією про те, яку ча­стку становить фонд кафедри від загального фонду факультету.

 

SELECT d.Назва. скФонд. (d.Фонд / f.Фонд) * 100

FROM ФАКУЛЬТЕТ f. КАФЕДРА d

WHERE f.#F = d.#F AND F.Назва = "інформатики"

 

Якщо таблиці з'єднуються за рівністю значень в одній чи кількох парах стовпців, до того ж із кожної таблиці вибираються всі стовпці, то таке з'єднання відповідає операції еквіз'єднання реляційної алгебри. Наприклад:

SELECT f.*. d.*

FROM ФАКУЛЬТЕТ f, КАФЕДРА d

WHERE f.#F = d.#F

 

Операція природного з'єднання здійснюється з'єднанням двох чи кількох таблиць за рівністю значень в одній чи кількох парах стовпців із наступним видаленням повторюваних стовпців (необхідні стовпці вказуються у фразі SELECT). Наприклад:

SELECT f.#F, f.Haзвa. f-Декан. f.Kopnyc. f.Фонд, d.#D, d-Назва. d.#3ABІДУВАЧ,

d.Kopпyc. d.Фонд

FROM ФАКУЛЬТЕТ f. КАФЕДРА d

WHERE f.#F = d.#F

Хоча стовпці Назва, Корпус, Фонд є в обох таблицях, однак вони не розглядають­ся як повторювані, оскільки мають різне семантичне навантаження. Стовпцем, який повторюється, є той єдиний, за яким виконується з'єднання, - стовпець #F, що виконує роль зовнішнього ключа в таблиці КАФЕДРА.

 

-з'єднання

Це з'єднання за будь-якою умовою. -з'єднання виконується не за первинним і зовнішнім ключами, а за іншими стовпцями. Раніше наведені різновиди з'єднан­ня є окремими випадками -з'єднання.

З'єднання таблиці зі своєю копією

Інколи необхідно з'єднати таблицю із самою собою. Для цього у фразі FROM по­трібно двічі зазначити назву таблиці з різними псевдонімами, щоб можна було на кожен її екземпляр посилатися окремо. Розглянемо такий приклад. Необхідно перевірити, чи є в таблиці ФАКУЛЬТЕТ пари рядків, де назви факультетів збігаються, а ключі #F різні.

 

SELECT П.Назва, f1.#F. f2.#F

FROM ФАКУЛЬТЕТ f1. ФАКУЛЬТЕТ f2

WHERE П.Назва = f2.Haзвa AND f1.#F!= f2.#F

З'єднання можна виконувати безпосередньо у фразі FROM, скориставшись од­ним із різновидів оператора JOIN (наприклад, F1 INNER JOIN F2 ON F1.F# = F2.F#). Слід пам'ятати, що за певних обставин потрібно саме виконувати JOIN-з'єднання, а не обчислювати декартів добуток таблиць. Наприклад, декартів добуток двох таб­лиць з десятками тисяч рядків у кожній обчислюватиметься протягом кількох го­дин, а обсяг кінцевої таблиці буде вимірюватися сотнями гігабайтів!

Розглянемо кілька запитів, що вже використовувались як приклади у розділі 3. Запити будемо записувати як мовою SQL, так і за допомогою реляційної алгебри.




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 947; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.