Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Примеры с подзапросами




Ввиду сложности данной темы, рассмотрим использование подзапросов на примере многотабличной реляционной базы данных.

В мастер-таблице "Товары" представлены различные выпускаемые товары.

В мастер-таблице "Клиенты" перечислены фирмы покупающие различные товары.

В дочерней таблице "Заказы" представлены товары, проданные фирмам по определенной цене.

Структура базы данных представлена ниже.

           
   
Клиенты
 
Товары
 
Заказы
 
 
 

ВКТ Цена ВКК
     
     
     
     
     
     
     
     
     
     
     

 

ПКК Фирма
  Электрон
  Аргус
  Техно

 

 

 


 

 

Запрос 1.

Показать цены, по которым были проданы телевизоры.

 

Подзапрос в таблице "Товары" ищет товар Телевизор и возвращает его ключ (ПКТ). Далее, основной запрос, в таблице "Заказы", сравнивает ключ товара (ВКТ) с ключом телевизора, возвращенного подзапрорсом, и при их совпадении, возвращает цену товара.

 

Запрос 2.

Определить Фирмы, купившие более трех товаров.

 

 

Подзапрос,в таблице "Заказы",по ключам клиентов (ВКК), определяет количество заключенных контрактов с каждым клиентом, и возвращает ключи клиентов купивших более трех товаров.

Основной запрос сравнивает ключ клиента (ПКК) из таблицы "Клиенты", с ключами определенными подзапросом, и при их совпадении возвращает название фирмы.


Запрос 3.

Определить фирмы купившие телевизоры.

 

 

По названию товара определяется первичный ключ товара (ПТК). По ПТК определяются внешние ключи клиентов (ВКТ) купивших данный товар. При совпадении ПКТ и ВКТ возвращается название фирмы.

 

 

Запрос 4.

Определить количество товара купленного каждой фирмой.

 


Соединение таблиц

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

Оператор INNER JOIN записывается в предложении FROM и объединяет записи из двух таблиц, если связующие поля этих таблиц содержат одинаковые значения.

SELECT имена полей таблиц

FROM таблица1 INNER JOIN таблица2 ON таблица1.поле оператор таблица2.поле

 

Результатом внутреннего соединения является декартово произведение таблиц. Полученная таким образом таблица не существует в реальности, а носит характер временного, на момент запроса, соединения.

 

Обратимся к базе данных, структура которой была приведена в разделе "Подзапросы" и выполним соединение таблиц.

           
   
Клиенты
 
Товары
 
Заказы
 
 
 

ВКТ Цена ВКК
     
     
     
     
     
     
     
     
     
     
     

 

ПКК Фирма
  Электрон
  Аргус
  Техно

 

 

 


 

Запрос 1. Соединить таблицы "Товары" и "Заказы"

 


Запрос 1. Соединить таблицы "Товары", "Заказы", "Клиенты"

 

 

 

 

 

 

Соединение нескольких таблиц в одну, прием очень эффективный, так как осуществлять запросы к одной таблице гораздо проще, чем к нескольким. Посмотрим, как будут выглядеть запросы, которые применялись не к соединенным таблицам и где использовались подзапросы.

 

Запрос 1.

Показать цены, по которым были проданы телевизоры.

 

 

Запрос 2.

Определить Фирмы, купившие более трех товаров.

 

 

 

 

 

Запрос 3.

Определить фирмы купившие телевизоры.

 

 

Запрос 4.

Определить количество товара купленного каждой фирмой.

 

 

Вывод:

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

 


Поделиться:





Читайте также:

Q Приведите, пожалуйста примеры нарушений выполнения этой пробы при различных видах афазий.
Q Приведите, пожалуйста, примеры подобных нарушений внимания. Наиболее показательные примеры, на наш взгляд, относятся к сфере интеллектуальной деятельности и памяти.
Ассемблер в системе команд 8-разрядного МП. Типы ассемблеров. Требования к полям записи программ на ассемблере. Примеры программирования на ассемблере.
Более сложные примеры соединений
Виды и примеры экономических задач оптимизации и управления
Вопрос 46. Гомогенно-каталитические процессы. Кислотно-основной катализ. Ферментативный катализ. Примеры.
Глава 15 - ФИЛОСОФСКИЕ ПРИМЕРЫ
Глава 15. Клинические примеры: легочное кровообращение
Дефекты озвончения и оглушения звуков. Фонематические и фонетические нарушения. Привести примеры.
Дизъюнктивные ареалы животных. Примеры.






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...