Слайд 2Пример________________ Значение______
WHERE SALARY = '20000' Зарплата равна 20000
Ввод:
SELECT * FROM
PRODUCTTBL WHERE PROD_ID = '2345';
Вывод:
PROD_ID PROD_DESC COST
2345 ПОЛОЧКА ИЗ ДУБА 59.99
Неравенство
В противоположность равенству существует неравенство. В SQL для неравенства используется знак о (комбинация знаков "меньше" и "больше"). В этом случае условие возвращает TRUE, если обнаруживается неравенство значений, и FALSE — если равенство.
Во многих из основных реализаций SQL эквивалентом знака операции о является комбинация ' =
Пример________________________________Значение____
WHERE SALARY < > '20000' Зарплата не равна 20000
Слайд 3Знаки < ("меньше") и > ("больше") можно использовать по отдельности, и в
комбинации с другими операциями.
Логические операции в SQL задаются ключевыми словами, а не символами.
Ниже мы рассмотрим следующие логические операции.
• IS NULL
EXISTS
• BETWEEN
• UNIQUE
• IN
• ALL И ANY
• LIKE
IS NULL
Слайд 4Ключевое слово is NULL используется для проверки равенства данного значения значению NULL
Пример__________________________Значение_____________
WHERE SALARY is NULL Для зарплаты не задано значение
Вот пример, в котором значение NULL не будет найдено.
Пример_________________________Значение______________
WHERE SALARY = NULL Зарплата имеет значение, равное
строке символов N-U-L-L
Ввод:
SELECT EMP_ID, LAST NAME, FIRST_NAME, PAGER
FROM EMPLOYEE_TBL
WHERE PAGER IS NULL;
Ввод:
SELECT EMP_ID, LAST_NAME, FIRST_NAME, PAGER
FROM EMPLOYEE_TBL
WHERE PAGER = NULL;
Слайд 5BETWEEN
Ключевое слово BETWEEN используется для поиска значений, попадающих в диапазон, заданный
некоторыми минимальным и максимальным значениями. Эти минимальное и максимальное значения включаются в соответствующее условие.
Пример__________________________________Значение_______
WHERE SALARY BETWEEN '20000' Зарплата должна быть
AND '30000' от 20000 до 30000, включая их
Ввод:
SELECT *
FROM PRODUCTS_TBL
WHERE BETWEEN 5.95 AND 14.5;
Слайд 6 IN
Ключевое слово IN используется для сравнения значения с заданным списком
буквальных значений. Чтобы возвратилось TRUE, сравниваемое значение должно совпадать хотя бы с одним значением из списка.
Пример__________________________Значение______
WHERE SALARY IN ('20000', Зарплата должна равняться '30000', '40000‘) 20000, 30000 или 40000
Ввод:
SELECT *
FROM PRODUCTS_TBL
WHERE PROD_ID IN <'13','9','87','119');
То же самое можно получить, комбинируя условия с помощью ключевого слова OR, но с помощью IN результат получается быстрее.
Слайд 7 LIKE
Ключевое слово LIKE используется для нахождения значений, похожих на заданное.
В данном случае предполагается использование следующих двух знаков подстановки: • знак процента (%); • знак подчеркивания (_).
Знак процента представляет ноль, один или несколько символов. Знак подчеркивания представляет один символ или число. Знаки подстановки могут использоваться в комбинации.
Пример_________________________Значение_________________
WHERE SALARY LIKE '200%' Любое значение, начинающееся с 200
WHERE SALARY LIKE ' %200% ' Любое значение, имеющее 200 в любой _ позиции
WHERE SALARY LIKE '_00%' Любое значение, имеющее 00 во второй и _ третьей позициях
WHERE SALARY LIKE ' 2_%_%' Любое значение, начинающееся с 2 и _ состоящее как минимум из трех символов
WHERE SALARY LIKE '%2' Любое значение, заканчивающееся 2
WHERE SALARY LIKE '_2%3' Любое значение, имеющее 2 во второй _ позиции и заканчивающееся 3
WHERE SALARY LIKE '2__3' Любое значение длиной 5 символов, _ начинающееся с 2 и заканчивающееся 3
Слайд 8В следующем примере выбираются описания для тех товаров, описания которых заканчиваются на
"ы".
Ввод:
SELECT PROD_DESC
FROM PRODUCTS_TBL
WHERE PROD_DESC LIKE '%Ы';
В следующем примере выбираются описания товаров с буквой "Ы" во второй позиции.
Ввод:
SELECT PROD_DESC
FROM PRODUCTS_TBL
WHERE PROD_DESC LIKE '_Ы%';
Слайд 9 EXISTS
Ключевое слово EXISTS используется для поиска в таблице строк, удовлетворяющих
заданным критериям.
Пример______________________________Значение
WHERE EXISTS (SELECT EMP_ID Проверка наличия EMP_ID со FROM EMPLOYEE_TBL значением 333333333 в таблице WHERE EMPLOYEE_ID = '333333333‘) EMPLOYEE_TBL
В следующем примере в операторе используется подчиненный запрос
Ввод:
SELECT COST
FROM PRODUCTS_TBL
WHERE EXISTS ( SELECT COST
FROM PRODUCTS_TBL
WHERE COST > 100 )
Слайд 10 UNIQUE
Ключевое слово UNIQUE используется для проверки строк заданной таблицы на
уникальность (т. е. отсутствие повторений).
Пример_____________________________Значение____________
WHERE UNIQUE (SELECT SALARY Проверка SALARY на нали- FROM EMPLOYEEJTBL__________чие повторений
WHERE EMPLOYEE_ID = '333333333')
ALL И ANY
Ключевое слово ALL используется для сравнения заданного значения со всеми значениями из некоторой другой выборки значений.
Пример_____________________________ Значение
WHERE SALARY > ALL (SELECT SALARY Проверка значения FROM FROM EMPLOYEE_TBL SALARY на предмет пре-
WHERE CITY - ' PSKOV ' ) вышения им всех значений _ зарплаты служащих из Пскова
Слайд 11Ввод:
SELECT *
FROM PRODUCTS_TBL
WHERE COST > ALL ( SELECT COST
FROM PRODUCTS_TBL
WHERE COST < 10 );
Ключевое слово ANY используется для сравнения заданного значения с любым из значений некоторой другой выборки значений.
Пример___________________________________Значение_______
WHERE SALARY > ANY (SELECT SALARY Проверка значения FROM EMPLOYEE_TBL SALARY на Предмет
WHERE CITY = ‘PSKOV') превышения им какого- _ нибудь из значений зар _ _ платы для служащих из _ Пскова
Слайд 12Ввод:
SELECT *
FROM PRODUCTS_TBL
WHERE COST > ANY ( SELECT COST
FROM PRODUCTS_TBL
WHERE COST < 10 );
Слайд 13Операции конъюнкции и дизъюнкции
Как быть, если необходимо использовать несколько условий, чтобы
сузить набор возвращаемых запросом данных? Нужно скомбинировать условия с помощью операций конъюнкции и дизъюнкции. Эти операции задаются с помощью ключевых слов AND и OR.
AND
Ключевое слово AND позволяет связать логическим умножением два условия в выражении ключевого слова WHERE. Чтобы оператор SQL, представляющий транзакцию или запрос, выполнил заданное действие, оба связанные ключевым словом AND условия должны возвратить TRUE.
Пример_________________________________Значение________
WHERE EMPLOYEE_ID = '333333333' Значение EMPLOYEE_ID AND SALARY = '20000‘ должно быть равным
333333333, а значение _ _ SALARY должно быть
равным 20000
Слайд 14Ввод:
SELECT *
FROM PROOCTS_TBL
WHERE COST > 10
AND COST <
30;
Ввод:
SELECT *
FROM PRODUCTS_TBL
WHERE PROD_ID = '7725'
AND PROD_ID = '2345';
Слайд 15 OR
Ключевое слово OR позволяет связать логическим сложением условия в выражении
ключевого слова WHERE. Чтобы оператор SQL, представляющий транзакцию или запрос, выполнил заданное действие, хотя бы одно из связанных ключевым словом AND условий должно возвратить TRUE.
Пример______________________Значение___________________
WHERE SALARY = ' 20000 ' Значение SALARY должно быть _ OR SALARY = '30000’ равным либо 20000, либо 30000
Операции сравнения и логические операции в выражениях могут использоваться самостоятельно или в комбинации с другими подобными операциями.
SELECT *
FROM PRODUCTS_TBL
WHERE PROD_ID = '7725'
OR PROD_ID = '2345';
Слайд 16 Отрицание условий с помощью операции отрицания
Для всех выше рассмотренных типов
операций можно построить их отрицания, чтобы таким образом рассмотреть противоположные условия.
Ключевое слово NOT обращает смысл операции, с которой оно используется. Ключевое слово NOT используется с операциями следующим образом.
• NOT BETWEEN
• IS NOT NULL
• NOT IN
• NOT EXISTS
• NOT LIKE
• NOT UNIIQUE
Пример_________________________Значение____________
WHERE SALARY о '20000' Зарплата не равна 20000
WHERE SALARY != '20000' Зарплата не равна 20000
Слайд 17Арифметические операции
Арифметические операции используются в SQL точно так же, как и
в большинстве других языков. Таких операций четыре:
• + (сложение);
• * (умножение);
• - (вычитание);
• / (деление).
Сложение - знак "+".
Пример_____________________________Значение________
SELECT SALARY + BONUS Значение SALARY складывается FROM EMPLOYEE_PAY_TBL; со значением BONUS для каждой -
SELECT SALARY FROM EMPLOYEE_PAY_TBL строки данных
WHERE SALARY + BONUS > '40000';Выбор строк, для которых _______________________________сумма SALARY И BONUS _______________________________превышает 40000
Слайд 18 Вычитание - знак "-".
Пример________________________Значение________________
SELECT SALARY - BONUS Значение BONUS вычитается
из FROM EMPLOYEE_PAY_TBL; значения SALARY
SELECT SALARY Выбор строк, для WHERE SALARY
FROM EMPLOYEE_PAY_TBL BONUS > '40000'; для которых раз-_ _ разность SALARY _ и BONUS Превышает 40000
Умножение - знак "*".
Пример_______________________ Значение________________
SELECT SALARY * 10 Значение SALARY умножается FROM EMPLOYEE_PAY_TBL; на 10
SELECT SALARY FROM EMPLOYEE_PAY_TBL Выбор строк, WHERE SALARY * 10 > '40000',- SALARY, для которых значение
умноженное на 10, превышает 40000
Слайд 19Деление
Деление представлено знаком "/" (косой чертой).
Пример________________________________Значение_______
SELECT SALARY /10 Значение SALARY
делится на 10
FROM EMPLOYEE_PAY_TBL;
SELECT SALARY FROM EMPLOYEE_PAY_TBL Выбор строк, WHERE SALARY / 10 > '40000'; для которых значение SALARY,
деленное на 10, превышает 40000
Комбинирование арифметических операций
Арифметические операции можно комбинировать. Сначала выполняются операции умножения и деления, а затем — операции сложения и вычитания. Пользователь может управлять порядком выполнения операций в выражении только с помощью скобок. Заключенное в скобки выражение означают необходимость рассматривать выражение как единый блок.
Порядок выполнения операций (приоритет операций) задает порядок, в котором обрабатываются выражения в математических выражениях или встроенных функциях SQL.