Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ SELECT ПАРАМЕТРА EXISTS
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; Нарушение авторских прав Мы поможем в написании ваших работ! |