SQL дает возможность устанавливать критерии выбора записей для вывода.
WHERE – предложение команды SELECT, которое позволяет устанавливать предикаты, условие которых может быть или верным или неверным для любой записи таблицы. Команда извлекает только те записи из таблицы, для которой такое утверждение истинно.
Пример 1. Необходимо выбрать фамилии и размеры стипендии студентов, чья стипендия составляет 25.50
SELECT SFAM, STIP
FROM STUDIENTS
WHERE STIP=25.50;
Результат запроса:
SFAM STIP
-----------------------------
Поляков 25.50
Нагорный 25.50
С помощью булевых операторов и знаков отношения можно осуществлять различной сложности предикаты, причем, количество условий не ограничено.
Пример 2. Необходимо вывести список студентов, получающих стипендию, т.е. для которых STIP>0.
SELECT *
FROM STUDENTS
WHERE STIP>0;
Результат запроса:
SNUM SFAM SIMA SOTCH STIP
--------------------------------- ----------------------------------------------------------
3412 Поляков Анатолий Алексеевч 25.50
3413 Старова Любовь Михайловна 17.00
3416 Нагорный Евгений Васильевич 25.50
Стандартные булевы операторы: AND; OR; NOT.
|
|
Связывая предикаты с булевскими операторами, можно значительно увеличить возможности выборки данных.
Пример 3. Получить информацию о всех студентах, сдавших предмет с кодом 2003.
SELECT *
FROM USP
WHERE OCENKA >=3 AND PNUM=2003;
Результат запроса:
UNUM OCENKA UDATE SNUM PNUM
---------------------------------------------------------------------------------------
1002 4 10/06/1999 3413 2003
1004 4 12/06/1999 3412 2003
Пример 4. Получить информацию о студентах, у которых оценки не являются 3.
SELECT *
FROM USP
WHERE NOT (OCENKA=3);
Результат запроса:
UNUM OCENKA UDATE SNUM PNUM
--------------------------------------------------------------------------------------
1001 5 10/06/1999 3412 2001
1002 4 10/06/1999 3413 2003
1004 4 12/06/1999 3412 2003
1005 5 12/06/1999 3416 2004
Пример 5. Получить информацию о студентах, у которых оценки не являются 3 и в то же время по учебному предмету с кодом, не равным 2005.
SELECT*
FROM USP
WHERE NOT ( OCENKA=3 AND PNUM=2005)
Результаты запроса:
UNUM OCENKA UDATE SNUM PNUM
-------------------------------------------------------------------------
1001 5 10/06/1999 3412 2001
1002 4 10/06/1999 3413 2003
1004 4 12/06/1999 3412 2003
1005 5 12/06/1999 3416 2004
Оператор IN.
Оператор IN определяет набор значений, в которых данное значение должно быть включено.
Пример 1.Получить информацию обо всех студентах, имя которых Анатолий или Владимир.
Способ
SELECT*
FROM STUDENTS
WHERE SIMA=’Анатолий’ OR SIMA= ‘ВЛАДИМИР’;
Результаты запроса:
SNUM SFAM SIMA SOTCH STIP
--------------------------------------------------------------------------------
3412 Поляков Анатолий Алексеевич 25.50
3414 Гриценко Владимир Николаевич 0.00
3415 Котенко Анатолий Николаевич 0.00
Способ.
SELECT *
FROM STUDENTS
WHERE SIMA IN (‘Анатолий’, ’Владимир’);
Пример 2.Поиск всех студентов, имеющих стипендию 17.00 и 25.00
SELECT*
FROM STUDENTS
WHERE STIP IN (17.00,25.00);
Результаты запроса:
|
|
SNUM SFAM SIMA SOTCH STIP
--------------------------------------------------------------------------------------
3412 Поляков Анатолий Алексеевич 25.50
3413 Старова Любовь Михайловна 17.00
3416 Нагорный Евгений Васильевич 25.50