terça-feira, 9 de junho de 2015

Banco de Dados Básico - Parte 04 – Clausula Where



A cláusula Where tem por objetivo restringir os registros de uma consulta, de acordo com o critério utilizado. Em resumo, filtra os registros.
E porque tenho que filtrar registros? Bem, na maioria das consultas que irá realizar, o filtro será essencial.

Imagine o seguinte cenário: Uma base de dados de uma escola que contem a nota de todos os alunos, em todas as matérias, em todos os anos letivos que o aluno esteve na escola. Deve ser uma base enorme. Agora imagine o seguinte: Preciso levantar a nota do Joãozinho, no ano de 2013, na matéria de matemática. Se a base é grande, dificilmente irá procurar registro por registro até encontrar. Seria como secar gelo, ou encher pneu de trem.
No excel você resolveria essa pesquisa mais ou menos da seguinte forma:



Figura 01.


No campo nome, filtraria o nome João:




Figura 02.


No campo Materia, filtraria matemática:



Figura 03.


E no campo Ano filtraria 2013:



Figura 04.


Pronto. Agora sabemos qual a nota de João, 6.




Figura 05.


Poderíamos fazer um passo a passo do processo de filtragem que utilizamos:

Selecionamos
  todos os campos
da tabela escolar
enquanto
  o valor de nome for igual a João
e o valor da materia for igual a matematica
e o ano for igual a 2013.


 Esse processo de filtragem não é diferente em Sql. A consulta Sql para essa tabela seria aproximadamente assim:

SELECT
      NOME,
      MATERIA,
      ANO,
      NOTA
FROM
      TABELA_ESCOLA
WHERE
      NOME = 'João'         -- filtro 1
AND MATERIA = 'Matematica'  -— filtro 2
AND ANO = 2013              -- filtro 3


No Books online a sintaxe da instrução where é a seguinte:

WHERE <search_condition>

Onde < search_condition >:
Define a condição a ser atendida para as linhas retornadas. Não há nenhum limite para o número de predicados que podem ser incluídos em um critério de pesquisa.

Essa “condição de pesquisa” pode ter algumas variações:


  • Condição de pesquisa com igualdade - Utilizada quando o valor (ou conteúdo) de um determinado campo seja exatamente igual a condição de pesquisa.

Sintaxe:

Where [campo] = [valor pesquisado]

Exemplo:

Use [AdventureWorksDW2014]
GO
select
*
from
[dbo].[DimAccount]
where
AccountKey = 1

select
*
from
[dbo].[DimAccount]
where
AccountDescription = 'Assets'


  • Condição de pesquisa com operador de comparação -  Verifica o campo com as opções de comparação e o valor de pesquisa.


Sintaxe:

Where [campo] [operador de comparação] [valor pesquisado]

Onde [operador de comparação]:
> - Maior
< - Menor
<> - Diferente
<= - Menor ou igual
>= Maior ou igual

Exemplos:

Use [AdventureWorksDW2014]
GO
select
*
from
[dbo].[DimAccount]
where
AccountKey > 4

select
*
from
[dbo].[DimAccount]
where
AccountKey < 4

select
*
from
[dbo].[DimAccount]
where
AccountKey <> 4

select
*
from
[dbo].[DimAccount]
where
AccountKey >= 4

select
*
from
[dbo].[DimAccount]
where
AccountKey <= 4



  • Operador de pesquisa em uma lista de valores (IN) - Verifica o valor do campo utilizando uma lista de valores. Esses valores são separados por virgula (“,”).


Sintaxe:

Where [campo] IN ([valor1],[valor2],... [valorN])

Exemplo:


USE [AdventureWorksDW2014]

GO

SELECT
*
FROM
[dbo].[DimEmployee]
WHERE MiddleName IN ('J','L','T')


SELECT
*
FROM
[dbo].[DimEmployee]
WHERE EmployeeKey IN (17,43,49,55)




  • Operador de pesquisa entre dois valores (between) -  Verifica se o valor do campo está entre dois valores disponibilizados.

 Sintaxe:

Where [campo] Between [valor inicial] and [valor final]

Exemplo:

SELECT
*
FROM
[dbo].[DimEmployee]
WHERE EmployeeKey Between 17 and 55



  • Operador de pesquisa com apenas trechos de um texto (like) - Verifica se o valor do campo contem trecho (ou parte) de um texto pesquisado.


Sintaxe:

Where [campo] like [%] [valor texto] [%]

Exemplo:

 SELECT
*
FROM
[dbo].[DimEmployee]
WHERE LastName Like 'A%'



SELECT
*
FROM
[dbo].[DimEmployee]
WHERE LastName Like '%A'


Observação: A instrução like é mais complexa e tem mais opções do que o apresentado no exemplo. Será detalhada em um próximo artigo.

Obrigado e até a próxima!


Referencias:



Operadores comparação:

Clausula Where:


Like:


Between:


Nenhum comentário:

Postar um comentário