Minicursos - MySQL

Select + Where


Agora vou falar sobre um complemento importantíssimo do comando SELECT, que é o WHERE, que nos permite consultas específicas. Este parâmetro permite que se especifique um dado para comparação com algo que pode estar no banco, ou seja, um dado de entrada para direcionar nossa busca.

Para que eu possa demonstrar as funcionalidades do parâmetro WHERE, farei a inserção de mais alguns dados fictícios em nossa tabela de clientes.

INSERT INTO cliente VALUES("1234-1234", "Ricardo", "Rua Episcopal, 3900 - Centro", "ricardo@emailinexistente.com", 32, "123321123-33");

INSERT INTO cliente VALUES("4567-4567", "Roberto", "Rua XV de Novembro, 25 - Centro", "roberto@emailinexistente.com", 42, "756398336-20");

INSERT INTO cliente VALUES("4444-3333", "Richard", "Rua Bahia, 215 - Pacaembu", "richard@emailinexistente.com", 18, "645332378-11");

Com esses dados já é possível demonstrar um pouco do que se pode fazer com o comando WHERE.

Para que fique claro, vamos começar com um SELECT exibindo os dados de nossa tabela, mas apenas nos campos nome, idade e email.

SELECT nome AS Nome, idade AS idade, email AS Email FROM cliente;

Comando Select com cláusula Where MySQL

A imagem acima mostra o retorno dos dados da nossa consulta. Vamos imaginar que quiséssemos exibir apenas os dados das pessoas que possuam idade maior do que 30 anos. Aqui o parâmetro WHERE entrará em ação, da seguinte forma:

SELECT nome AS Nome, idade AS Idade, email AS Email FROM cliente WHERE idade > 30;

Vejamos o retorno disso:

Comando Select com cláusula Where MySQL

Vejam que o SGBD retornou apenas as tuplas que continham idade maior do que 30 anos. Se quiséssemos incluir TAMBÉM as pessoas com idade igual a 30 anos, nosso código ficaria assim:

SELECT nome AS Nome, idade AS Idade, email AS Email FROM cliente WHERE idade >= 30;

Comando Select com cláusula Where MySQL

Vejam que eu incluí o sinal de igual e os dados retornados já incluem os clientes com idade igual a 30 anos.

Vamos nos aprofundar um pouco mais nas consultas imaginando uma situação em que se quisesse saber a idade e o email do cliente cujo nome é "Daniel". Agora nossa consulta ficaria dessa forma:

SELECT nome AS Nome, idade AS Idade, email AS Email FROM cliente WHERE nome like ‘Daniel’;

Vejamos esse retorno:

Comando Select com cláusula Where MySQL

Agora o SGBD retornou apenas o cliente cadastrado com o nome de "Daniel". Vale destacar que no exemplo da idade eu comparei esse campo utilizando o sinal de igual (=), mas para comparar a string eu utilizei o parâmetro like. Strings devem ser sempre comparadas utilizando o like e colocando-se o dado de entrada entre aspas simples.

Vamos aprofundar mais um pouco. Agora nós não sabemos o nome completo do cliente que queremos procurar, mas precisamos dos mesmos dados do exemplo acima para clientes cujo nome comece com a letra R. Agora nosso comando ficará assim:

SELECT nome AS Nome, idade AS Idade, email AS Email FROM cliente WHERE nome like 'R%';

Comando Select com cláusula Where MySQL

Vejam que eu utilizei o sinal de porcentagem, que em linguagem SQL é um caractere coringa, ou seja, ele representa qualquer coisa. A interpretação que o SGBD faz do comando utilizado no exemplo acima é:

Exiba o nome, a idade e o email da tabela cliente onde os nomes comecem com a letra R e sejam seguidos por quaisquer outros caracteres.

Por isso a nossa consulta só retornou nomes iniciados por R.

Poderíamos usar o coringa de forma invertida. Vamos imaginar que precisássemos resgatar os dados de um cliente cujo nome termine com a sequência de caracteres “berto”, mas não soubéssemos o começo. Nossa busca ficaria:

