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;

Where com outros operadores MySQL

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;

Where com outros operadores MySQL

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';

Where com outros operadores MySQL

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;

Where com outros operadores MySQL

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;

Where com outros operadores MySQL

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:

Where com outros operadores MySQL

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’);

Where com outros operadores MySQL

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');

Where com outros operadores MySQL

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:

Where com outros operadores MySQL

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.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.


A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.


O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.


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.


Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.


A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.


Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.


A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.


O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.


O filme Mortal Kombat, inspirado no jogo de mesmo nome, faturou 23 milhões de dólares apenas no fim de semana de estreia nos EUA. Ainda sobre este título de sucesso, outra cifra que impressiona é o faturamento ao longo do primeiro ano: 1 bilhão de dólares no mundo todo.