русс | укр

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

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

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

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


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

Багатотабличні з’єднання в стандарті SQL2.


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


Однією з найбільших переваг розширеного синтаксису секції FROM є те, що забезпечується чітка специфікація для сполучень трьох і більше таблиць.

При побудові таких складних сполучень будь-який вираз з’єднання із тих, які були вказані на синтаксичній діаграмі секції FROM і описані в попередніх §§ - може бути взятий в круглі дужки, і використаний для створення інших виразів з’єднання, так, ніби цей вираз – звичайна таблиця.

Тобто, так само, як SQL1 за допомогою круглих дужок дозволяє комбінувати різні арифметичні операції + - * / , стандарт SQL2 дає можливість створювати складні вирази для сполучень.

Для прикладу багато табличного з’єднання, припустимо, що до таблиць Girls і Boys добавлена нова таблиця Parents (батьки) яка має три стовпчики:

Child – відповідає стовпчику Prizv в таблицях Girls і Boys;

Type – приймає значення „T”(тато) або „M” (мама);

Name – ім’я тата чи мами.

Деякий рядок таблиці Girls чи таблиці Boys може мати два зв’язаних рядки в таблиці Parents, один з яких визначає маму, а інший – тата, або може мати тільки один зв’язаний рядок, або може взагалі не мати зв’язаних рядків, якщо відсутні дані про батьків цієї дитини.

В таблицях Girls, Boys та Parents в сукупності міститься достатньо широкий набір даних – щоб вивчати багатотабличні з’єднання.

77). Вивести список всіх дівчат та їх мам, а також хлопців, які живуть в тому самому місті, що і дівчата.

SELECT Girls. Prizv, Name, Boys. Prizv

FROM (Girls INNER JOIN Parents ON Parents. Child = Girls. Prizv)

INNER JOIN Boys ON Girls. Misto = Boys. Misto

WHERE Type = ‘M’

Оскільки обидва з’єднання - внутрішні, то дівчата, які не мають зв’язаних рядків в таблицях Parents і Boys, в таблицю результатів запиту не попадуть.

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

78). Вивести список всіх дівчат та їх мам (а також дівчат, для яких відсутня інформація про їх мам), та хлопців, які проживають в тому самому місті, що і дівчата:



<== предыдущая лекция | следующая лекция ==>
Перехресні з’єднання і розширені запити на з’єднання в SQL2 | OR (Type IS NULL)


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


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

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

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


 


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

 
 

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

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