SELECT nome AS Nome, idade AS Idade, email AS Email FROM cliente WHERE nome like '%berto';

Comando Select com cláusula Where MySQL

O sistema procurou, dentre todos os nomes cadastrados na tabela "cliente", algum que possuísse a sequência "berto" cadastrada e fez o retorno.

Para encerrar a explicação sobre esse poderoso caractere coringa, vamos agora imaginar que temos um trecho qualquer do nome a ser procurado, mas sequer sabemos se ele se encontra no início, no meio ou no fim do nome. Esse trecho é "ard". Nosso comando ficará da seguinte forma:

SELECT nome AS Nome, idade AS Idade, email AS Email FROM cliente WHERE nome like '%ard%';

Comando Select com cláusula Where MySQL

Notem que o sistema exibiu todos os nomes que continham a sequência "ard", independente da sua localização na string. Isso foi possível graças a presença do caractere coringa antes e depois do trecho procurado.

Bem, no tópico seguinte falarei sobre como especificar ainda mais as consultas através de operadores lógicos.




Algumas notícias

O que acontece com o cérebro no exato momento em que morremos

O que passa em nossa cabeça no momento da morte? Não se sabe exatamente e, embora os cientistas tenham alguma resposta, a resposta continua sendo um grande mistério. Além de difícil solução, tentar respondê-la pode criar implicações éticas. No entanto, uma equipe de cientistas da Universidade...

Ler Notícia Completa

Operada e devolvida ao útero, menina que nasceu duas vezes hoje 'acorda sorrindo toda manhã'

Um bebê pode nascer duas vezes? Não é o caso da absoluta maioria das crianças, mas foi assim para a pequena Lynlee Boemer. Em outubro de 2015, sua mãe, Margaret Boemer, descobriu que estava grávida de gêmeos. Ela sofreu um aborto espontâneo, mas um dos bebês sobreviveu. Com dez semanas de ges...

Ler Notícia Completa

Médicos dizem estar perto de chegar a exame de sangue para todos os tipos de câncer

Cientistas dizem que estão mais perto de criar um exame de sangue universal, capaz de identificar todos os tipos de câncer. Estudo conduzido com 1.005 pacientes por uma equipe da Universidade Johns Hopkins, dos Estados Unidos, testou um método que detecta oito tipos de proteínas e 16 mutações ge...

Ler Notícia Completa

Formato JPEG está com os dias contados

Há quantos anos você ouve falar em arquivos JPG? O formato já era utilizado nos primórdios da web comercial nos anos 1990, vivendo há mais de 20 anos como o principal método de compressão de imagens do público. No que depender de Google, Mozilla e outras empresas, isso pode mudar dentro de algum...

Ler Notícia Completa

EUA aprovam 'droga viva', 1ª terapia contra câncer que reestrutura sistema imunológico do paciente

Os Estados Unidos aprovaram o primeiro tratamento que reestrutura o sistema imunológico do paciente para atacar o câncer. A agência reguladora de medicamentos do país - a FDA - diz que a decisão foi um momento "histórico" e que a medicina agora "entra em uma nova fronteira". A companhia Novar...

Ler Notícia Completa

Cientistas norte-americanos criaram anticorpo capaz de atacar 99% das variações de HIV

Um grupo formado por pesquisadores do Instituto Nacional de Saúde (NIH), dos Estados Unidos, e da empresa farmacêutica Sanofi criaram em laboratório anticorpos superdesenvolvidos capazes de atacar 99% das cepas de HIV. O feito é ainda mais significativo por ser capaz até mesmo de prevenir a infec...

Ler Notícia Completa

Facebook investirá mais de US$ 1 bilhão em conteúdo original em 2018

Anunciada em agosto, a plataforma original de vídeos do Facebook, Watch, parece ser a grande aposta de Mark Zuckerberg para o ano que vem. De acordo com o TechCrunch, a empresa deve investir US$ 1 bilhão para criar e incentivar iniciativas voltadas para a produção de conteúdo audiovisual exclu...

Ler Notícia Completa
Você gostará destes vídeos: