MySQL E palavra-chave
A palavra-chave `AND` no MySQL é usada para combinar várias condições em instruções SQL, garantindo que todas as condições especificadas sejam verdadeiras para que as linhas sejam incluídas no conjunto de resultados. É frequentemente usado em conjunto com `WHERE`, `HAVING`, `ON` e outras cláusulas para refinar a recuperação de dados.
Uso
A palavra-chave `AND` é utilizada quando há necessidade de aplicar mais de uma condição a uma consulta. Ele ajuda a filtrar os resultados com base em vários critérios, garantindo que apenas as linhas que atendem a todas as condições sejam retornadas.
sql
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2;
Nessa sintaxe, `condição1` e `condição2` são os critérios que devem ser verdadeiros para que uma linha seja selecionada.
Exemplos
1. Condição básica E
sql
SELECT *
FROM orders
WHERE status = 'Shipped' AND customer_id = 123;
Essa consulta seleciona todas as colunas da tabela `orders` em que o `status` é 'Shipped' e o `customer_id` é 123.
2. Combinação de várias condições
sql
SELECT first_name, last_name
FROM employees
WHERE department = 'Sales' AND salary > 50000 AND hire_date < '2020-01-01';
Aqui, a consulta recupera o nome e o sobrenome dos funcionários do departamento de Vendas com um salário maior que 50.000 e contratados antes de 1º de janeiro de 2020.
3. Usando AND com JOIN
sql
SELECT orders.order_id, customers.customer_name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
WHERE orders.total_amount > 100 AND customers.region = 'North';
Essa consulta combina dados das tabelas `orders` e `customers` usando `JOIN` e filtra os resultados em que o `total_amount` é maior que 100 e a região do cliente é 'North'.
4. Usando AND na cláusula ON
sql
SELECT orders.order_id, customers.customer_name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id AND customers.active = 1;
Essa consulta utiliza a palavra-chave `AND` diretamente na cláusula `ON` para garantir que somente os clientes ativos sejam incluídos.
5. Usando AND na cláusula HAVING
sql
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 10 AND AVG(salary) > 60000;
Nesse exemplo, a cláusula `HAVING` usa `AND` para filtrar grupos em que o número de funcionários é maior que 10 e o salário médio é superior a 60.000.
Dicas e práticas recomendadas
- Use parênteses para maior clareza. Ao combinar `AND` com `OR`, use parênteses para garantir a ordem correta de avaliação.
- Otimize as condições. Coloque a condição mais restritiva primeiro para melhorar o desempenho da consulta.
- Tenha cuidado com os tipos de dados. Certifique-se de que as condições sejam comparáveis e de tipos de dados compatíveis para evitar resultados inesperados.
- Teste consultas complexas. Divida e teste condições complexas individualmente para garantir que cada parte funcione conforme o esperado antes de combiná-las.
- A ordem das condições é importante. A sequência de condições pode afetar o desempenho e a legibilidade, especialmente em consultas complexas.
- Evite erros lógicos. Tenha cuidado ao misturar `AND` e `OR` sem parênteses, pois isso pode levar a erros lógicos inesperados.