Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к ПР_2.1.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать

2.5. Логические операторы

Логические выражения в операторах where и having могут быть сложными, т. е. состоять из двух и более простых выражений, соединенных между собой логическими операторами (союзами) and и/или or. Оператор and выполняет роль логического союза И, а оператор or — союза ИЛИ.

Логический оператор not применяется к одному выражению (возможно и к сложному), расположенному справа от него. Этот оператор меняет значение выражения на противополож­ное.

Предположим, из таблицы клиенты требуется вы­брать записи о клиентах из Москвы и Северо-Запада. Соответст­вующий запрос имеет вид:

SELECT Регион, Имя, Сумма_заказа FROM Клиенты

WHERE Регион='Москва' OR Регион='Северо-Запад';

Обратите внимание, что здесь используется логический оператор or (ИЛИ), а не and (И), поскольку нам нужны клиенты, прожи­вающие или в Москве, или на Северо-Западе. Если бы вместо оператора or мы применили and, то получили бы пустую табли­цу, т. к. в исходной таблице нет ни одной записи, в которой один и тот же столбец имел бы различные значения.

Следующее SQL-выражение эквивалентно рассмотренному ра­нее. Оно основано на применении оператора in:

SELECT Регион, Имя, Сумма__заказа FROM Клиенты

WHERE Регион IN ('Москва', 'Северо-Запад');

Если требуется получить данные о всех клиентах, которые не проживают ни в Москве, ни на Северо-Западе, то можно исполь­зовать такое SQL-выражение:

SELECT Регион, Имя, Сумма_заказа FROM Клиенты

WHERE NOT (Регион='Москва' OR Регион 'Северо-Запад');

Список контрольных вопросов:

  1. Как выглядит основное выражение для выборки данных в SQL?

  2. Что такое «виртуальная таблица»?

  3. Какую операцию реляционной алгебры выполняет оператор select?

  4. Какую операцию реляционной алгебры выполняет оператор select, если после from указано более одной таблицы?

  5. В каких случаях для идентификации поля используется префикс? Приведите пример.

  6. Как строится выражение для выборки, если необходимо выбрать все поля таблицы?

  7. Для чего в выражении выборки применяется оператор where?

  8. Что такое псевдонимы полей? Как задать псевдоним поля? Приведите пример.

  9. Какие дополнительные операторы применяются для уточнения запроса, каково их назначение?

  10. В какой последовательности должны указываться дополнительные операторы запроса?

  11. Опишите порядок выполнения операторов в SQL-выражении запроса.

  12. Перечислите и охарактеризуйте предикаты сравнения, используемы в SQL-выражениях.

  13. Какие символы - маски применяются вSQL-выражениях и для чего?

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

  15. Опишите действие оператора group by.Приведите пример.

  16. Опишите действие оператора having.Приведите пример.

  17. Опишите действие оператора order by.Приведите пример.

Задачи для самостоятельного выполнения:

Задача 1. Выберите записи, сгруппированные по регионам и исключающие Северо-Западный регион. Попробуйте сделать это по крайней мере двумя способами (с использованием where и having).

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

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