Программирование >>  Понятие sql 

1 ... 33 34 35 [ 36 ] 37 38 39 ... 95


=============== SQL Execution Log ============

SELECT *

FROM Customers outer

WHERE 1 >

(SELECT COUNT (*)

FROM Customers inner

WHERE outer.rating <= inner.rating

AND inner.city = Rome);

cnum cname city rating snum

2004 Grass Berlin 300 1002

2008 Cisneros San Jose 300 1007

Рисунок 13.13: Использование COUNT вместо EXISTS

РЕЗЮМЕ

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

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

Мы имеем еще одну главу о запросах, которая покажет вам как объединить выводы любого числа запросов в единое тело, с помощью формирования объединения многочисленых запросов используя оператор UNION.

РАБОТА С SQL

1. Напишите запрос, который бы выбирал всех заказчиков чьи оценки равны или больше чем любая (ANY) оценка заказчика Serres.

2. Что будет выведено вышеупомянутой командой?

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

4. Напишите запрос, который бы выбирал все порядки с суммой больше чем любая (в обычном смысле) для заказчиков в Лондоне.

5. Напишите предыдущий запрос с использованием MAX.

(См. Приложение A для ответов.)



ИСПОЛЬЗОВАНИЕ ПРЕДЛОЖЕНИЯ UNION



В ПРЕДШЕСТВУЮЩИХ ГЛАВАХ МЫ ОБСУЖДАЛИ различные способы, которыми запросы могут помещаться один внутрь другого. Имеется другой способ объединения многочисленых запросов - т.е. формирование их в объединение. Вэтойглаве вы научитесь использованию предложения UNION в SQL. UNION отличается от подзапросов тем что в нем ни один из двух (или больше) запросов не управляются другим запросом. Все запросы выполняются независимо друг от друга, а уже вывод их - обьединяется.

ОБЪЕДИНЕНИЕ МНОГОЧИСЛЕННЫХ ЗАПРОСОВ В ОДИН

Вы можете поместить многочисленые запросы вместе и объединить их вывод, используя предложение UNION. Предложение UNION обьединяет вывод двух или более SQL запросов в единый набор строк и столбцов. Например, чтобы получить всех продавцов и заказчиков размещенных в Лондоне и вывести их как единое целое вы могли бы ввести:

SELECT snum, sname FROM Salespeople WHERE city = London

UNION

SELECT cnum, cname

FROM Customers

WHERE city = London;

и получить вывод показанный в Рисунке 14.1.

Как вы можете видеть, столбцы выбранные двумя командами выведены так, как если она была одна. Заголовки столбца исключены, потому что ни один из столбцов выведенных объединением, не был извлечен непосредственно из только одной таблицы. Следовательно все эти столбцы вывода не имеют никаких имен (смотрите Главу 7, обсуждающую вывод столбцов).

Кроме того обратите внимание, что только последний запрос заканчивается точкой с запятой. Отсутствие точки с запятой дает понять SQL, чтоимеетсяещеодноили более запросов.



1 ... 33 34 35 [ 36 ] 37 38 39 ... 95

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика