Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2022-02-11 | 30 |
5.00
из
|
Заказать работу |
|
|
Для формирования сложных предикатов в 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!