Minicursos - MySQL

Where com outros operadores


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.




Notícias - Games

Atari VCS é finalmente lançado e surpreende

O Atari VCS foi lançado recentemente e trouxe suporte a praticamente todos os serviços de streaming de jogos já disponíveis. A única exceção foi por conta do Playstation Now, cujo suporte nativo não é oferecido, mas ele pode ser acessado através do modo PC do VCS, já que o console possui Googl...

Ler Notícia Completa

Conheça o Playstation 2 portátil criado por um brasileiro

Claudio Adriano decidiu criar uma versão portátil do console Playstation 2, da Sony. Inspirado no Nintendo Switch, o console ficou pronto depois de 2 anos de trabalho e algumas interessantes adaptações. Partindo de uma placa-mãe de um PS2 Slim, Claudio fez os encaixes necessários para que a pla...

Ler Notícia Completa

PS5 com SSDs não originais apresentam ótimo resultado

A última atualização do PS5 permite que se faça a expansão do armazenamento do console. Embora o aparelho exija características específicas para os dispositivos de expansão, como taxa de leitura de 5Gb/s, ele funciona surpreendentemente bem com SSDs de velocidades inferi...

Ler Notícia Completa

Capcom Pro Tour sofre o cancelamento de algumas etapas por conta do coronavírus

Em um comunicado ao público via redes sociais, a Capcom revelou que algumas etapas do Capcom Pro Tour foram removidas do calendário como precaução contra o surto de coronavírus pelo mundo...

Ler Notícia Completa

Conheça o Stadia: a incrível plataforma de streaming de games do Google

O Google deu o pontapé inicial para o que espera ser o futuro dos videogames: consoles e hardware em geral ficam em segundo plano, e os games rodam em qualquer dispositivo via streaming. A plataforma Stadia promete levar jogos para notebooks, TVs, celulares e muito mais. O projeto do Google se...

Ler Notícia Completa

Anúncios pornográficos eram exibidos em jogos infantis da Google Play Store devido a um bug

Um app malicioso foi responsável por fazer com que cerca de 60 jogos publicados na Google Play Store veiculassem anúncios pornográficos. Entre os aplicativos estão games infantis e títulos baixados mais um milhão de vezes na loja online da Google. O problema foi flagrado pela empresa de seguran...

Ler Notícia Completa

Sim, jogadores profissionais de games podem ter carteira assinada.

Com a profissionalização dos jogadores de games, quem escolhe viver da habilidade no mouse, teclado ou joystick tem direito a carteira assinada e aos benefícios de atletas e de outros profissionais? Sim. É o que pensam advogados especializados em direito desportivo que estavam na Campus Party 20...

Ler Notícia Completa

Segunda temporada de Castlevania chegará no segundo semestre

Para quem ficou na vontade após apenas 4 episódios, a segunda temporada da série animada de "Castlevania" deve ser lançada no meio de 2018 na Netflix. A informação foi divulgada pelo roteirista da série, Warren Ellis, por meio de sua conta oficial no Twitter. O escritor também confirmou que esta...

Ler Notícia Completa

Comercial do KitKat que imitava o jogo Breakout gera processo da Atari contra a Nestlé

A Atari está processando a Nestlé por ter “copiado” seu famoso jogo dos anos 1970 Breakout em um anúncio para TV do chocolate KitKat. O vídeo em questão mostrava uma série de atores jogando videogame em um sofá que, de repente, entram em um “game real” no qual barras de KitKat fazem as vezes dos...

Ler Notícia Completa
Ajude o Contém Bits com um cafezinho!

Se você gostou do artigo, se ele lhe foi útil de alguma maneira e você quiser ajudar o Contém Bits, saiba que é simples, fácil e rápido. Basta clicar na imagem do PayPal (ou no cafezinho) e seguir as instruções, em ambiente seguro e com o respaldo do Paypal. Eu agradeço muito! :)


Você gostará destes vídeos: