Опубликован: 10.09.2004 | Уровень: для всех | Доступ: платный | ВУЗ: Ульяновский государственный университет
Лекция 4:

Эффективное выполнение запросов для извлечения данных

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

Предложение WHERE

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

  • Сравнение: сравниваются результаты вычисления одного выражения с результатами вычисления другого.
  • Диапазон: проверяется, попадает ли результат вычисления выражения в заданный диапазон значений.
  • Принадлежность множеству: проверяется, принадлежит ли результат вычислений выражения заданному множеству значений.
  • Соответствие шаблону: проверяется, отвечает ли некоторое строковое значение заданному шаблону.
  • Значение NULL: проверяется, содержит ли данный столбец определитель NULL (неизвестное значение).

Сравнение

В языке SQL можно использовать следующие операторы сравнения: = – равенство; < – меньше; > – больше; <= – меньше или равно; >= – больше или равно; <> – не равно.

Пример 4.3. Показать все операции отпуска товаров объемом больше 20.

SELECT * FROM Сделка
    WHERE Количество>20
Пример 4.3. Операции отпуска товаров объемом больше 20.

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

  • Выражение вычисляется слева направо.
  • Первыми вычисляются подвыражения в скобках.
  • Операторы NOT выполняются до выполнения операторов AND и OR.
  • Операторы AND выполняются до выполнения операторов OR.

Для устранения любой возможной неоднозначности рекомендуется использовать скобки.

Пример 4.4. Вывести список товаров, цена которых больше или равна 100 и меньше или равна 150.

SELECT Название, Цена
    FROM Товар
    WHERE Цена>=100 And Цена<=150
Пример 4.4. Список товаров, цена которых больше или равна 100 и меньше или равна 150.

Пример 4.5. Вывести список клиентов из Москвы или из Самары.

SELECT Фамилия, ГородКлиента
    FROM Клиент
    WHERE ГородКлиента="Москва" Or 
          ГородКлиента="Самара"
Пример 4.5. Список клиентов из Москвы или из Самары.

Диапазон

Оператор BETWEEN используется для поиска значения внутри некоторого интервала, определяемого своими минимальным и максимальным значениями. При этом указанные значения включаются в условие поиска.

Пример 4.6. Вывести список товаров, цена которых лежит в диапазоне от 100 до 150 (запрос эквивалентен примеру 4.4).

SELECT Название, Цена
    FROM Товар
    WHERE Цена BETWEEN 100 And 150
Пример 4.6. Список товаров, цена которых лежит в диапазоне от 100 до 150.

При использовании отрицания NOT BETWEEN требуется, чтобы проверяемое значение лежало вне границ заданного диапазона.

Пример 4.7. Вывести список товаров, цена которых не лежит в диапазоне от 100 до 150.

SELECT Товар.Название, Товар.Цена
    FROM Товар
    WHERE Товар.Цена NOT BETWEEN 100 And 150

Или (что эквивалентно)

SELECT Товар.Название, Товар.Цена
   FROM Товар
   WHERE (Товар.Цена<100) OR (Товар.Цена>150)
Пример 4.7. Список товаров, цена которых не лежит в диапазоне от 100 до 150.

Принадлежность множеству

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

Пример 4.8. Вывести список клиентов из Москвы или из Самары (запрос эквивалентен примеру 4.5).

SELECT Фамилия, ГородКлиента
   FROM Клиент
   WHERE ГородКлиента IN ("Москва", "Самара")
Пример 4.8. Список клиентов из Москвы или из Самары

NOT IN используется для отбора любых значений, кроме тех, которые указаны в представленном списке.

Пример 4.9. Вывести список клиентов, проживающих не в Москве и не в Самаре.

SELECT Фамилия, ГородКлиента
    FROM Клиент 
    WHERE ГородКлиента 
	  NOT IN ("Москва","Самара")
Пример 4.9. Список клиентов, проживающих не в Москве и не в Самаре.
< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Ирина Мельник
Ирина Мельник

Здравствуйте, записалась на курс основы SQL, подскажите, стоимость курса.

Алексей Андрейченко
Алексей Андрейченко
Россия, Чита
Игорь Орещенков
Игорь Орещенков
Беларусь, Белорусский государственный университет, 1999