русс | укр

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

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

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

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


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

Внутренние соединения (связывание по равенству)


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


Связывание по равенству используется чаще всего и является, пожалуй, самым полезным типом связывания таблиц. Связывание по равенству называют также внутренним (INNER JOIN). При связывании по равенству таблицы связываются по общим столбцам, которые в каждой из таблиц обычно являются ключевыми. Поскольку в запросе будет присутствовать более одной таблицы, мы должны использовать для столбцов уточнения, задавая перед именем столбца имя таблицы, псевдоним или алиас — см. дальше. Имя таблицы отделятся от имени столбца точкой.

В случае полного внешнего соединения выбираются все соответствующие условию в предложении WHERE строки как левой, так и правой таблиц. Затем между ними устанавливается соответствие, заданное в предложении ON.

Свяжем две таблицы, покажем все аэропорты с указанием города, где аэропорт расположен:[31]

SELECT * FROM AIRPORT

INNER JOIN CITY ON AIRPORT.AP_CT_CODE=CITY.CT_CODE

 

Листинг 16. Результат внутреннего объединения таблиц AIROPORT и CITY - список аэропортов с указанием города расположения

AP_CODE AP_NAME AP_CT_CODE CT_CODE CT_NAME
Домодедово Москва
Внуково Москва
Шереметьево Москва
Быково Москва
Пулково С. Петербург
Савино Пермь
Кольцово Екатеренбург

Данные извлекаются из таблиц AIRPORT и CITY, поскольку требуемые данные размещаются частично в одной, а частично в другой таблице. Условие соединения задается после ключевого слова ON. "Главной" таблицей здесь, в левом соединении, является таблица AIRPORT. К каждой выбранной строке этой таблицы присоединяются данные из таблицы CITY, которые удовлетворяют условию в предложении ON. В нашем случае требуется равенство значения столбца AP_CT_CODE из таблицы AIRPORT, который является внешним ключом, значению столбца CT_CODE из таблицы CITY.



Перепишем запрос, для более осмысленного вывода:[32]

SELECT CITY.CT_NAMEAS "Город",

AIRPORT.AP_NAMEAS "Аэропорт"

FROM AIRPORT INNER JOIN CITY

ON AIRPORT.AP_CT_CODE=CITY.CT_CODE

ORDER BY CITY.CT_NAME,AIRPORT.AP_NAME

 

При создании достаточно сложных операторов бывает утомительным набирать перед именами столбцов полные имена таблиц, особенно если эти имена достаточно длинные. По этой причине существует возможность задавать псевдонимы (или алиасы, alias) для имен таблиц. Сравните следующий оператор:[33]

SELECT C.CT_NAME AS "Город",

A.AP_NAME AS "Аэропорт"

FROM AIRPORTAINNER JOINCITYC

ON A.AP_CT_CODE=C.CT_CODE

ORDER BY C.CT_NAME,A.AP_NAME

 

В предложении FROM мы для таблицы AIRPORT задали псевдоним A, а для таблицы CITY — псевдоним C. Эти псевдонимы мы используем в списке выбора и в условии соединения.

Можно также использовать предложение WHERE. Например, мы можем получить название всех аэропортов находящихся в городе «Москва»[34]

SELECT C.CT_NAMEAS"Город",

A.AP_NAMEAS"Аэропорт"

FROM AIRPORTAINNER JOINCITYC

ON A.AP_CT_CODE=C.CT_CODE

WHERE C.CT_NAME='Москва'

ORDER BY A.AP_NAME

 

Город Аэропорт
Москва Быково
Москва Внуково
Москва Домодедово
Москва Шереметьево

 

 



<== предыдущая лекция | следующая лекция ==>
Соединение таблиц | Левое внешнее соединение


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


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

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

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


 


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

 
 

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

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