Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL WHERE

A cláusula `WHERE` no PostgreSQL é usada para filtrar registros que atendem a condições específicas. Ele permite que você recupere apenas as linhas que atendem aos critérios fornecidos.

Uso

A cláusula `WHERE` é normalmente usada em conjunto com comandos de recuperação de dados como `SELECT`, `UPDATE` e `DELETE` para especificar quais registros devem ser afetados. Ela vem depois do nome da tabela e antes de outras cláusulas como `ORDER BY` ou `GROUP BY`.

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

Nessa sintaxe, `WHERE condition` define os critérios de filtro para a consulta, limitando o conjunto de resultados apenas às linhas que satisfazem a condição.

Exemplos

1. Filtragem básica

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

Este exemplo recupera todas as colunas da tabela `employees` para registros em que o `department` é 'Sales'.

2. Filtragem com várias condições

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

Aqui, a consulta recupera o `primeiro_nome` e o `último_nome` dos funcionários do departamento de "Engenharia" com um salário maior que 50.000.

3. Usando a correspondência de padrões

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

Este exemplo usa o operador `LIKE` para buscar todos os nomes de produtos que começam com a letra 'A'.

4. Uso do WHERE em uma instrução UPDATE

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

Essa consulta aumenta o salário em 10% para todos os funcionários do departamento de "Marketing".

5. Usando WHERE em uma declaração DELETE

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

Esse exemplo exclui todos os pedidos feitos antes de 1º de janeiro de 2023.

6. Manipulação de valores NULL

sql
SELECT * 
FROM customers 
WHERE last_name IS NULL;

Essa consulta recupera todos os clientes cujo `last_name` é `NULL`.

7. Exemplo de operadores lógicos

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

Essa consulta obtém IDs de funcionários dos departamentos de "RH" ou "Finanças" com um salário não inferior a 40.000.

Dicas e práticas recomendadas

  • Use índices. Certifique-se de que as colunas indexadas sejam usadas nas condições `WHERE` para obter um desempenho de consulta mais rápido. Tenha cuidado ao usar funções ou cálculos em colunas indexadas, pois eles podem anular os benefícios do índice.
  • Aproveite os operadores lógicos. Combine várias condições usando `AND`, `OR` e `NOT` para criar filtros complexos.
  • Otimize a ordem das condições. Coloque as condições mais restritivas primeiro para reduzir o conjunto de dados rapidamente.
  • Use a correspondência de padrões com sabedoria. Use `%` e `_` com `LIKE` com cautela, pois eles podem afetar o desempenho.
  • Validar tipos de dados. Certifique-se de que os tipos de dados na condição da cláusula `WHERE` correspondam aos tipos de coluna para evitar erros e aumentar a eficiência.
  • Considere a sensibilidade a maiúsculas e minúsculas. Lembre-se de que o PostgreSQL diferencia maiúsculas de minúsculas nas comparações de texto, o que pode afetar os resultados das condições `WHERE` que utilizam strings.