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

Cláusula WHERE do SQL

Neste tutorial, você aprenderá como usar SQL para selecionar registros específicos de uma tabela.

Seleção de registros com base em condições

No capítulo anterior, aprendemos como obter todos os registros de uma tabela ou coluna. No entanto, no mundo real, geralmente precisamos apenas selecionar, atualizar ou excluir registros que atendam a certas condições, como pertencer a uma faixa etária ou a um país./usuários da região, etc.

cláusula WHERE é usada paraSELECT,UPDATEeDELETEMas, você verá nos próximos capítulos como usar essa cláusula com outras instruções.

Sintaxe

A cláusula WHERE é usada juntamente com a instrução SELECT para extrair apenas os registros que atendem a condições específicas. A sintaxe básica pode ser dada da seguinte forma:

SELECT column_list FROM table_name WHERE condition;

Aqui,column_listé a coluna da tabela de banco de dados que você deseja obter o valor/do campoNome,por exemploname,age,countryetc. Mas, se você quiser obter todos os valores das colunas disponíveis na tabela, você pode usar a seguinte sintaxe:

SELECT * FROM table_name WHERE condition;

Agora, vamos ver alguns exemplos para demonstrar como ele realmente funciona.

Supondo que tenhamos um banco de dados chamadoemployeesda 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 |
+--------+--------------+------------+--------+---------+

usando a cláusula WHERE para filtrar registros

A seguinte instrução SQL obteráemployeesNa tabela, retorna os que têm salário maior que7000 de todos os employee. A cláusula WHERE remove dados não necessários.

SELECT * FROM employees
WHERE salary > 7000;

Após a execução, a saída será como mostrado a seguir:

+--------+--------------+------------+--------+---------+
| 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 |
+--------+--------------+------------+--------+---------+

Como você vê, a saída contém apenas salários maiores que7000 dos funcionários. Da mesma forma, você pode obter registros de colunas específicas, conforme mostrado a seguir:

SELECT emp_id, emp_name, hire_date, salary
FROM employees
WHERE salary > 7000;

Após executar a instrução acima, você obterá a seguinte saída:

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

A seguinte instrução obterá o funcionário cujo ID de funcionário é2do registro do funcionário.

SELECT * FROM employees
WHERE emp_id = 2;

Esta instrução gerará a seguinte saída:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
+--------+--------------+------------+--------+---------+

Nesta vez, obtemos apenas uma linha na saída, porqueemp_idPara cada funcionário é único.

WHERE子句中允许的运算符

SQL支持许多可在WHERE子句中使用的运算符,下表总结了最重要的运算符。

操作员描述Operadores permitidos na cláusula WHERE
A seguinte tabela resume os operadores mais importantes permitidos na cláusula WHERE.OperadorDescrição 2
Exemplos OnlineIgualIgual 30
Verificar se o id é igual aMaiorVerificar se a idade é maior que 18
MenorVerificar se a idade é menor queMaior ou igual 4
Maior ou igualMenor ou igualMenor ou igual 100
Verificar se o preço é menor ou igual aLIKEPadrão de Match Simples
Verificar se o valor especificado coincide com qualquer valor na lista ou subconsultaINVerificar se o valor especificado coincide com qualquer valor na lista ou subconsulta
EVerificar se o valor especificado está entreVerificar se o valor especificado está entre 3 E 5