русс | укр

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

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

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

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


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

ЗАПРОСЫ С ОБЪЕДИНЕНИЕМ ТАБЛИЦ


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


SQL позволяет получить ответы на эти запросы посредством многотабличных запросов, которые объединяют данные из нескольких таблиц.

Чтобы понять, как в SQL реализуются многотабличные запросы, лучше всего начать с рассмотрения простого запроса, который объединяет данные из двух различных таблиц.

 

Составить список всех сотрудников, работающих в Минском отделении.

 

select fname, lname, position, S.tel_no

from Branch B, Staff S

where B.bno=S.bno and city = ‘Минск’;

 

При отработке данного запроса, очевидно, что СУБД должна произвести ряд действий, связанных с объединением таблиц BRANCH и STAFF. Так изначально просматривается столбец city с целью фильтрации строк со значениями отличными от значения ‘Минск’, далее для отфильтрованных строк таблицы определяются значения столбца bno как идентификаторов Минских отделений. После этого просматривается таблица STAFF с целью выявления строк со значениями в столбце bno (см. приложение 1) соответствующими идентификатору первого выявленного Минского офиса. В найденных строках оставляются значения столбцов указанных после ключевого слова SELECT . Далее эта же таблица просматривается для выявления строк соответствующих “второму” Минскому офису и т. д. до последнего. В итоге формируется таблица результатов с запрошенной информацией.

Процесс обработки приведенного двухтабличного запроса проиллюстрируем рисунком 6.

Процесс формирования пар строк путем сравнения содержимого соответствующих столбцов называется объединением таблиц, Таблица, получающаяся в результате формирования пар строк и содержащая данные из обеих таблиц, называется объединением двух таблиц. Объединение на основе точного равенства между двумя столбцами более правильно называется объединением по равенству. Объединения могут быть основаны на других видах сравнения столбцов. Объединения представляют собой основу многотабличных запросов в SQL.



В реляционной базе данных вся информация хранится в виде явных значений данных в столбцах, так что все возможные отношения между таблицами можно сформировать, сопоставляя содержимое соответствующих столбцов. Таким образом, объединения являются мощным (и, к тому же, единственным, ввиду отсутствия указателей) средством выявления отношений, существующих между данными.

 

 

Рисунок 6 Обработка двухтабличного запроса

 

Как видно из запроса в объединении по равенству используются полные имена столбцов. Здесь это – необходимость, так как при проектировании имена столбцов с идентификаторами офисов умышленно (для удобства уяснения её структуры) выбраны одинаковыми. Особенностью многотабличных запросов является также и то, что в предложении FROM часто используются псевдонимы таблиц, чтобы упростить полные имена столбцов, а также обеспечить однозначность ссылок на столбцы.

Помимо объединения двух таблиц SQL допускает также объединение трёх и более таблиц. Ограничений по количеству объединяемых таблиц ни стандарт, ни разработчики СУБД не предусматривают, однако следует иметь в виду, что при увеличении количества объединяемых таблиц в запросе снижается его “читабельность” и скорость исполнения в силу значительного увеличения затрат ресурсов и машинного времени при его обработке.



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


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


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

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

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


 


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

 
 

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

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