Разработка приложений баз данных в Delphi. Шейкер Т.Д. - 103 стр.

UptoLike

Составители: 

103
4.6. Использование вложенных запросов
4.6.1. Подзапросы
Часто при формировании условия в предложении WHERE требуется ис-
пользовать значение, которое должно быть вычислено в момент выполнения
оператора
SELECT. Например, надо иметь максимальное, минимальное, среднее
и т.п. значения. В таких случаях используют законченные операторы
SELECT,
внедрённые в тело другого оператора
SELECT. Внешний и внутренний операто-
ры
SELECT строятся по одинаковым правилам. Внешний оператор использует
результат внутреннего оператора.
Внутренние операторы располагают в предложениях
WHERE или HAVING
после операций сравнения (=, <, >, <=, >=, <>). Такие операторы называют под-
запросами. Текст подзапроса помещают в круглые скобки. Ограничения при
формировании подзапросов:
ORDER BY не используется;
список в
SELECT состоит из имён отдельных столбцов или составлен-
ных из них выражений;
по умолчанию имена столбцов относятся к таблице, указанной после
FROM. Разрешено использовать имена столбцов внешнего запроса, яв-
но указывая таблицу;
если подзапрос является одним из двух операндов в операции сравне-
ния, то записывается справа:
Number=(SELECT ... ).
Существует два типа подзапросовскалярный и табличный. Скалярный
подзапрос возвращает одно значение. Табличный подзапрос возвращает мно-
жество значений.
4.6.2. Подзапросы, возвращающие одно значение
Пример 4.11. Найти название рыбы максимальной длины.
SELECT Common_Name FROM biolife
WHERE biolife."Length (cm)"=
(SELECT max(biolife."Length (cm)" FROM biolife)
               4.6. Использование вложенных запросов

     4.6.1. Подзапросы
     Часто при формировании условия в предложении WHERE требуется ис-
пользовать значение, которое должно быть вычислено в момент выполнения
оператора SELECT. Например, надо иметь максимальное, минимальное, среднее
и т.п. значения. В таких случаях используют законченные операторы SELECT,
внедрённые в тело другого оператора SELECT. Внешний и внутренний операто-
ры SELECT строятся по одинаковым правилам. Внешний оператор использует
результат внутреннего оператора.
     Внутренние операторы располагают в предложениях WHERE или HAVING
после операций сравнения (=, <, >, <=, >=, <>). Такие операторы называют под-
запросами. Текст подзапроса помещают в круглые скобки. Ограничения при
формировании подзапросов:
     – ORDER BY не используется;
     – список в SELECT состоит из имён отдельных столбцов или составлен-
        ных из них выражений;
     – по умолчанию имена столбцов относятся к таблице, указанной после
        FROM. Разрешено использовать имена столбцов внешнего запроса, яв-
        но указывая таблицу;
     – если подзапрос является одним из двух операндов в операции сравне-
        ния, то записывается справа: Number=(SELECT ... ).
     Существует два типа подзапросов – скалярный и табличный. Скалярный
подзапрос возвращает одно значение. Табличный подзапрос возвращает мно-
жество значений.

     4.6.2. Подзапросы, возвращающие одно значение
     Пример 4.11. Найти название рыбы максимальной длины.
SELECT Common_Name FROM biolife
WHERE biolife."Length (cm)"=
         (SELECT max(biolife."Length (cm)" FROM biolife)


                                     103