English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operadores AND & OR do SQL

Neste tutorial, você aprenderá a usar os operadores AND & OR na cláusula WHERE para filtrar registros com várias condições.

Selecionar registros com base em condições

No capítulo anterior, aprendemos como usar uma condição com a cláusula WHERE para obter registros da tabela. Mas às vezes você precisa filtrar registros com várias condições, por exemplo, escolher registros com idade maior que30 anos e país/usuários da região dos EUA, escolha preços abaixo de100 dólares e com avaliações maiores que4produtos, etc.

Operador AND

O operador AND é um operador lógico que combina duas condições e retorna TRUE apenas quando os resultados das duas condições forem TRUE. Geralmente usado emSELECTUPDATEDELETEdo comandoWHEREA cláusula usa o operador AND para formar condições que filtram o conjunto de resultados.

SELECT column1_name, column2_name, columnN_nameFROM table_nameWHERE condition1 AND condition2;

Vamos ver alguns exemplos para demonstrar como ele realmente funciona.

Suponha que tenhamos um banco de dados com um nomeemployeesda tabela, que contém os seguintes registros:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 | NULL |
+--------+--------------+------------+--------+---------+

WHERE é usado juntamente com a cláusula AND

A seguinte consulta SQL extrairá apenasemployeesa tabela retorna salários (salary) maiores que7000 edept_idigual a5desses funcionários.

SELECT * FROM employees
WHERE salary > 7000 AND dept_id = 5;

Após a execução, você receberá a seguinte saída:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+

Operador OR

Da mesma forma, o operador OR é um operador lógico que combina duas condições, mas retorna TRUE quando qualquer uma das condições for TRUE.

A seguinte consulta SQL extrairáemployeesa tabela retorna salários (salary) maiores que7000 oudept_idigual a5de todos os empregados.

SELECT * FROM employees
WHERE salary > 7000 OR dept_id = 5;

Você receberá a seguinte saída:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
+--------+--------------+------------+--------+---------+

Uso simultâneo dos operadores AND e OR

Você também pode combinar AND e OR para criar expressões de condições complexas.

A seguinte sentença SQL retornará salários maiores que5000,edept_idigual a1ou5de todos os empregados.

SELECT * FROM employees
WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);

Após executar a consulta acima, você obterá a seguinte saída:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+