русс | укр

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

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

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

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


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

Вложенные подзапросы и кванторы


Дата добавления: 2013-12-24; просмотров: 984; Нарушение авторских прав


Признаками использования кванторов являются слова в задании: все, только один, хотя бы. Список кванторов приведен в Табл. 9.

Вывести названия товаров, которые хотя бы раз продавались (запрос приведен на Лист. 34, результат - Табл. 48):

Лист. 34. Запрос с квантором Exists

SELECT Название

FROM Товары

WHERE exists

(SELECT * FROM Сделки WHERE Товары.N = Сделки.N_Товара);

Табл. 48. Результат запроса с квантором Exists

28 Exists
Название
Шило
Мыло

Ошибка №12. Во вложенном подзапросе используются атрибуты таблиц, которые перечисляются во внешнем запросе, но не перечисляются во вложенном. В случае перечисления этих таблиц во вложенном подзапросе, подзапрос перестанет быть зависимым от внешнего и результат будет другим.

Вывести номера и имена продавцов, которые продавали мыло хотя бы раз (запрос приведен на Лист. 35, результат - Табл. 49):

Лист. 35. Запрос с квантором Any

SELECT Продавцы.N, Продавцы.Имя



FROM Продавцы, Товары

WHERE Товары.Название = ‘Мыло’

AND Товары.N = ANY

(SELECT N_Товара FROM Сделки WHERE Продавцы.N = Сделки.N_Продавца);

Табл. 49. Результат запроса с квантором Any

30 Any
N Имя
Иванов
Петров

 

Ошибка №13.Кванторы any и exists часто путают. Обратите внимание на разницу в использовании. Exists используют без условия, any – с условием. Оба примера соединяют две таблицы, опосредованно связанные третьей. Но в случае exists в подзапросе два условия связи внутренней и двух внешних таблиц, а в запросе с any – одно (другая связь заключается в условии).

Вывести номера и имена продавцов, все заключенные сделки которых включали продажу мыла (запрос приведен на Лист. 36, результат - Табл. 50):

Лист. 36. Запрос с квантором All

SELECT Продавцы.N, Продавцы.Имя



FROM Продавцы, Товары

WHERE Товары.Название = 'Мыло'

AND Товары.N = ALL

(SELECT N_Товара FROM Сделки WHERE Продавцы.N = Сделки.N_Продавца);

Табл. 50. Результат запроса с квантором All

29 All
N Имя
Петров

 

Вывести номера и имена продавцов, которые заключили только одну сделку, причем с мылом (запрос приведен на Лист. 37):

Лист. 37 Запрос с квантором Singular

SELECT Продавцы.N, Продавцы.Имя



FROM Продавцы, Товары

WHERE Товары.Название = ‘Мыло’

AND Товары.N = SINGULAR

(SELECT N_Товара FROM Сделки WHERE Продавцы.N = Сделки.N_Продавца);

Вывести имена продавцов и названия товаров, которые они продавали, в случае, если продавец еще не продал ни одного товара, вывести пусто (запрос приведен на Лист. 38):

Лист. 38. Запрос с операторами Left Join и Exists

SELECT Продавцы.Имя, Товары.Название

From Продавцы LEFT JOIN Товары ON

EXISTS (SELECT * FROM Сделки

WHERE Сделки.N_Продавца = Продавцы.N

AND Сделки.N_Товара = Товары.N);



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


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


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

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

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


 


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

 
 

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

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