English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como usar SQL para selecionar registros específicos de uma tabela.
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.
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 | +--------+--------------+------------+--------+---------+
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.
SQL支持许多可在WHERE子句中使用的运算符,下表总结了最重要的运算符。
操作员 | 描述 | Operadores permitidos na cláusula WHERE |
---|---|---|
A seguinte tabela resume os operadores mais importantes permitidos na cláusula WHERE. | Operador | Descrição 2 |
Exemplos Online | Igual | Igual 30 |
Verificar se o id é igual a | Maior | Verificar se a idade é maior que 18 |
Menor | Verificar se a idade é menor que | Maior ou igual 4 |
Maior ou igual | Menor ou igual | Menor ou igual 100 |
Verificar se o preço é menor ou igual a | LIKE | Padrão de Match Simples |
Verificar se o valor especificado coincide com qualquer valor na lista ou subconsulta | IN | Verificar se o valor especificado coincide com qualquer valor na lista ou subconsulta |
E | Verificar se o valor especificado está entre | Verificar se o valor especificado está entre 3 E 5 |