Nesta
lição e nas próximas duas lições aprenderemos a definir
critérios em consultas. Nesta lição falaremos sobre os
operadores que podemos utilizar em critérios de pesquisa, bem
como alguns exemplos teóricos. A partir da próxima lição,
veremos exemplos práticos de aplicação dos conceitos vistos
nesta lição.
Definindo
critérios simples:
Para
definir critérios simples, basta digitar o valor do critério
no respectivo campo, no Microsoft Query. Por exemplo, se
queremos filtrar apenas os pedidos para o Brasil, bastaria
digitar Brasil na coluna correspondente ao campo País, conforme
indicado na Figura 2.39:
Figura
2.39 – Critério: País = ‘Brasil’
Nota:
A partir da próxima lição aprenderemos a utilizar a interface
do Microsoft Query, indicada na Figura 2.39.
É
possível definir critérios para dois ou mais campos. Por
exemplo, País = ‘Brasil’ e Cidade=’São Paulo”. Com
isso serão retornados apenas os registros que atenderem aos
dois critérios ao mesmo tempo. Também podemos definir critérios
independentes. Por exemplo, País=’Brasil’ Ou
Cidade=’Paris’. Neste exemplo iremos retornar todos os
registros para o Brasil, independentemente da cidade e todos os
registros da Cidade de Paris. Observe que são dois conjuntos
independentes de registros. No texto a seguir coloco mais alguns
exemplos que destacam com clareza a diferença entre critérios
ligados pelo operador “E” e critérios ligados pelo
operador “OU”.
Entendendo
a diferença entre o operador “OU” e o operador “E”:
Agora
trataremos de um assunto teórico e que muitas vezes causa
confusão: a diferença e como funciona os operadores lógicos
“E” e “OU”.
Veremos
que existem diferenças fundamentais entre estes dois operadores
e que é muito importante entendermos estas diferenças para que
possamos obter os resultados desejados quando estamos definindo
critérios de pesquisa em uma lista de valores no Excel ou em
consultas do Microsoft Access ou do Microsoft Query. Os
conceitos vistos nesta lição também são válidos para o uso
destes operadores em consultas do Access ou em qualquer outro
programa onde possam ser utilizados os operadores “E” e
“OU”, como por exemplo em mecanismos de pesquisa na
Internet, como o Google (http://www.google.com/)
o Yahoo (http://www.yahoo.com/)
e o Alta Vista (www.altavista.com.br).
Entendendo
o operador E:
Utilizamos
o operador E sempre que precisarmos definir dois ou mais critérios
de pesquisa. Quando os critérios são unidos por um operador E,
todos os critérios devem ser verdadeiros para que um registro
seja selecionado. Por exemplo, se forem definidos três critérios
unidos por operadores E, os três critérios devem ser atendidos
para que um registro seja selecionado. Se, por exemplo, dois dos
critérios forem verdadeiros mas um for falso, o referido
registro não será selecionado.
Vamos
entender o operador E através de um exemplo prático.
Ex-01:
Suponha que sejam definidos os seguintes critérios:
País=’Brasil’
E Cidade=’São Paulo’ E Frete>50
Neste
caso, somente serão selecionados os registros que atenderem os
três critérios. Na listagem a seguir, temos exemplos de
registros que atendem aos três critérios ao mesmo tempo e, por
isso, seriam selecionado:
*******************************************************************
Brasil
São Paulo 10494 COMMI 02/04/1997 30/04/1997 R$ 65,99
Brasil
São Paulo 10487 QUEEN 26/03/1997 23/04/1997 R$ 71,07
Brasil
São Paulo 10606 TRADH 22/07/1997 19/08/1997 R$ 79,40
Brasil
São Paulo 10290 COMMI 27/08/1996 24/09/1996 R$ 79,70
Brasil
São Paulo 11068 QUEEN 04/05/1998 01/06/1998 R$ 81,75
Brasil
São Paulo 10830 TRADH 13/01/1998 24/02/1998 R$ 81,83
Brasil
São Paulo 10961 QUEEN 19/03/1998 16/04/1998 R$ 104,47
Brasil
São Paulo 10659 QUEEN 05/09/1997 03/10/1997 R$ 105,81
Brasil
São Paulo 10406 QUEEN 07/01/1997 18/02/1997 R$ 108,04
Brasil
São Paulo 10786 QUEEN 19/12/1997 16/01/1998 R$ 110,87
Brasil
São Paulo 10650 FAMIA 29/08/1997 26/09/1997 R$ 176,81
Brasil
São Paulo 10868 QUEEN 04/02/1998 04/03/1998 R$ 191,27
Brasil
São Paulo 10637 QUEEN 19/08/1997 16/09/1997 R$ 201,29
******************************************************************
Observe
que todos estes registros atendem aos três critérios de
pesquisa. Já os registros da listagem a seguir não seriam
selecionados, pois não atendem a um ou mais dos critérios de
pesquisa:
*******************************************************************
Brasil
São Paulo 10969 COMMI 23/03/1998 20/04/1998 R$ 0,21
Brasil
São Paulo 10292 TRADH 28/08/1996 25/09/1996 R$ 1,35
Brasil
São Paulo 10581 FAMIA 26/06/1997 24/07/1997 R$ 3,01
Brasil
São Paulo 10347 FAMIA 06/11/1996 04/12/1996 R$ 3,10
Brasil
São Paulo 10512 FAMIA 21/04/1997 19/05/1997 R$ 3,53
Brasil
São Paulo 10704 QUEEN 14/10/1997 11/11/1997 R$ 4,78
Brasil
Rio de Janeiro 10379 QUEDE 11/12/1996 08/01/1997 R$ 45,03
Brasil
Rio de Janeiro 10421 QUEDE 21/01/1997 04/03/1997 R$ 99,23
Brasil
Rio de Janeiro 10447 RICAR 14/02/1997 14/03/1997 R$ 68,66
Brasil
Rio de Janeiro 10481 RICAR 20/03/1997 17/04/1997 R$ 64,33
Brasil
Rio de Janeiro 10541 HANAR 19/05/1997 16/06/1997 R$ 68,65
Brasil
Rio de Janeiro 10563 RICAR 10/06/1997 22/07/1997 R$ 60,43
Brasil
Rio de Janeiro 10720 QUEDE 28/10/1997 11/11/1997 R$ 9,53
Brasil
Rio de Janeiro 10770 HANAR 09/12/1997 06/01/1998 R$ 5,32
Áustria
Graz 10258 ERNSH
17/07/1996 14/08/1996 R$ 140,51
Áustria
Graz 10263 ERNSH
23/07/1996 20/08/1996 R$ 146,06
Áustria
Graz 10351 ERNSH
11/11/1996 09/12/1996 R$ 162,33
*******************************************************************
Observe
que alguns dos registros não atendem a um dos critérios,
outros não atendem a dois dos critérios e outros não atendem
a nenhum dos critérios. O importante, novamente, é salientar
que, com o operador E, somente serão selecionados os registros
que atenderem a todos os critérios.
Entendendo
o operador OU:
Utilizamos
o operador OU sempre que precisarmos definir dois ou mais critérios
de pesquisa. Quando os critérios são unidos por um operador
OU, basta que um
dos critérios seja verdadeiro para que um registro seja
selecionado.
Por
exemplo, se forem definidos três critérios unidos por
operadores OU e um dos critérios fosse verdadeiro, ou dois dos
critérios fossem verdadeiros, ou até mesmo se os três critérios
fossem verdadeiros, o registro seria selecionado. Um registro somente não será selecionado se todos os critérios unidos
pelo operador OU forem falsos para o referido registro.
Vamos
entender o operador OU através de um exemplo prático.
Ex-02: Suponha que sejam definidos os seguintes critérios:
Ano
do Pedido=1997 OU Cidade=São Paulo OU Frete>50
Neste
caso será selecionado qualquer registro que atender, pelo
menos, um dos critérios unidos pelo operador OU. Somente deixarão
de ser selecionados os registros que não atenderem a nenhum dos
critérios especificados.
Na prática serão selecionados
os seguintes registros:
Todos
os pedidos para o ano de 1997, independentemente da Cidade e
do valor do frete.
Todos
os pedidos para a cidade de São Paulo, independentemente do
ano e do valor do frete.
Todos
os pedidos com valores de frete maiores do que 50,
independentemente do ano e da cidade.
Na
Listagem a seguir temos exemplos de alguns registros que
seriam selecionados:
*******************************************************************
Brasil
São Paulo 10581 FAMIA 26/06/1997
24/07/1997 R$ 3,01
Brasil
São Paulo 10512 FAMIA 21/04/1997
19/05/1997 R$ 3,53
Áustria
Graz 10402 ERNSH 0
2/01/1997 13/02/1997 R$ 67,88
Áustria
Graz 10403 ERNSH 0
3/01/1997 31/01/1997 R$ 73,79
Itália
Bergamo 10404 MAGAA 03/01/1997 31/01/1997 R$ 155,97
Brasil
São Paulo 10704 QUEEN 14/10/1997 11/11/1997 R$ 4,78
França
Lille 10408 FOLIG
08/01/1997 05/02/1997 R$ 11,26
Canadá
Tsawassen 10410 BOTTM 10/01/1997
07/02/1997 R$ 2,40
Canadá
Tsawassen 10411 BOTTM 10/01/1997
07/02/1997 R$ 23,65
França
Toulouse 10413 LAMAI 14/01/1997
11/02/1997 R$ 95,66
Brasil
São Paulo 10725 FAMIA 31/10/1997
28/11/1997 R$ 10,83
EUA
Elgin 10415 HUNGC
15/01/1997 12/02/1997 R$ 0,20
*******************************************************************
Na
Listagem a seguir temos exemplos de alguns registros que
não seriam selecionados. Observe que estes registros não
atendem a nenhum dos três critérios ligados pelo operador OU,
ou seja, somente quando os três critérios forem falsos é que
o registro deixará de ser selecionado.
*******************************************************************
Venezuela
I. de Margarita 10811 LINOD 02/01/1998 30/01/1998 R$ 31,22
Brasil
Rio de Janeiro 10813 RICAR 05/01/1998 02/02/1998 R$ 47,38
EUA
Boise 10815
SAVEA 05/01/1998 02/02/1998 R$ 14,62
Argentina
Buenos Aires 10819 CACTU 07/01/1998 04/02/1998 R$ 19,76
EUA
Albuquerque 10820 RATTC 07/01/1998 04/02/1998 R$ 37,52
EUA
Lander 10821
SPLIR 08/01/1998 05/02/1998 R$ 36,68
EUA
Kirkland 10822 TRAIH 08/01/1998 05/02/1998 R$ 7,00
Suécia
Bräcke 10824
FOLKO 09/01/1998 06/02/1998 R$ 1,23
França
Strasbourg 10826 BLONP 12/01/1998 09/02/1998 R$ 7,09
*******************************************************************
Resumindo:
Critérios
unidos por um operador E -> Todos tem que ser verdadeiros
para que o registro seja selecionado. Basta que um seja falso
para que o registro não seja selecionado.
Critérios
unidos por um operador OU -> Basta que um seja verdadeiro
para que o registro seja selecionado. Somente quando todos forem
falsos é que o registro não será selecionado.
Utilizando
operadores para definir critérios de pesquisa:
O
Microsoft Query (a exemplo do Microsoft Access), disponibiliza
uma série de operadores que facilitam a definição de critérios
de pesquisa. Além de facilitar a definição, os operadores do
Microsoft Access nos oferecem uma série de possibilidades para
a definição de critérios mais sofisticados. Aprenderemos a
utilizar os seguintes operadores:
Ao
utilizarmos estes operadores o Query, automaticamente, traduz o
nome dos operadores para Português, conforme indicado na tabela
a seguir:
O
operador
É traduzido para
In
Em
Between
Entre
Not
É Negado
Like
Como
O
operador In
O
operador In é utilizado para definir critérios de filtragem em
campos do tipo texto. Quando temos vários critérios para serem
especificados em um mesmo campo, é mais vantagem utilizar o
operador In do que utilizar os vários critérios unidos pelo
operador Ou. Considere o exemplo a seguir, onde temos um critério
definido para o campo PaísDeDestino, de duas maneiras
diferentes: uma utilizando "um monte" de
operadores Ou e outra utilizando um único operador In.
"Brasil"
Ou "Argentina" Ou "Alemanha" Ou "França"
Ou "Áustria"
In
("Brasil";"Argentina";"Alemanha";"França";"Áustria")
Observe
que com a utilização do operador In o critério fica "mais
enxuto", de mais fácil leitura e interpretação.
Neste exemplo serão selecionados apenas os pedidos para os países
especificados. Observe que os diferentes elementos são
separados por ; e cada elemento está entre aspas. Entre o
operador In e a abertura do parênteses existe um espaço em
branco. Na tabela a seguir temos mais alguns exemplos de utilização
do operador In.
O
operador Between:
O
operador Between é utilizado em campos numéricos ou do tipo
Data/Hora, para testar se o campo está dentro de uma
determinada faixa de valores. Por exemplo, para testar se o
valor do frete é maior ou igual a 10 ou menor ou igual a 20,
podemos utilizar um dos seguintes critérios:
>=10
E <=20
Between
10 E 20
Para
testar se uma data está dentro do ano de 1997 podemos utilizar
um dos seguintes critérios:
>=#01/01/1997#
E <=#31/12/1997#
Between
#01/01/1997# E #31/12/1997#
Na
tabela a seguir temos mais alguns exemplos de utilização do
operador Between.
Nota:
É importante observar que o operador Between representa um
intervalo fechado, ou seja, maior ou igual e menor ou igual.
O
operador Like:
Este
operador é utilizado para pesquisas em campos do tipo texto. A
diferencial do operador Like é que ele permite a pesquisa de
padrões de texto, ou seja, permite que seja pesquisado um campo
do tipo texto, especificando apenas parte do campo e não o seu
conteúdo exato. Por exemplo, podemos pesquisar todos os
clientes que tem em alguma parte do nome a palavra Silva. Desta
maneira seriam retornados, por exemplo, os seguintes nomes:
·
José da Silva
·
Silva Antônio da Costa
·
João Pereira da Silva
·
Maria José da Silva
·
Silva Fontoura dos Santos
Com
o operador Like podemos utilizar alguns caracteres conhecidos
como caracteres "coringa". Na tabela a seguir
temos a lista dos caracteres coringa que podem ser utilizados
com o operador Like:
Observações:
Os
caracteres curinga devem ser utilizados com tipos de dados de
texto, embora você possa, às vezes, utilizá-los com sucesso
com outros tipos de dados, tais como datas, se você não
alterar as propriedades das Configurações Regionais destes
tipos de dados.
Ao
utilizar caracteres curinga para procurar um asterisco (*), um
ponto de interrogação (?), um sinal numérico (#), um colchete
de abertura ([) ou um hífen (-), você deve colocar o item que
você está procurando entre colchetes.
Por
exemplo, para procurar um ponto de interrogação, digite [?].
Quando você estiver procurando um hífen e outros caracteres
simultaneamente, coloque o hífen antes ou depois de todos os
outros caracteres dentro dos colchetes. (Entretanto, se houver
um ponto de exclamação (!) depois do colchete de abertura,
coloque o hífen depois do ponto de exclamação). Quando você
estiver procurando um ponto de exclamação ou um colchete de
fechamento, não é necessário colocá-los entre colchetes.
Você
não pode procurar os colchetes de abertura e fechamento ([ ])
juntos porque o Microsoft Query interpreta esta combinação
como uma seqüência de comprimento zero.
Se
você estiver procurando valores em uma tabela que não seja do
Microsoft Access, como, por exemplo, uma tabela do Microsoft SQL
Server, pode ser necessário utilizar caracteres curinga
diferentes. Verifique a documentação da fonte de dados para
obter maiores informações.
Para
entendermos a utilização do operador Like e dos caracteres
coringa, vamos considerar os exemplos da tabela a seguir:
O
operador Not:
O
operador Not é utilizado para negar, para inverter um
determinado critério.
Considere
os exemplos:
País=’Brasil”
-> Retorna todos os registros onde o campo País é
igual a Brasil.
Not
País=’Brasil’ ->
Retorna todos os pedidos onde o campo País é diferente de
Brasil, ou seja: Não Brasil
Também
podemos utilizar o operador Not em conjunto com os operadores
Like, Between e In.
Todos
os direitos reservados: ® Júlio Battisti, 2002