English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El operador es un símbolo que informa al compilador de ejecutar una operación matemática o lógica específica.
El operador de PostgreSQL es una palabra clave reservada o carácter, generalmente utilizado en las declaraciones WHERE, como condición de filtrado.
Operadores comunes incluyen:
Operadores aritméticos
Operadores de comparación
id | name | age | address | salary
Operadores de bits
Supongamos que la variable a es 2, la variable b es 3Entonces:
Operador | Descripción | Ejemplo |
---|---|---|
+ | Sumar | un + b El resultado es 5 |
- | Restar | un - b El resultado es -1 |
* | Multiplicar | un * b El resultado es 6 |
/ | Dividir | b / a El resultado es 1 |
% | Módulo (resto de división) | b % a El resultado es 1 |
^ | Exponencial | a ^ b El resultado es 8 |
|/ | Raíz cuadrada | |/ 25.0 El resultado es 5 |
||/ | Cubo raíz | ||/ 27.0 El resultado es 3 |
! | Factorial | 5 ! El resultado es 120 |
!! | Factorial (operador de prefijo) | !! 5 El resultado es 120 |
w3codeboxdb=# select 2+3; ?column? ---------- 5 (1 row) w3codeboxdb=# select 2*3; ?column? ---------- 6 (1 row) w3codeboxdb=# select 10/5; ?column? ---------- 2 (1 row) w3codeboxdb=# select 12%5; ?column? ---------- 2 (1 row) w3codeboxdb=# select 2^3; ?column? ---------- 8 (1 row) w3codeboxdb=# select |/ 25.0; ?column? ---------- 5 (1 row) w3codeboxdb=# select ||/ 27.0; ?column? ---------- 3 (1 row) w3codeboxdb=# select 5 !; ?column? ---------- 120 (1 row) w3codeboxdb=# select !!5; ?column? ---------- 120 (1 row)
Supongamos que la variable a es 10, la variable b es 20, entonces:
Operador | Descripción | Ejemplo |
---|---|---|
= | Igual | (a = b) es falso. |
!= | No igual | (a != b) es verdadero. |
<> | No igual | (a <> b) es verdadero. |
> | Mayor | (a > b) es falso. |
< | Menor | (a < b) es verdadero. |
>= | Mayor o igual | (a >= b) es falso. |
<= | Menor o igual | (a <= b) es verdadero. |
El contenido del archivo COMPANY.SQL es el siguiente:
-- Este es el archivo para crear la tabla COMPANY y para rellenarla con 7 registros. -- Simplemente copia y pega estos comandos en el prompt de psql. DROP TABLE COMPANY; CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50) SALARY REAL ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'David', 27, 'Texas', 85000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 ); INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
Crear la tabla COMPANY, el contenido de los datos es como sigue:
w3codeboxdb=# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
Leer el campo SALARY mayor que 5Leer el campo SALARY distinto de
w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY > 5FROM COMPANY WHERE SALARY <> id | name | age | address | salary ----+-------+-----+-----------+-------- 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (2 rows)
Leer el campo SALARY igual a 2Leer el campo SALARY distinto de
w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY = 2FROM COMPANY WHERE SALARY <> id | name | age | address | salary ----+-------+-----+-------------+-------- 1 | Paul | 32 | California | 20000 3 | Teddy | 23 | Norway | 20000 (2 rows)
FROM COMPANY WHERE SALARY = 2Leer el campo SALARY distinto de
w3codeboxdb=# SELECT * 0000 de los datos: 2FROM COMPANY WHERE SALARY <> id | name | age | address | salary ----+-------+-----+-------------+-------- 2 | Allen | 25 | Texas | 15000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 (5 rows) w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY != 2FROM COMPANY WHERE SALARY <> 0000; ----+-------+-----+------------+-------- 2 | Allen | 25 Mond | 15000 4 | Mark | 25 | Rich-id | name | age | address | salary 65000 5 | David | 27 Mond | 85000 6 | Kim | 22 | South- | Texas | 45000 7 | James | 24 Hall | 10000 (5 rows)
| Houston | 65Leer el campo SALARY igual o mayor que
w3codeboxdb=# SELECT * 000 de los datos: 65FROM COMPANY WHERE SALARY >= 000; ----+-------+-----+-----------+-------- 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (2 rows)
Operador lógico
Los operadores lógicos lógicos de PostgreSQL son los siguientes: | Número |
---|---|
1 | SQL utiliza un sistema lógico de tres valores, incluso true, false y null, null representa "desconocido". Operador & Descripción El operador lógico AND. Si ambos operandos no son cero, la condición es verdadera. |
2 | NO La cláusula WHERE de PostgresSQL puede contener múltiples condiciones con AND. El operador lógico NOT. Se utiliza para invertir el estado lógico del operando. Si la condición es verdadera, el operador lógico NOT lo convertirá en falso. |
3 | O PostgresSQL tiene operadores como NOT EXISTS, NOT BETWEEN, NOT IN, etc. El operador lógico OR. Si al menos un operando es no cero, la condición es verdadera. |
La cláusula WHERE de PostgresSQL puede contener múltiples condiciones con OR.
un | b | un SQL utiliza un sistema lógico de tres valores, incluso true, false y null, null representa "desconocido". b | un O b |
---|---|---|---|
TRUE | TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE | TRUE |
TRUE | NULL | NULL | TRUE |
FALSE | FALSE | FALSE | FALSE |
FALSE | NULL | FALSE | NULL |
NULL | NULL | NULL | NULL |
un | NO un |
---|---|
TRUE | FALSE |
FALSE | TRUE |
NULL | NULL |
El contenidos del archivo COMPANY.SQL es el siguiente:
-- Este es el archivo para crear la tabla COMPANY y para rellenarla con 7 registros. -- Simplemente copia y pega estos comandos en el prompt de psql. DROP TABLE COMPANY; CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50) SALARY REAL ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'David', 27, 'Texas', 85000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 ); INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
Crear la tabla COMPANY, el contenido de los datos es como sigue:
w3codeboxdb=# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
Leer el campo AGE mayor o igual que 25 y el campo SALARY es mayor o igual que 6500 de los datos:
w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 6500; id | name | age | address | salary ----+-------+-----+-----------------------------------------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (4 rows)
Leer el campo AGE mayor o igual que 25 o el campo SALARY es mayor que 6500 de los datos:
w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE >= 25 O SALARY >= 6500; id | name | age | address | salary ----+-------+-----+-------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 8 | Paul | 24 | Houston | 20000 9 | James | 44 | Norway | 5000 10 | James | 45 | Texas | 5000 (10 rows)
Leer los datos del campo SALARY que no son NULL:
w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY IS NOT NULL; id | name | age | address | salary ----+-------+-----+-------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 8 | Paul | 24 | Houston | 20000 9 | James | 44 | Norway | 5000 10 | James | 45 | Texas | 5000 (10 rows)
Los operadores de bit actúan sobre bits y ejecutan operaciones bit a bit. Las tablas de verdad de &、 | y ^ son las siguientes:
p | q | p & q | p | q |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
Supongamos que A = 60, y B = 13representados en formato binario, se ven así:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
La siguiente tabla muestra los operadores de bit admitidos por PostgreSQL. Supongamos que la variable A el valor es 60, variable B el valor es 13Entonces:
Operador | Descripción | Ejemplo |
---|---|---|
& | Operación AND bit a bit, realiza una operación AND bit a bit. Reglas de operación: 0&0=0; 0&1=0; 1&0=0; 1&1=1; | (A & B) Se obtendrá 12,es decir, 0000 1100 |
| | Operador de OR bit a bit, realiza una operación OR bit a bit. Reglas de operación: 0|0=0; 0|1=1; 1|0=1; 1|1=1; | (A | B) Se obtendrá 61,es decir, 0011 1101 |
# | Operador de XOR, realiza una operación XOR bit a bit. Reglas de operación: 0#0=0; 0#1=1; 1#0=1; 1#1=0; | (A # B) Se obtendrá 49,es decir, 0011 0001 |
~ | Operador de inversión, realiza una inversión bit a bit. Reglas de operación: ~1=0; ~0=1; | (~A ) Se obtendrá -61,es decir 1100 0011,la forma de complemento a dos de un número binario con signo. |
<< | Operador de desplazamiento a la izquierda en binario. Desplaza todos los bits de un operando una cierta cantidad de posiciones a la izquierda (se descartan los bits a la izquierda y se rellena con 0 a la derecha). | A << 2 Se obtendrá 240,es decir 1111 0000 |
>> | Operador de desplazamiento a la derecha en binario. Desplaza todos los bits de un número una cierta cantidad de posiciones a la derecha, rellenando con 0 a la izquierda para números positivos, y con el complemento a dos para números negativos.1,descartando los bits a la derecha. | A >> 2 Se obtendrá 15,es decir, 0000 1111 |
w3codeboxdb=# select 60 | 13; ?column? ---------- 61 (1 row) w3codeboxdb=# select 60 & 13; ?column? ---------- 12 (1 row) w3codeboxdb=# select (~60); ?column? ---------- -61 (1 row) w3codeboxdb=# select60 << 2); ?column? ---------- 240 (1 row) w3codeboxdb=# select60 >> 2); ?column? ---------- 15 (1 row) w3codeboxdb=# select 60 # 13; ?column? ---------- 49 (1 row)