image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Robson Silva
Robson Silva18/10/2022 17:11
Compartilhe

SQL: Um pouco do que vi/entendi da sintaxe relacionada ao SELECT:

  • #SQL

SELECT ...

Como diria Cortella: "Select que vem do latim Seligere que é a junção do prefixo "Se" que quer dizer "à parte" com o radical "Legere" que fala sobre escolher algo...

Partindo desse pressuposto, já podemos inferir/deduzir que: quem seleciona, seleciona alguma coisa e isso funciona perfeitamente quando estruturamos um comando SELECT em SQL.

Portanto:

SELECT o que estamos selecionando ...

Seguindo nosso raciocínio: quem seleciona, seleciona algo e pra selecionar algo, você precisa selecionar de algum lugar, no caso de nossos banco relacionais, de uma tabela. Por este motivo o FROM é incluso logo após a definição de o que estamos buscando, ficando assim:

SELECT o que estou buscando FROM de qual tabela estou buscando.

E o que há pra buscar dentro de uma tabela de um banco de dados relacional? Colunas, seja uma, várias ou todas! Portanto SELECT qual/is colunas FROM de qual/is tabela/as.

Dentro disso ainda podemos personalizar muito mais as nossas consultas, se quem busca algo, busca de algum lugar, será que dentre os resultados buscados, ainda posso especificar dentre esses resultados quais eu quero? 

Meu caro amigo ou amiga... você é desenvolvedor/a, você com a linha certa escrita pode quase qualquer coisa! Então sim, você pode refinar sua busca para itens especificos e com determinadas caracteristícas entre uma série de resultados retornados por uma busca! Para isso inventaram o WHERE...

Where cuja tradução para o português é onde... (não, essa não é uma fala do Cortella). 

Se eu seleciono SELECT algo FROM algum lugar, eu posso determinar WHERE determinado item (no caso do sql dizemos linha) atenda determinado critério.

SELECT o que FROM de onde WHERE com qual critério.

Como diz o ditado: "Quem não fala o que quer, aceita o que vier!", portanto, se não definimos o critério com o WHERE, a consulta trara todas as linhas que atenderem o que está determinado no SELECT e no FROM, visto que o WHERE não é obrigatório.

Ah tá saquei! Mas e se eu quiser depois de SELECT o que FROM de qual tabela WHERE com o meu critério, ordenar de alguma forma os meus resultados?

Ordene oras! ORDER BY é exatamente para isso!

Então você pode SELECT o que FROM de qual tabela WHERE com qual critério ORDER BY ordenado pelo que.

Ah, mas eu não quero em ordem crescente que é o que o ORDER BY traz, quero em ordem decrescente!

Ora, se já definimos tudo que é essencial a consulta e temos um adendo, o adendo vem depois! Basta incluir um DESC após tudo o que foi definido neste SELECT com o ORDER BY, sucesso!

SELECT coluna FROM tabela WHERE critério ORDER BY ordenado pelo que DESC

Exemplo:

SELECT nome FROM animais WHERE FormaDeReproducao = "ovipara" ORDER BY nome DESC;

Considerando uma tabela com animais de várias classes (mamíferos, aves, peixes). Teremos com essa consulta uma lista de todos os animais que botam ovos em ordem alfabética invertida.

Ah, se você quiser usar mais de um critério na ordenação, basta incluir uma vírgula e seguida o outro item:

SELECT nome FROM animais WHERE FormaDeReproducao = 'ovipara' ORDER BY nome, tamanho DESC;

Isso nos trará uma série de resultados que conterá animais que botam ovos, ordenados pelo nome e em seguida pelo tamanho em ordem alfabética invertida.

Ainda falando sobre o WHERE, diferente do ORDER BY onde basta incluir o atributo adicional de ordenação após uma vírgula, no caso do WHERE para critérios adicionais na seleção, devemos adicionar o AND.

SELECT nome FROM animais WHERE FormaDeReproducao = 'ovipara' AND Classe = 'mamifero' ORDER BY nome, tamanho DESC;

Parabéns, numa lista contendo uma considerável quantidade de mamíferos exóticos, um ornitorrinco apareceu para você!

A pesquisa em si não faz muito sentido (afinal só temos o ornitorrinco como animal que é oviparo e mamífero), mas acho que você entendeu!

Há sim umoutro ponto relevante e é com relação ao critério de busca apresentado no WHERE: podemos também buscar por uma referência parcial que tenhamos do resultado!

Se o WHERE determina um filtro para os resultados já obtidos a partir do SELECT, o LIKE vem após o WHERE para ajudar quando não se sabe bem exatamente qual o termo concreto do critério.

  

SELECT nome FROM animais WHERE FormaDeReproducao = 'ovipara' AND TemCauda = 'não' AND nome LIKE '%lic%' ORDER BY nome, tamanho DESC;

Nesse caso, uma lista de animais nos traria uma lista com os nomes dos animais oviparo e sem cauda que tem lic em qualquer lugar do nome...

Provavelmente Pelicano seria o único resultado, mas já serve para explicar o conceito!

Sobre o LIKE, resta dizer que % informa que estamos buscando algo que contém mais alguma coisa além da referência passada, sendo que % antes da referência quer dizer que pode há algo antes e % depois quer dizer que pode haver algo depois da referência.

E acho que por enquanto deu uma base sobre SELECT. Eu não coloquei um monte de código, porque particularmente acho que pegar o conceito seja tão ou até mais importante que codar em si, fora que, para isso, você tem toda a internet a seu dispor! Espero ter ajudado!

Contatos:

linkedin : www.linkedin.com/in/rjsilva-oficial

github: https://github.com/rjsilvaoficial

Compartilhe
Comentários (1)
Leonardo Buta
Leonardo Buta - 21/10/2022 11:47

Excelente artigo!