Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ SELECT ПАРАМЕТРА EXISTS

Читайте также:
  1. Биомасса Мирового океана и ее использование
  2. Ввод данных с использованием клавиатуры
  3. Величина параметра базовой модели или аналога
  4. ВЗГЛЯДЫ КОМАНДОВАНИЯ АРМИЙ ИНОСТРАННЫХ ГОСУДАРСТВ НА ИСПОЛЬЗОВАНИЕ МОТОПЕХОТНОЙ РОТЫ В НАСТУПЛЕНИИ.
  5. Выставки и их использование в рекламных целях
  6. Глава 5 Использование теории вероятности и математической статики для построения математических моделей производственных процессов.
  7. Графический метод с использованием характеристик по первым гармоникам.
  8. Изучение и использование информации о конкурентоспособной продукции – важный элемент культурно-просветительской и образовательной деятельности
  9. Ирвинг Гофман: Техники презентации.их использование современными СМИ.
  10. Использование SILVERRUN-BPM

 

EXISTS может быть применен к внутренней выборке и генерирует булева значения.

True - если выборка не пустая,

False - если выборка пустая.

 

Пример:

Нужно выбрать код и имя поставщиков при условии, что в S есть хотя бы один поставщик из Москвы.

SELECT S.Код пост., S.имя

FROM S

WHERE EXISTS

(SELECT *

FROM S

WHERE Город = ‘Москва’)

Здесь алиасы не используются, так как внутренние и внешние запросы не связаны.

Результат: два первых столбца таблицы S (полностью).

 

EXISTS может использоваться и в связанных запросах, при этом EXISTS вычисляется отдельно для каждого подзапроса.

 

Пример:

Нужно найти коды поставщиков, которые имеют несколько поставок.

SELECT DISTINCT Код out.Код пост.

FROM SP out

WHERE EXISTS

(SELECT *

FROM SP inn

WHERE inn.Код пост. = out.код пост.

AND inn.Код дет.< > out.код дет.)

__________________

S1, S2, S3, S5.

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

Но это невозможно в нашем случае, так как таблица SP имеет первичный ключ код пост., код дет., следовательно, повтора не может быть в этих столбцах.

 

Пример:

Надо выбрать данные о всех поставщиках, которые поставляют детали в нескольких поставках.

SELECT *

FROM S

WHERE EXISTS

(SELECT *

FROM SP out

WHERE S.Код пост. = out код пост.

AND 1<

(SELECT COUNT (*)

FROM SP inn

WHERE out.Код дет. = inn.код дет.))

 

Использование параметров ANY, SOME, ALL.

Параметры ANY и SOME в SQL выполняются одинаково. Различие лишь в смысле этих слов.

ANY - какой-нибудь;

SOME - какой-либо.

 

 

Пример:

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

SELECT *

FROM S

WHERE город = ANY

(SELECT город принимает значение true, если какой-либо город,

FROM P) выбранный из внутреннего цикла совпадает с городом из внешней выборки.

Можно еще и так.

SELECT *

FROM S

WHERE город IN

(SELECT город

FROM P)

 

Можно построить запрос и с использованием EXISTS:

SELECT *

FROM S

WHERE EXISTS

(SELECT *

FROM P

WHERE S. город = P. город)

 

Предикат ALL принимает значение true, если каждое из выбранных в подзапросе значений удовлетворяет внешнему запросу.

 

Пример:

Выбрать поставщиков, категория которых выше, чем категория всех из поставщиков, проживающих в Москве.

SELECT *

FROM S

WHERE катег. > ALL

(SELECT катег.

FROM S

WHERE город = ‘Москва’)

 

Параметр UNION позволяет объединить результаты двух независимых выборков в одну таблицу.

При выполнении операции UNION дублирование картежей исключается.

 

Пример:

Выбрать детали, которые производятся в Москве, и поставщиков, которые живут там же.

SELECT код пост., имя

FROM S

WHERE город = ‘Москва’

UNION

SELECT код дет., наим.

FROM P

WHERE город = ‘Москва’

 

S1 Иванов

S4 Круглов

P1 гайка

P3 кольцо

P4 винт

На этом мы заканчиваем инструкцию SELECT.

 


<== предыдущая страница | следующая страница ==>
ВЛОЖЕННЫЕ ЗАПРОСЫ | ИЗМЕНЕНИЕ ДАННЫХ В БАЗЕ ДАННЫХ

Дата добавления: 2014-08-04; просмотров: 356; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.