POR FRED CARBONARE
TUTORIAL/CONSULTAS
C O L E Ç Ã O I N F O>75
lguma vez você criou con- sultas a banco de dados com critério? É bem pro- vável que sim. E uma con- sulta com o critério OU em determi- nado campo, como Rio de Janeiro OU São Paulo? Provavelmente sim, tam- bém. Consultas com critérios são mui- to úteis. Quando desejamos que es- sas consultas sejam mais flexíveis, po- demos substituir o critério fixo por um critério com parâmetros. Exemplo: [Cidade1] OU [Cidade2]
Para treinar as consultas com crité- rio, neste tutorial faremos um cadas- tro de clientes acessando o banco de dados DB2 Express-C.
1.
BAIXE OS COMANDOSPara facilitar a compreensão, primei- ramente faça o download do arquivo db2.zip no endereço ftp://ftp.info.
abril.com.br/ebd_db2.zipe descom-
pacte-o. Nesse arquivo você encon- trará os comandos SQL necessários para criar a tabela de exemplo.
2.
CRIE A TABELANo DB2 Express-C, crie um banco de dados padrão chamado Consulta. Em
A
Identificação: dê o nome Consulta No DB2: crie o banco de dados padrão
seguida, localize o arquivo Criar.sql que você descompactou e execute- o. Ele irá criar uma tabela chamada Clientes com as seguintes colunas: id, nome, endereco, telefone, cida- de, estado, datanasc e incluirá alguns dados de exemplo.
Ao dar um duplo clique sobre a ta- bela Clientes, veremos o seu con- teúdo. Como você pode notar, tra- ta-se de uma tabela simples, que armazena uma lista de clientes e as suas respectivas cidades.
TUTORIAL/CONSULTAS
C O L E Ç Ã O I N F O>77
TUTORIAL/CONSULTAS
76<C O L E Ç Ã O I N F O
3.
NOVA CONSULTAComo poderemos visualizar apenas os clientes localizados na cidade de São Bernardo do Campo? Criando, é claro, uma consulta com critério. Pa- ra isso, clique com o botão direito na tabela e escolha Consultar. Na janela Nova Consulta que se abriu, fique com a opção Selecionado > Assistente SQL. Ainda Na janela Nova Consulta, sele- cione Instrução SELECT > From e es- colha a tabela Clientes.
dor “=”, e, em Valor, escolha a op- ção Listar valores. Na nova janela de valores, dê um duplo clique em São Bernardo. Basta clicar no bo- tão > para adicionar o critério. Cli- que em OK e em Resultados da Con- sulta para ver o resultado.
5.
CRITÉRIO OUQuando abrimos o assistente SQL do DB2 Express-C, ele zera toda a pro- gramação feita antes. Assim, para sa- ber quais são os clientes de São Ber- nardo OU São Paulo, é necessário criar novamente o critério e adicionar um novo para a cidade de São Paulo, cli- cando no botão OR >.
6.
VISUALIZANDO O SQLAo criarmos uma consulta no As- sistente SQL, o programa, nos bas- tidores, cria uma instrução SQL pa- ra realizar a pesquisa solicitada. Ve- ja como ficou no nosso primeiro exemplo:
SELECT *
FROM SQLJ.CLIENTES AS CLIENTES WHERE CLIENTES.CIDADE = ’São Bernardo’
7.
RESTRINGINDOVamos supor agora que você quer visualizar os clientes de “São Ber- nardo” OU “São Paulo”, mas ape- nas os que nasceram em 1990. Pa- ra isso usaremos o mesmo siste- ma de critérios, mas adicionando um outro, do tipo AND.
De volta ao Assistente SQL, es- colha a coluna DATANASC e o ope- rador BETWEEN. Em valor mínimo coloque ‘1990-01-01’ e, em valor máximo, ‘1990-12-31’. Clique em "AND >". Agora, clique em OK e execute o comando, acionando Re- sultados da Consulta.
Pronto, agora você pode usar o Assistente SQL para gerar coman- dos com critérios de acordo com a sua aplicação e extrair relató- rios cada vez mais precisos do seu banco de dados.
Esse exemplo, feito no DB2 Ex- press-C, pode ser aplicado em qual- quer outro banco de dados. A dife- rença vai ser mais visual do que con- ceitual, de acordo com o assisten- te do produto.
Valores: adicione o novo critério
Como ficou: visualize o código SQL
Critério: escolha a opção Where
4.
O CRITÉRIOAgora vamos colocar o critério. Pa- ra isso, escolha a opção WHERE. Nessa janela Where, escolha a co- luna CIDADE, (imagem 008) opera-
Tabela: clique duplo exibe conteúdo
AND OU OR?
>
Dúvidas sobre a utilização dos critérios AND e OR costumam ser freqüentes entre os iniciantes na arte de armazenar informação. Quando colocamos a instrução OR, acrescentamos registros ao resul- tado. Quando utilizamos AND, res- tringimos. Para exemplificar, ima-gine um amigo procurando na- morada. Ele prefere loiras de olhos azuis. Então deve especi- ficar loira AND olhos azuis. Ago- ra, se para você tanto faz se a mo- ça é loira ou morena, defina a con- sulta com loiras OR morenas. Suas possibilidades serão maiores. Quando adicionamos o critério para
as duas cidades, se você observar a declaração SQL montada, vai notar que a cláusula WHERE mudou para: WHERE CLIENTES.CIDADE = ’São Bernardo’ OR CLIENTES.CIDADE = ’São Paulo’;
Note que a diferença entre as duas instruções SQL é a quantida- de de parâmetros contidos exata- mente na cláusula Where. Da mes- ma forma, a diferença da cláusula Where entre uma consulta que pos- sua o critério: “São Bernardo”, e ou- tra com o critério: “São Bernardo” OU “São Paulo”, será a quantidade de campos na cláusula Where. 075_TUT GUIA DB2 25/02/2006 23:58 Page 76
TUTORIAL/CONSULTAS
C O L E Ç Ã O I N F O>77
TUTORIAL/CONSULTAS
76<C O L E Ç Ã O I N F O
3.
NOVA CONSULTAComo poderemos visualizar apenas os clientes localizados na cidade de São Bernardo do Campo? Criando, é claro, uma consulta com critério. Pa- ra isso, clique com o botão direito na tabela e escolha Consultar. Na janela Nova Consulta que se abriu, fique com a opção Selecionado > Assistente SQL. Ainda Na janela Nova Consulta, sele- cione Instrução SELECT > From e es- colha a tabela Clientes.
dor “=”, e, em Valor, escolha a op- ção Listar valores. Na nova janela de valores, dê um duplo clique em São Bernardo. Basta clicar no bo- tão > para adicionar o critério. Cli- que em OK e em Resultados da Con- sulta para ver o resultado.
5.
CRITÉRIO OUQuando abrimos o assistente SQL do DB2 Express-C, ele zera toda a pro- gramação feita antes. Assim, para sa- ber quais são os clientes de São Ber- nardo OU São Paulo, é necessário criar novamente o critério e adicionar um novo para a cidade de São Paulo, cli- cando no botão OR >.
6.
VISUALIZANDO O SQLAo criarmos uma consulta no As- sistente SQL, o programa, nos bas- tidores, cria uma instrução SQL pa- ra realizar a pesquisa solicitada. Ve- ja como ficou no nosso primeiro exemplo:
SELECT *
FROM SQLJ.CLIENTES AS CLIENTES WHERE CLIENTES.CIDADE = ’São Bernardo’
7.
RESTRINGINDOVamos supor agora que você quer visualizar os clientes de “São Ber- nardo” OU “São Paulo”, mas ape- nas os que nasceram em 1990. Pa- ra isso usaremos o mesmo siste- ma de critérios, mas adicionando um outro, do tipo AND.
De volta ao Assistente SQL, es- colha a coluna DATANASC e o ope- rador BETWEEN. Em valor mínimo coloque ‘1990-01-01’ e, em valor máximo, ‘1990-12-31’. Clique em "AND >". Agora, clique em OK e execute o comando, acionando Re- sultados da Consulta.
Pronto, agora você pode usar o Assistente SQL para gerar coman- dos com critérios de acordo com a sua aplicação e extrair relató- rios cada vez mais precisos do seu banco de dados.
Esse exemplo, feito no DB2 Ex- press-C, pode ser aplicado em qual- quer outro banco de dados. A dife- rença vai ser mais visual do que con- ceitual, de acordo com o assisten- te do produto.
Valores: adicione o novo critério
Como ficou: visualize o código SQL
Critério: escolha a opção Where
4.
O CRITÉRIOAgora vamos colocar o critério. Pa- ra isso, escolha a opção WHERE. Nessa janela Where, escolha a co- luna CIDADE, (imagem 008) opera-
Tabela: clique duplo exibe conteúdo
AND OU OR?
>
Dúvidas sobre a utilização dos critérios AND e OR costumam ser freqüentes entre os iniciantes na arte de armazenar informação. Quando colocamos a instrução OR, acrescentamos registros ao resul- tado. Quando utilizamos AND, res- tringimos. Para exemplificar, ima-gine um amigo procurando na- morada. Ele prefere loiras de olhos azuis. Então deve especi- ficar loira AND olhos azuis. Ago- ra, se para você tanto faz se a mo- ça é loira ou morena, defina a con- sulta com loiras OR morenas. Suas possibilidades serão maiores. Quando adicionamos o critério para
as duas cidades, se você observar a declaração SQL montada, vai notar que a cláusula WHERE mudou para: WHERE CLIENTES.CIDADE = ’São Bernardo’ OR CLIENTES.CIDADE = ’São Paulo’;
Note que a diferença entre as duas instruções SQL é a quantida- de de parâmetros contidos exata- mente na cláusula Where. Da mes- ma forma, a diferença da cláusula Where entre uma consulta que pos- sua o critério: “São Bernardo”, e ou- tra com o critério: “São Bernardo” OU “São Paulo”, será a quantidade de campos na cláusula Where. 075_TUT GUIA DB2 25/02/2006 23:58 Page 76
TUTORIAL/INTERFACE WEB
C O L E Ç Ã O I N F O>79