Operadores AND y OR de PostgreSQL
En PostgreSQL, AND y OR también se llaman operadores de conexión. Al consultar datos, se utilizan para reducir el rango de la consulta. Podemos usar AND u OR para especificar una o más condiciones de consulta.
AND
El operador AND indica que una o más condiciones deben cumplirse al mismo tiempo.
En la cláusula WHERE, la sintaxis para usar AND es la siguiente:
SELECT column1, column2, columnN FROM table_name WHERE [condition1] AND [condition2]...AND [conditionN];
Ejemplo
Crear la tabla COMPANY (Descargar el archivo SQL de COMPANY), el contenido de los datos es el siguiente:
ejemplodb# 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)
El siguiente ejemplo lee todos los registros donde el campo AGE es mayor que 25 y el campo SALARY es mayor o igual que 65000:
ejemplodb=# SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000; id | name | age | address | salary ----+-------+-----+------------+-------- 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (2 rows)
OR
El operador OR indica que de las múltiples condiciones solo se necesita que se cumpla una cualquiera.
En la cláusula WHERE, la sintaxis para usar OR es la siguiente:
SELECT column1, column2, columnN FROM table_name WHERE [condition1] OR [condition2]...OR [conditionN]
Crear la tabla COMPANY (Descargar el archivo SQL de COMPANY), el contenido de los datos es el siguiente:
ejemplodb# 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)
El siguiente ejemplo lee todos los registros donde el campo AGE es mayor o igual que 25 o el campo SALARY es mayor o igual que 65000:
ejemplodb=# SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000; 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)Otras extensiones