Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_OBD.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4.87 Mб
Скачать

7.5.4.5.2. Праве відкрите зовнішнє з'єднання.

FROM T1 RIGHT JOIN T2 ON T1.P1 = T2.P1 –праве відкрите

Правим зовнішнім з'єднанням називається з'єднання, при якому кортежі відношення R, що не мають співпадаючих значень у загальних стовпцях відносини S, також включаються в результуюче відношення.

Це означає, що результат запиту будуть включені всі рядки правої таблиці і тільки ті рядки лівої таблиці, для яких виконується умова з'єднання. Для рядків з правої таблиці, для яких не знайдено відповідності в лівій таблиці, в стовпці результуючого набору заносяться значеня NULL.

7.5.4.5.2. Повне відкрите зовнішнє з'єднання.

Це комбінація «лівого» та «правого» з'єднаня таблиць.

FROM T1 FULL JOIN T2 ON T1.P1 = T2.P1

Якщо не вказано тип з'єднаня в речені JOIN, то по умовчаню приймається за INNER.

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

7.5.5.Операція перетинання

Операція перетинання виконується над двома логічно поєднуваними відношеннями R та S з ідентичним набором атрибутів – A1,A2, ... An.

Її відносять до операцій, що реалізують внутрішнє з’єднання.

Вона визначає відношення, що містить кортежі, що присутні як у відношенні R, так і у відношенні S.

SELECT T1.A1, T1.A2 FROM T1 INNER JOIN T2 ON T1.PK1 = T2.PK1;

Р езультат перетинання має той же склад атрибутів, як у вихідних відношенях

7.5.6.Операція ділення

Ця операція найменш очевидна зі всіх операцій реляційної алгебри.

Операція ділення виконується над двома відношенями R та S, що мають різні структури, але один або кілька атрибутів визначені на одних і тих же доменах.

У результаті операції діленя створюється нове відношення (RD), структура якого отримується шляхом виключення з множини атрибутів відношеня R множини атрибутів відношеня S.

Результуючі кортежі формуються для однакових значень загальних атрибутів (ключів зв'язку). При цьому кортежі-дублікати з RD виключаються.

SELECT DISTINCT T1.A FROM T1 INNER JOIN T2 ON T1.B = T2.B;

Лекція 10. Вступ до SQL.

Основні поняття SQL. Мова визначення даних — DDL. Запити на читання даних. Склеювання таблиць. Умови відбору рядків таблиць. Запис SQL-операторів. Маніпулювання даними. Прості запити. Сортування результатів. Агрегатні функції. Запити з групуванням. Складні запити. Підзапити. Ключові слова ANY і ALL. Багатотабличні запити. Ключові слова EXISTS і NOT EXIST. Комбінування результуючих таблиць (операції UNION, INTERSECT і EXCEPT). Зміна вмісту бази даних. Запити на оновлення даних.

10.1. Вступ Основні поняття sql.. Історія розвитку

До появи SQL в СУБД (незалежно від того, на якій моделі вони грунтувалися) доводилося підтримувати принаймні три мови, які за звичай мали мало спільного:

- мова визначення даних (ЯОД), служить для управління специфікаціями структури(або схеми) БД;

- мова маніпулювання даними (ЯМД), що дозволяє створювати прикладні програми, які взаємодіють з БД;

- мова адміністрування БД (ЯАДБ), за допомогою якого можна було виконувати службові дії (наприклад, змінювати структуру БД або проводити її налаштування з метою підвищення ефективності).

Поява в 1974 році мови SQL (Structured Query Language – мови структурованих запитів) дозволила вирішувати всі ці задачі.

Ще одна її перевага полягала в наявністі міжнародних стандартів.

Перший міжнародний стандарт був прийнятий в 1989 р., і відповідна версія мови називається SQL-89. Цей стандарт повністю підтримується практично в усіх сучасних комерційних реляційних СУБД (наприклад, у Informix, Sybase, Ingres, DB2 і т.д.).

Разом з тим стандарт SQL-89 забезпечив:

-чітку стандартизацію синтаксису і семантики операторів вибірки і маніпулювання даними.

-засобами визначення зовнішніх ключів, що дозволяють легко формулювати вимоги до системи контролю цілісності БД по посиланнях.

-засобами перевірочних обмежень цілісності, що дозволяють сформулювати умову для кожної окремої рядки таблиці.

Разом з тим стандарт SQL-89 в багатьох частинах має надзвичайно загальний характер і допускає дуже широкі тлумачення. В ньому повністю відсутні такі важливі розділи, як маніпулювання схемою БД і динамічний SQL.

Тому в березні 1992 р. був затверджений новий стандарт версії SQL-92. Він охопив практично всі необхідні для реалізації аспекти:

-маніпулювання схемою БД;

-управління транзакціями і сесіями (сесія - це послідовність транзакцій, в межах якої зберігаються тимчасові відносини)

-підключення до БД;

- динамічний SQL (sql-запит є статичним, якщо він компілюється і оптимізується на стадії, що передує виконанню програми. Ними є вбудовуванні sql-команди в програми на Сі або Кобол. Динамічний sql-запит компілюється і оптимізується під час виконання програми. Як правило, звичайні користувачі застосовують саме динамічний sql, що дозволяє створювати запити відповідно до одномоментних потребами. Між статичним і динамічним sql є певні відмінності в синтаксисі застосовуваних конструкцій та особливості виконання. Важливо, що це дозволяє навчитися використовувати sql не тільки програмістам, але і більшості кінцевих користувачів.).

Загальною точкою зору провідних виробників СУБД є те, що майбутні продукти, маючи більш розвинені можливості повинні бути сумісні з попередніми версіями. Саме в цьому ключі ведеться робота над наступним стандартом SQL-3, а також введення в нього:

-більш розвинених засобів визначення таблиць;

-підтримки повного механізму тригерів.

Проблемою введення стандарту SQL-3 є об'єктні розширення мови, що виходять за межі реляційної моделі даних, позбавляючи підтримки класичної теоретичної бази.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]