A cláusula Where permite restringir a consulta SQL, trazendo somente os dados que interessam no momento.
A cláusula where utiliza operadores de comparação:
x = y verifica se x é igual a y
select * from employees
where employee_id = 207;
x > y verifica se x é maior que y
select employee_id
,first_name
,job_id
,salary
from employees
where salary > 9000;
x > = y verifica se x é maior ou igual a y
x < y verifica se x é menor que y
x <= y verifica se x é menor ou igual a y
LIKE usado para buscar uma cadeia de caracteres, mesmo que você não saiba parte dela.
O like pode ser usado com % quando por exemplo você quer trazer todos os registros cujo nome comecem com A:
select * from employees
where first_name like 'A%';
Para trazer todos os registros cujo nome contenha a string 'xand'
select * from employees
where first_name like '%xand%';
LIKE pode ser também utilizado com o caracter _
Vamos imaginar que alguem possa ter digitado Steven com e ou com i e você queira ter certeza que serão retornados todos os "Steven";
select * from employees
where first_name like 'Stev_n';
BETWEEN permite verificar se y está entre x e z, pode ser usado com datas, números ou caracteres.
select employee_id
,first_name
,job_id
,salary
from employees
where salary between 12000 and 17000;
IN permite verificar se o valor de uma coluna está entre um conjunto de valores
select employee_id
,first_name
,job_id
,salary
from employees
where job_id in ('AD_VP', 'MK_MAN', 'FI_MGR');
Caso seja necessário restringir a consulta em mais de uma condição, podem ser acrescentadas as palavras chaves and, or, not e is null
select employee_id
,first_name
,job_id
,salary
from employees
where job_id in ('AD_VP', 'MK_MAN', 'FI_MGR')
and salary >= 13000;
Vamos utilizar agora o mesmo caso acima, porém onde os cargos NÃO sejam AD_VP, MK_MAN e FI_MGR.
select employee_id
,first_name
,job_id
,salary
from employees
where job_id not in ('AD_VP', 'MK_MAN', 'FI_MGR')
and salary >= 13000;
Utilizando o operador IS NULL, vamos buscar os dados onde os nomes dos funcionários comecem entre A e D e não recebam comissão
select employee_id
,first_name
,job_id
,salary
,commission_pct
from employees
where first_name between 'A%' and 'D%'
and commission_pct is null;
Nenhum comentário:
Postar um comentário