Фильтрация данных в sql


SELECT * FROM Sumproduct WHERE Product


Download 405.01 Kb.
bet3/3
Sana01.04.2023
Hajmi405.01 Kb.
#1317439
TuriПрактическая работа
1   2   3
Bog'liq
Prak rab#3 Urinbekov Jamshid

SELECT * FROM Sumproduct WHERE Product = 'Bikes' OR Product = 'Skates' AND Month= 'March'

Видим, что в нашу выборку попало за много значений (кроме марта (March), также январь (January), февраль (February) и апрель (April)). В чем же причина? А в том, что SQL имеет приоритеты выполнения команд. То есть оператор AND имеет более высокий приоритет, чем оператор OR, поэтому сначала были отобраны записи с коньками, которие проданные в марте, а потом все записи, касающиеся велосипедов.
Итак, чтобы получить правильную выборку, нам нужно изменить приоритеты выполнения команд. Для этого используем скобки, как в математике. Тогда, сначала будут обработаны операторы в скобках, а затем - все остальные.
SELECT * FROM Sumproduct WHERE (Product = 'Bikes' OR Product = 'Skates') AND Month= 'March'

5. Расширенная фильтрация (оператор IN).
SELECT * FROM Sumproduct WHERE ID IN (4, 12, 58, 67)

Оператор IN выполняет ту же функцию, что и OR, однако имеет ряд преимуществ:

открывает большие возможности для создания сложных подзапросов.
6. Расширенная фильтрация (оператор NOT).
SELECT * FROM Sumproduct WHERE NOT City IN ('Toronto', 'Montreal')

Ключевое слово NOT позволяет убрать ненужные значения из выборки. Также его особенностью является то, что оно проставляется перед названием столбца, участвующего в фильтровании, а не после.

Практическая часть.
Задания на практическую работу №3 (18-вариант):
Таблица Employees. Получить список всех сотрудников ID имени которых равна кратна 2.
Скриншоты кода и результата:

Код:
SELECT *
FROM employees
WHERE MOD (employee_id, 2) = 0;
Download 405.01 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling