Cláusula WHERE do MySQL
A cláusula `WHERE` no MySQL é usada para filtrar registros em uma instrução SQL, permitindo que você especifique condições que devem ser atendidas. É comumente usado para restringir os resultados da consulta, tornando a recuperação de dados mais eficiente e específica.
Uso
A cláusula `WHERE` é aplicada para filtrar registros com base em condições especificadas em comandos SQL, como `SELECT`, `UPDATE` e `DELETE`. Ela segue a cláusula `FROM` e precede outras cláusulas como `GROUP BY` ou `ORDER BY`.
sql
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Nessa sintaxe, `WHERE condition` especifica os critérios que cada linha deve atender para ser incluída no conjunto de resultados.
Exemplos
1. Filtro básico
sql
SELECT *
FROM customers
WHERE city = 'New York';
Essa consulta recupera todas as colunas da tabela `customers` em que a `city` é 'New York'.
2. Seleção condicional com operadores
sql
SELECT first_name, last_name
FROM employees
WHERE salary > 50000;
Este exemplo seleciona o `primeiro_nome` e o `último_nome` dos funcionários cujo salário é maior que 50.000, demonstrando o uso de operadores de comparação.
3. Múltiplas condições com AND/OR
sql
SELECT order_id, order_date
FROM orders
WHERE status = 'Shipped' AND order_date >= '2023-01-01';
Aqui, a consulta recupera `order_id` e `order_date` da tabela `orders`, filtrando os pedidos que foram enviados e colocados em 1º de janeiro de 2023 ou após essa data.
4. Correspondência de padrões com LIKE
sql
SELECT product_name
FROM products
WHERE product_name LIKE 'A%';
Essa consulta seleciona `product_name` da tabela `products` em que o nome começa com 'A', usando o operador `LIKE` para correspondência de padrões.
5. Manipulação de valores NULL
sql
SELECT first_name, last_name
FROM employees
WHERE department IS NULL;
Esse exemplo recupera `first_name` e `last_name` de funcionários que não pertencem a nenhum departamento, demonstrando o uso de `IS NULL` para lidar com valores NULL.
Dicas e práticas recomendadas
- Indexar colunas relevantes. Garanta que as colunas usadas nas condições `WHERE` sejam indexadas para melhorar o desempenho da consulta.
- Tenha em mente os valores NULL. Use `IS NULL` ou `IS NOT NULL` para lidar com valores NULL de forma eficaz em suas condições.
- Use parênteses para maior clareza. Ao combinar várias condições com `AND`/`OR`, use parênteses para garantir a ordem correta de avaliação.
- Limitar o uso de curingas. Evite usar curingas como `%` no início de uma cláusula `LIKE`, a menos que seja necessário, pois isso pode reduzir o desempenho da consulta.
- Otimize a ordem das condições. Coloque as condições mais restritivas primeiro para reduzir o número de registros avaliados. Isso pode melhorar o desempenho da consulta, eliminando rapidamente as linhas não correspondentes.
- Considere as configurações de agrupamento. Esteja ciente de como as configurações de agrupamento podem afetar as comparações de texto, o que pode levar a resultados inesperados em alguns casos.