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;Tecnologia
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';Tecnologia
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;Tecnologia
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%';Tecnologia
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.10WHERE department ='Marketing';Tecnologia
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
DELETEFROM orders
WHERE order_date <'2023-01-01';Tecnologia
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 ISNULL;Tecnologia
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'ANDNOT salary <40000;Tecnologia
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.
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`.
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
Este exemplo recupera todas as colunas da tabela `employees` para registros em que o `department` é 'Sales'.
2. Filtragem com várias condições
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
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
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
Esse exemplo exclui todos os pedidos feitos antes de 1º de janeiro de 2023.
6. Manipulação de valores NULL
Essa consulta recupera todos os clientes cujo `last_name` é `NULL`.
7. Exemplo de operadores lógicos
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