No tópico passado vimos como podem ser usados os operadores AND, OR e NOT. Agora vamos falar de outros três, também
muito importantes, que são o BETWEEN, o IS e o IN.
Fazendo um resumo rápido deles, seus papéis são:
- BETWEEN – Especificar um intervalo a ser
procurado
- IS – Tratar campos cujos dados são nulos
- IN – Verifica se uma condição ou um valor fazem parte de determinado grupo de valores especificados.
Vamos começar demonstrando o operador BETWEEN, mas antes, só para relembrarmos a estrutura
e o conteúdo da nossa tabela de clientes, vamos fazer um select em alguns campos:
SELECT nome AS Nome, email AS Email, idade AS Idade FROM cliente;
Muito bem. Agora vamos utilizar o operador BETWEEN para especificar que queremos
resultados apenas com idades entre 30 a 45 anos.
SELECT nome AS Nome, email AS Email, idade AS Idade FROM cliente WHERE idade BETWEEN 30 AND 45;
Vejam que o SGBD só nos retornou os dados de clientes cujas idades se encontravam no
intervalo que especificamos.
Antes de falar sobre o operador IS é preciso fazer alguns esclarecimentos. Devemos
entender o conceito de NULL.
O que é valor NULL?
Quando um SGBD não possui valor algum armazenado em algum campo, ele insere um valor definido como NULL, ou seja, é a ausência total de valor.
O MySQL especifica isso claramente em suas consultas. Vou fazer uma inserção em nossa tabela de clientes e,
propositalmente não vou inserir dados em alguns campos, como "endereço" e "idade".
INSERT INTO (telefone, nome, email, cpf) VALUES ("1234-1234", "Rodrigo",
"rodrigo@emailinexistente.com", "389476625-11");
Agora vou dar um SELECT apenas nesse cliente:
SELECT * FROM cliente WHERE nome LIKE 'Rodrigo';
Só como observação, o Oracle também exibe o valor NULL para especificar campos com ausência de dados, mas o SQL Server
não exibe nada nesses campos, então se você estiver fazendo uso desse SGBD da Microsoft, fique sempre atento e não
confunda um valor NULL com uma string vazia “”. A string vazia está lá! Ela existe! O valor NULL representa ausência total de informação.
Muito bem, agora que já sabemos o que é um campo NULL, vamos a um exemplo prático. Imaginem que queiramos exibir dados
como "nome", "email" e "idade" de todos os usuários cujas idades cadastradas no banco NÃO sejam nulas. Nosso comando
ficará assim:
SELECT nome AS Nome, email AS Email, idade AS Idade FROM cliente WHERE idade IS NOT NULL;
Percebam que os dados do cliente "Rodrigo", cuja idade está cadastrada como nula, não foram exibidos. Agora vou
inverter o comando, para que SOMENTE as idades nulas sejam exibidas.
SELECT nome AS Nome, email AS Email, idade AS Idade FROM cliente WHERE idade IS NULL;
Notem que agora apenas os dados do cliente Rodrigo, cuja idade é nula no banco, foram
exibidos.
Apenas para citar outro exemplo importante desse operador, mas que não veremos agora para não interromper a ordem dos
assuntos, nós poderíamos querer fazer a média de todas as idades efetivamente cadastradas no sistema, desconsiderando os usuários cujos valores desse campo sejam nulos. Isso seria facilmente
realizado com a verificação de “IS NOT NULL”, conforme utilizamos aqui. Mas voltaremos a falar dela no futuro.
Para encerrar, vou demonstrar o operador IN em ação. Como foi dito no início deste
tutorial, ele nos permite efetuar uma busca dentre alguns elementos pré-determinados. Como nossa base de dados também
possui a tabela "filme", vamos inserir alguns dados nela para que não usemos sempre a tabela cliente nas
demonstrações.
INSERT INTO filme VALUES (“Drama”, “Cidade de Deus”, 1);
INSERT INTO filme VALUES (“Drama”, “O Pianista”, 2);
INSERT INTO filme VALUES (“Drama”, “Sangue Negro”, 3);
INSERT INTO filme VALUES (“Infantil”, “Shrek”, 4);
INSERT INTO filme VALUES (“Aventura”, “Quase Famosos”, 5);
INSERT INTO filme VALUES (“Aventura”, “Avatar”, 6);
INSERT INTO filme VALUES (“Terror”, “Sexta-Feira 13”, 7);
INSERT INTO filme VALUES (“Terror”, “Brinquedo Assassino”, 8);
Nossa tabela de filmes agora possui os seguintes dados:
Agora vamos imaginar que queiramos efetuar uma consulta nos filmes do gênero "Drama". Podemos fazer isso com o
operador IN da seguinte forma:
SELECT * FROM filme WHERE genero IN (‘Drama’);
Poderíamos ainda especificar mais de um gênero, apenas separando-os por vírgulas dentro
dos parênteses, dessa forma:
SELECT * FROM filme WHERE genero IN ('Drama', 'Terror');
Agora foram exibidos tanto os filmes do gênero Drama quanto Terror. Bem, mas aí você, que está bem atento a todos os
tópicos pode pensar que é desnecessário utilizar o operador IN, pois poderíamos obter o mesmo resultado com o LIKE e o
OR, da seguinte maneira:
SELECT * FROM filme WHERE genero LIKE ‘Drama’ OR genero LIKE
‘Terror’;
Vamos executar:
Realmente é fácil notar que as tuplas retornadas pelo banco são as mesmas. Para essa consulta, considerada simples, o IN pôde ser substituído pela combinação LIKE + OR, mas existirão situações em que isso não será possível, quando as consultas não forem tão simples e estiverem envolvendo mais de uma tabela. Chegaremos lá! Por enquanto apenas acredite que o operador IN é muito importante.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Recorde de patentes
A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
PC com barulho?
Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.
Space Invaders
O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.
Ultima Online
Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".
Muitos aplicativos
Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Final Fantasy X
O jogo Final Fantasy X para o Sony Playstation 2 vendeu, apenas no dia do seu lançamento, 1.455.732 cópias, estabelecendo um recorde de vendagem para as primeiras 24 horas de um game. Méritos da SquareSoft, que desenvolveu um excelente produto!