Определение условий выборки в предложении WHERE

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

Cинтаксис предложения WHERE:

WHERE < имя столбца> <оператор условия> < имя столбца>| <константа>| <список значений>

Условия отбора, задаваемые в предложении WHERE, могут быть как простыми, так и сложными. Для задания сложных условий могут быть использованы предикаты OR и AND, которые в свою очередь можно сочетать в одном логическом выражении. Порядок выполнения операторов приведен ниже (см. Таблица 14). Изменение порядка выполнения операций осуществляется с помощью скобок.

Таблица 14

Порядок вычисления Оператор
  Все операторы сравнения и предикаты IN, LIKE, IS NULL, BETWEEN (см.Таблица 15)
  AND
  OR

Таблица 15

№ п/п Оператор Смысл оператора
1. = Равно
2. !=, ^= ИЛИ <> Не равно
3. > Больше
4. >= Больше или равно
5. < Меньше
6. <= Меньше или равно
7. [NOT] BETWEEN x AND y [Не] принадлежит диапазону значений [x;y]
8. IN (СПИСОК) Равно любому элементу списка Эквивалентно “=ANY”
9. NOT IN (СПИСОК) Не равно ни одному элементу списка. Эквивалентно “!=ALL”. Если хоть один из элементов списка NULL, то результатом будет FALSE.
10. ANY SOME Сравнение с каждым из значений списка или подзапроса. Должно следовать за =,!=, >, <, <=, >=. Принимает значение FALSE, если подзапрос не выбирает ни одной строки
11. ALL Сравнение с каждым из значений списка или подзапроса. Должно следовать за =,!=, >, <, <=, >=. Принимает значение TRUE, если подзапрос не выбирает ни одной строки.
12. IS [NOT] NULL Проверка на NULL. Это единственные операторы, которые должны использоваться при проверке значений на NULL.
13. X [NOT] LIKE ‘y’ TRUE, если x [не]удовлетворяет шаблону ‘y’. В шаблоне ‘y’ символ % соответствует любой строке символов (возможно пустой); символ '_' - одному символу; [] - один символ в указанном диапазоне; [^] - один символ вне указанного диапазона.

Таблица 16

Оператор Описание
1. !=, <> Не равно
2. NOT <имя столбца> = значение столбца не равно
3. NOT <имя столбца> > значение столбца не больше чем
4. NOT <имя столбца> < значение столбца не меньше чем
5. NOT BETWEEN Не лежит в интервале
6. NOT IN Не содержится в списке
7. NOT LIKE Не содержит подстроки
8. IS NOT NULL Не содержит неопределенности

Пример 47

Задача.

Сформировать запрос для вывода списка студентов из таблицы Student, обучающихся в группе ИСТ-03.

Решение.

SELECT SName ФИО

FROM Student St INNER JOIN SGroup SG

ON St.IDGroup =SG.IDGroup

WHERE NameGroup='ИСТ-02';

Результат реализации запроса:

Пример 48

Задача.

Сформировать запрос для вывода имени преподавателя, у которого студенты в 5 семестре имели оценки выше 4

Решение.

SELECT TName ФИО

FROM Teacher, Progress

WHERE Teacher.PIN=Progress.PIN

AND Mark>4 AND NTerm=5;

Результат реализации запроса:

В результате запроса имя одного и того же преподавателя было выведено дважды. Очевидно, что преподаватель дважды в 5 семестре оценивал работу студентов оценкой выше, чем 4. Здесь целесообразно вспомнить о предложении DISTINCT, которое позволит убрать в результате запроса дубли. Теперь запрос будет выглядеть следующим образом

SELECT DISTINCT TName ФИО

FROM Teacher, Progress

WHERE Teacher.PIN=Progress.PIN

AND Mark>4 AND NTerm=5;

Результат реализации запроса:

В предложении WHERE используются различные предикаты (см.Таблица 15), рассмотрим применение некоторых из них.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: