Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Основные понятия и способы применения SQL - в примерах и задачах

SQL язык запросов к реляционным базам данных Учебник

Операторы сравнения с множеством значений IN, ANY, All

Операторы сравнения с множеством значений имеют сле­дующий смысл.

 

IN

Равно любому из значений, полученных во вну­треннем запросе.

NOT IN

Не равно ни одному из значений, полученных во внутреннем запросе.

= ANY

То же, что и IN, Соответствует логическому оператору OR.

> ANY, > = ANY

Больше, чем (либо больше или равно) любое по­лученное число. Эквивалентно > или > = для самого меньшего полученного числа.

< ANY, < = ANY

Меньше, чем (либо меньше или равно) любое полученное число. Эквивалент < или < = для самого большего полученного числа.

= ALL

Равно всем полученным значениям.  Эквива­лентно логическому оператору AND

> ALL, > = ALL

Больше, чем (либо больше или равно) все полу­ченные числа. Эквивалент > или > = для самого большего полученного числа.



< ALL, < = ALL


Меньше, чем (либо меньше или равно) все полу­ченные числа. Эквивалентно < или < = самого меньшего полученного числа.

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

SELECT *

FROM STUDENT S WHERE CITY = ANY (SELECT  CITY

FROM UNIVERSITY U

WHERE U.UNIV_ID = S.UNIV_ID) ;

Другой вариант этого запроса:

SELECT *

FROM STUDENT S WHERE CITY IN

(SELECT CITY

FROM UNIVERSITY U

WHERE U.UNIV_ID = S . UNIV_ID);

Выборка данных об идентификаторах студентов, у которых оценки превосходят величину, по крайней мере, одной из оце­нок, полученных ими же 6 октября 1999 года.

SELECT DISTINCT STUDENT_ID

FROM EXAM_MARKS WHERE MARK > ANY (SELECT  MARK

FROM EXAM_MARKS

WHERE EXAM DATE = '06/10/1999');


Оператор ALL, как правило, эффективно используется с нера­венствами, а не с равенствами, поскольку значение равно всем, которое должно получиться в этом случае в результате выполнения подзапроса, может иметь место, только если все результаты иден­тичны. Такая ситуация практически не может быть реализована, так как если подзапрос генерирует множество различных значе­ний, то никакое одно значение не может быть равно сразу всем значениям в обычном смысле. В SQL выражение < > ALL реаль­но означает не равно ни одному из результатов подзапроса.

Подзапрос, выбирающий данные о названиях всех универ­ситетов с рейтингом более высоким, чем рейтинг любого уни­верситета Воронежа:

SELECT *

FROM UNIVERSITY WHERE RATING > ALL (SELECT RATING

FROM UNIVERSITY

WHERE CITY = 'Воронеж') ;

В этом запросе вместо ALL можно использовать ANY (про­анализируйте, как в этом случае изменится смысл приведенно­го запроса):

SELECT *

FROM UNIVERSITY WHERE NOT RATING > ANY (SELECT RATING FROM UNIVERSITY WHERE CITY = 'Воронеж');

Математический анализ, лекции по физике Компьютерные сети