русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-09; просмотров: 559; Нарушение авторских прав


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


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

SELECT fl.Назва. fl.#F. f2.#F

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

WHERE fl.Назва = f2.Назва AND fl.#F != f2.#F

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

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

Запит 4.3______________________________________________________________

Визначити всі кафедри факультету інформатики. Мова SQL:

SELECT КАФЕДРА.Назва
FROM ФАКУЛЬТЕТ. КАФЕДРА

WHERE ФАКУЛЬТЕТ.#F = КАФЕДРА.#F AND ФАКУЛЬТЕТ.Назва = "інформатики"

Реляційна алгебра:

((ФАКУЛЬТЕТ^ = #F]KAOEflPA) [ФАКУЛЬТЕТ. Назва = "інформатики"]) [КАФЕДРА. Назва]

Запит 4.4______________________________________________________________

Визначити всіх викладачів кафедри АСУ та їхні телефонні номери. Мова SQL:

SELECT Прізвище. Тел

FROM КАФЕДРА. ВИКЛАДАЧ

WHERE КАФЕДРА.#D = ВИКЛАДАЧКО AND КАФЕДРА.Назва - "АСУ"

Реляційна алгебра: ((КАФЕДРАМ = #0]ВИКЛАДАЧ)[КАФЕДРА.Назва = "АСУ"])[ВИКЛАДАЧ.Прізвище. Тел]



<== предыдущая лекция | следующая лекция ==>
Вибирання з кількох таблиць | Використання агрегатних функцій


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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