Операции сравнения, логические и арифметические операции — КиберПедия 

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Операции сравнения, логические и арифметические операции

2022-02-11 30
Операции сравнения, логические и арифметические операции 0.00 из 5.00 0 оценок
Заказать работу

Для формирования сложных предикатов в SQL можно использовать следующие операции (табл.6).

Таблица 6.

Логические и другие операции в SQL

Операция Назначение
> Сравнивает два значения и возвращает «истину», если значение слева от оператора больше значения справа
< Сравнивает два значения и возвращает «истину», если левое значение меньше значения справа
>= Сравнивает два значения и возвращает «истину», если левое значение больше или равно значения справа
<= Сравнивает два значения и возвращает «истину», если левое значение меньше или равно значения справа
= Сравнивает два значения и возвращает «истину», если левое значение равно значения справа
<> Сравнивает два значения и возвращает «истину», если левое значение не равно значения справа
AND Логическая операция И (конъюнкция)
OR Логическая операция ИЛИ (дизъюнкция)
NOT Логическая операция НЕ (отрицание)
+ Сложение двух чисел
- Вычитание
* Умножение
/ Деление
& Конкатенация (объединение двух строк или двух любых разнотипных значений)

 

Пример 1. Пусть необходимо найти жилье в Пензе стоимостью не более 400 рублей в сутки.

Select Улица, Город, Плата

From Жилье

Where Город=’Пенза’ AND Плата<=400;

 

Для формирования более сложных предикатов можно использовать скобки, определяющие порядок вычисления значения предиката.

Предположим, нужно вывести цену за аренду жилья и рядом налог на имущество, выплачиваемый за это жилье. Результат выдать отсортированный по полям «город» и «адрес». Пусть налог на имущество за месяц представляет собой фиксированную сумму, равную 40 рублям плюс 13% от стоимости аренды:

 

SELECT Жилье.Ж No, Жилье.Город, Жилье.Улица, Жилье.Плата,

'40 руб. + 13%' AS СтавкаНалога,

(40+ Жилье.Плата*13/100)&'рублей' AS Налог

FROM Жилье

ORDER BY Город, Улица;

Результат:

 

 

ЖNo Город Улица Плата СтавкаНалога Налог
ЖА14 Астрахань ул.Н-16 650,00р. 40 руб. + 13% 124,5рублей
ЖЛ94 Москва ул.А-6 400,00р. 40 руб. + 13% 92рублей
ЖЖ21 Пенза ул.D-18 600,00р. 40 руб. + 13% 118рублей
ЖЖ4 Пенза ул.L-6 350,00р. 40 руб. + 13% 85,5рублей
ЖЖ16 Пенза ул.N-5 450,00р. 40 руб. + 13% 98,5рублей
ЖЖ36 Пенза ул.М-2 375,00р. 40 руб. + 13% 88,75рублей

 

Пример 2. Выдать список сотрудников мужского пола старше 55 лет и женского пола старше 45 лет. В данном примере будем использовать дополнительную функцию Date (), которая возвращает текущую дату. Аналог такой функции присутствует в различных реализациях СУБД, но не рассматривается стандартом SQL:

 

Select Имя, Фамилия, Дрожд

From Сотрудники

Where (Пол=’М’ AND (Date()- Дрожд)>55) OR

(Пол=’Ж’ AND (Date ()- Дрожд)>45);

Использование специальных операторов IN, BETWEEN, LIKE

Для определения более сложных выражений в предикатах с одной стороны и упрощения внешнего вида предикатов – с другой в SQL используются различные дополнительные операторы (табл.7).

Таблица 7.

Специальные операторы

Оператор, пример Назначение
<поле> IN (знач.1, знач.2, …) Пример. SELECT * FROM Сотрудники WHERE Ф no IN (‘ Ф 3’, ‘ Ф 7’); Определяет набор значений (множество), в которое данное значение может или не может быть включено. Обычно проверяется, принадлежит ли значение некоторого поля указанному множеству
<поле> BETWEEN <Мin Знач> AND <МахЗнач> Пример. SELECT * FROM Сотрудники WHERE ЗП BETWEEN 9000 AND 20000; Определяет диапазон, значения которого должны увеличиваться от возможного минимального значения (<МinЗнач>) до максимального (<Мах Знач>) и возвращает истину, если проверяемое поле принадлежит данному диапазону. Значение может быть как числовым, так и символьным
<поле> LIKE <шаблон>   Пример. SELECT * FROM Сотрудники WHERE Фамилия LIKE ‘Б%’; Проверяет, совпадает ли значение проверяемого поля с шаблоном. В качестве метасимволов шаблонов используются: символ подчеркивания (_), который замещает любой одиночный символ; символ процента (%) замещает последовательность любого количества символов

 

Замечания.

1. Оператор BETWEEN включает в результат граничные значения, поэтому, для того чтобы исключить граничные значения, можно использовать оператор IN. Например, необходимо выдать список всех сотрудников, зарплата которых больше 9000, но меньше 20000, т.е. граничные значения не включаются в результат. Тогда запрос может быть таким:

 

SELECT * FROM Сотрудники


Поделиться с друзьями:

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.