Выдать фамилии поставщиков, которые поставляют деталь Р2:
SELECT ИМЯ.
FROM S.
WHERE EXISTS.
(SELECT *.
FROM SP.
WHERE НОМЕР_ПОСТАВЩИКА = S. НОМЕР_ПОСТАВЩИКА AND НОМЕР_ДЕТАЛИ='Р2').
EXISTS (существует) представляет здесь квантор существования — понятие, заимствованное из формальной логики.
Квантор существования EXISTS (SELECT* FROM… WHERE…) принимает значение истина, если подзапрос выдает непустое множество и наоборот.
Запрос, использующий NOT EXISTS. Выдать имена поставщиков, которые не поставляют деталь Р2:
SELECT ИМЯ.
FROM S.
WHERE NOT EXISTS.
(SELECT *.
FROM SP.
WHERE НОМЕР_ПОСТАВЩИКА = S. НОМЕР_ПОСТАВЩИКА AND НОМЕР_ДЕТАЛИ = 'P2').
NOT EXISTS (SELECT* FROM… WHERE…).
принимает значение истина, если подзапрос выдает пустое множество и наоборот.
Стандартные функции
В запросах могут использоваться следующие стандартные функции: COUNT число значений в столбце; SUM сумма значений какого-либо столбца; AVG среднее значение; MAX самое большое значение в столбце; MIN самое малое значение в столбце.
Выдать общее количество поставщиков:
SELECT СOUNT (*).
FROMS.
Результат: 5.
Выдать общее количество поставляемых деталей P2:
SELECT SUМ (Количество).
FROM SP.
WHERE НОМЕР_ДЕТАЛИ = `P2'.
Результат: 1000.
Функция в подзапросе. Выдать номера поставщиков со значением поля СОСТОЯНИЕ меньшим, чем текущее максимальное состояние в таблице S:
SELECT НОМЕР_ПОСТАВЩИКА.
FROM S.
WHERE СОСТОЯНИЕ <
(SELECT MAX (СОСТОЯНИЕ).
FROM S).
Результат: НОМЕР ПОСТАВЩИКА.
S1.
S2.
S3.