Ir al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL DONDE

La cláusula `WHERE` de PostgreSQL se utiliza para filtrar los registros que cumplen determinadas condiciones. Permite recuperar sólo las filas que cumplen los criterios proporcionados.

Utilización

La cláusula `WHERE` se suele utilizar junto con comandos de recuperación de datos como `SELECT`, `UPDATE` y `DELETE` para especificar qué registros deben verse afectados. Va después del nombre de la tabla y antes de otras cláusulas como `ORDENAR POR` o `GRUPO POR`.

sql
SELECT column1, column2, ...
FROM table_name
WHERE condition;

En esta sintaxis, la condición `WHERE` define los criterios de filtrado de la consulta, limitando el conjunto de resultados sólo a las filas que cumplan la condición.

Ejemplos

1. Filtrado básico

sql
SELECT *
FROM employees
WHERE department = 'Sales';

Este ejemplo recupera todas las columnas de la tabla "Empleados" para los registros en los que el "Departamento" es "Ventas".

2. Filtrar con varias condiciones

sql
SELECT first_name, last_name
FROM employees
WHERE department = 'Engineering' AND salary > 50000;

Aquí, la consulta recupera el `nombre_y apellido` de los empleados del departamento de `Ingeniería` con un salario superior a 50.000.

3. Utilizar la concordancia de patrones

sql
SELECT product_name
FROM products
WHERE product_name LIKE 'A%';

Este ejemplo utiliza el operador `LIKE` para obtener todos los nombres de productos que empiecen por la letra `A`.

4. Uso de WHERE en una sentencia UPDATE

sql
UPDATE employees
SET salary = salary * 1.10
WHERE department = 'Marketing';

Esta consulta aumenta el salario en un 10% para todos los empleados del departamento "Marketing".

5. Uso de WHERE en una sentencia DELETE

sql
DELETE FROM orders
WHERE order_date < '2023-01-01';

Este ejemplo elimina todos los pedidos realizados antes del 1 de enero de 2023.

6. Manejo de valores nulos

sql
SELECT * 
FROM customers 
WHERE last_name IS NULL;

Esta consulta recupera todos los clientes cuyo `apellido` es `NULL`.

7. Operadores lógicos Ejemplo

sql
SELECT employee_id
FROM employees
WHERE department = 'HR' OR department = 'Finance' AND NOT salary < 40000;

Esta consulta obtiene los ID de los empleados de los departamentos de "RRHH" o "Finanzas" con un salario no inferior a 40.000.

Consejos y buenas prácticas

  • Utiliza índices. Asegúrate de que las columnas indexadas se utilizan en las condiciones `WHERE` para acelerar el rendimiento de las consultas. Ten cuidado al utilizar funciones o cálculos en columnas indexadas, ya que pueden anular las ventajas del índice.
  • Aprovecha los operadores lógicos. Combina varias condiciones utilizando `AND`, `OR` y `NOT` para crear filtros complejos.
  • Optimiza el orden de las condiciones. Pon primero las condiciones más restrictivas para reducir rápidamente el conjunto de datos.
  • Utiliza sabiamente la concordancia de patrones. Utiliza `%` y `_` con `LIKE` con precaución, ya que pueden afectar al rendimiento.
  • Valida los tipos de datos. Asegúrate de que los tipos de datos de la condición de tu cláusula "DONDE" coinciden con los tipos de columna para evitar errores y mejorar la eficacia.
  • Ten en cuenta la distinción entre mayúsculas y minúsculas. Recuerda que PostgreSQL distingue entre mayúsculas y minúsculas en las comparaciones de texto, lo que puede afectar a los resultados de las condiciones "DONDE" que utilizan cadenas.