PostgreSQL – Операторы
Что такое оператор в PostgreSQL?
Оператор — это зарезервированное слово или символ, используемые в основном в предложении WHERE для выполнения операций, таких как сравнения и арифметические вычисления.
Операторы используются для указания условий в командах PostgreSQL, а также служат в качестве объединения нескольких условий в команде.
- Математические операторы
- Операторы сравнения
- Логические операторы
- Операторы для работы с битовыми строками
Математические операторы
Допустим, переменная a содержит 2, а переменная b содержит 3, тогда:
|
Оператор |
Описание |
Пример |
|
+ |
Сложение — добавляет значения по обе стороны от оператора |
a + b даст 5 |
|
- |
Вычитание - вычитание правого операнда из левого операнда |
a - b даст -1 |
|
* |
Умножение - умножает значения по обе стороны от оператора |
a * b даст 6 |
|
/ |
Деление - делит левый операнд на правый операнд |
b / a даст 1 |
|
% |
Модуль - Делит левый операнд на правый операнд и возвращает остаток |
b % a даст 1 |
|
^ |
Возведение в степень - это дает значение экспоненты правого операнда |
a ^ b даст 8 |
|
|/ |
Квадратный корень |
|/ 25.0 даст 5 |
|
||/ |
Кубический корень |
||/ 27.0 даст 3 |
|
! |
факториал |
5 ! даст 120 |
|
!! |
факториал (префиксный оператор) |
!! 5 даст 120 |
Операторы сравнения
Допустим, переменная a содержит 10, а переменная b содержит 20, тогда:
|
Оператор |
Описание |
Пример |
|
= |
Проверяет, равны ли значения двух операндов, если да, то условие становится истинным. |
(a = b) не правда. |
|
!= |
Проверяет, равны ли значения двух операндов, если нет, то условие становится истинным. |
(a != b) правда |
|
<> |
Проверяет, равны ли значения двух операндов, если нет, то условие становится истинным. |
(a <> b) правда |
|
> |
Проверяет, если значение левого операнда больше значения правого операнда, если да, то условие становится истинным. |
(a > b) не правда |
|
< |
Проверяет, если значение левого операнда меньше значения правого операнда, если да, условие становится истинным. |
(a < b) правда. |
|
>= |
Проверяет, если значение левого операнда больше или равно значению правого операнда, если да, условие становится истинным. |
(a >= b) не правда |
|
<= |
Проверяет, если значение левого операнда меньше или равно значению правого операнда, если да, условие становится истинным |
(a <= b) правда |
Логические операторы
Все логические операторы, доступные в PostgresSQL, приведены в таблице ниже:
|
S. No. |
Оператор и Описание |
|
1 |
AND
Оператор AND допускает существование нескольких условий в предложении WHERE. |
|
2 |
NOT Оператор NOT изменяет значение логического оператора, с которым он используется, в обратную сторону. Например, NOT EXISTS, NOT BETWEEN, NOT IN и т. д. Это оператор отрицания. |
|
3 |
OR Оператор OR используется для объединения нескольких условий в предложении WHERE |
Операторы для работы с битовыми строками
Данный оператор работает с битами и выполняет побитовую операцию. Таблица истинности для & и | выглядит следующим образом:
|
p |
q |
p & q |
p | q |
|
0 |
0 |
0 |
0 |
|
0 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
|
1 |
0 |
0 |
1 |
Предположим, что = 60; а B = 13; в бинарном формате они будут следующими:
A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 ~A = 1100 0011
Все операторы для работы с битовыми строками, приведены в таблице ниже:
|
Оператор |
Описание |
Пример |
|
& |
Бинарный оператор AND копирует бит в результат, если он существует в обоих операндах. |
(A & B) даст 12 что соответствует 0000 1100 в битах |
|
| |
Бинарный оператор OR копирует бит, если он существует в обоих операндах. |
(A | B) даст 61 что соответствует 0011 1101 |
|
~ |
Двоичный оператор дополнения является унарным и имеет эффект «переворачивания» битов. |
(~A ) даст -61 что соответствует 1100 0011 |
|
<< |
Двоичный оператор сдвига влево. Значение левого операнда перемещается влево на количество битов, указанное правым операндом. |
A << 2 даст 240 что соответствует 1111 0000 |
|
>> |
Двоичный оператор сдвига вправо. Значение левого операнда сдвигается вправо на количество битов, указанное правым операндом. |
A >> 2 даст 15 что соответствует 0000 1111 |
|
# |
Битовое XOR. |
A # B даст 49 что соответствует 00110001 |



