SQL Select: como utilizar buscas inteligentes no banco de dados

A linguagem SQL (Structured Query Language) surgiu com o objetivo de padronizar o trabalho com diferentes bancos de dados, e um dos recursos mais úteis e básicos de utilizar é o SQL Select, que também se integra a diferentes situações.

O ponto principal do SQL Select é buscar dados presentes no banco de dados cadastrado, trazendo resultados de planilhas de forma mais organizada.

Sabemos, também, que manter o código livre de vulnerabilidades é uma das grandes preocupações com um projeto.

Para isso, trouxemos este guia básico de SQL Select para iniciantes e como a Insider pode ajudar a proteger seu software de brechas e ataques.

 

O que é o SQL Select?

A função primária do SQL Select é selecionar dados presentes no banco de dados. Dessa forma, é possível organizar os dados de tabelas que serão utilizados no sistema. 

O Select também pode auxiliar o desenvolvedor a manter a boa gestão do código, com filtros e possibilidade de aplicar apelidos.

Para utilizar o comando, é possível executá-lo em diversas linguagens atribuídas a bancos relacionais, como o Oracle, SQL Server ou MySQL.

O uso do Select permite maior agilidade ao inserir os dados no código, com comandos mais simples. Porém, para colocar em prática, é preciso entender os conceitos do SQL Select e sua sintaxe.

 

Sintaxe básica do Select

O SQL Select irá buscar dados em tabelas presentes no banco de dados em execução. 

Portanto, para encontrar os dados que serão utilizados, você pode começar com os comandos de colunas, tabela ou condições

O comando de colunas irá selecionar quais colunas da tabela serão utilizadas. Já o comando da tabela indica de qual recurso serão utilizados os dados. E, por fim, você especifica qual a condição para a inserção daquele dado.

Na prática, os comandos mais utilizados são:

  • SELECT <colunas>
  • FROM <tabela>
  • WHERE <condição ou condições>

Para aplicar, você terá algo parecido com isso:

SELECT <lista_de_campos ou células>
FROM <nome_da_tabela></nome_da_tabela></lista_de_campos>

Com esse comando, já é possível exibir a tabela e quais dados serão utilizados. 

O comando * (asterisco) também pode aparecer, utilizado para selecionar todos os campos de uma tabela.

Para aplicar as condições aos dados utilizados, há alguns operadores que podem ser utilizados:

  • Igual: “=”
  • Diferente: “!=”
  • Maior: “>”
  • Menor: “<”
  • Maior ou igual: “>=”
  • Menor ou igual: “<=”

Além de outros como between, not in, in, exists, not exists e muito mais.

Em um exemplo simples, imagine uma tabela com dados de usuários cadastrados. Com o Select, é possível aplicar filtros aos campos preenchidos pelo usuário.

Para isso, considere que:

NOME e SOBRENOME são colunas de dados da tabela nomeada CLIENTES. Também será utilizada a informação de contato, sendo TELEFONE outra coluna da mesma tabela.

Para esse exemplo, usaremos somente os telefones de DDD 11.

SELECT NOME, SOBRENOME FROM CLIENTES
WHERE DDD = 11

A seleção de mais de uma coluna pode ser feita pelo uso da vírgula (,), como pode ser observado acima para selecionar os campos de NOME e SOBRENOME.

Outros comandos e especificações também podem ser utilizados, mas alguns não são parte da regra.

Um exemplo prático é a denominação da tabela, que pode ter um owner ou não. 

O owner é a denominação de quem é o proprietário daquela tabela. Esse recurso é muito utilizado em grandes corporações, identificando os dados por setores.

Esses códigos de propriedade precedem o nome do arquivo, junto de um ponto. Dessa forma, uma tabela de clientes do setor de marketing, por exemplo, ficaria:

SELECT * FROM mkt.clientes

Porém, se ao utilizar o Select o comando for SELECT * FROM CLIENTES, será igualmente reconhecido pelo servidor.

Nesse caso do Select SQL, maiúsculas e minusculas também não interferem na identificação do dado.

 

Como utilizar o SQL Select?

A utilização do SQL Select é influente em todo o processo de desenvolvimento do software. 

Isso porque ele não só mantém os dados principais de forma clara e organizada, mas também traz mais praticidade para o desenvolvimento do front-end.

Por ser um recurso aplicável a diferentes linguagens de programação, o Select é um recurso que atende diversos projetos e traz mais agilidade aos processos de desenvolvimento.

Porém, os recursos do SQL Select vão muito além dos comandos básicos quando utilizados no projeto.

 

Filtros

A aplicação de filtros pode resultar em diferentes usos do SQL Select. Além do WHERE, outros comandos realizam a função de filtro de dados.

Os filtros podem ser aplicados pelas condições básicas, identificando duplicatas, incluindo ou excluindo condições e apresentando somente o que é requerido.

Para ajudar ainda mais, é recomendado utilizar parenteses, o que torna o código mais compreensível para os outros desenvolvedores do projeto.

No exemplo a seguir, apresentamos algumas situações de filtros com SQL Select.

Para identificar campos vazios:

SELECT EMAIL FROM CLIENTES
WHERE (NOME IS NULL) OR (SOBRENOME IS NULL)

Neste caso, seriam identificadas as colunas com os campos NOME e SOBRENOME vazios.

Para a aplicação de filtros que validam dados de texto, é preciso eliminar uma regra nativa do SQL.

Por padrão, o SQL diferencia o que está em caixa baixa e caixa alta, mas é só usar o comando UPPER para solucionar isso.

Com esse comando, é possível validar dados que necessitam de diferenciação entre maiúsculas e minúsculas, como nomes próprios. Veja o exemplo:

SELECT NOME, SOBRENOME FROM CLIENTES
WHERE UPPER (NOME, SOBRENOME) LIKE “%da Silva%”

É importante ressaltar que nem todas as linguagens reconhecem o símbolo de porcentagem como chave de filtro.

Verifique a documentação e confirme se o sistema utilizado tem outro padrão de identificação.

 

Alias (apelidos/codinomes)

O comando de alias é utilizado para definir apelidos, ou codinomes, às colunas e tabelas.

Ao aplicar um alias a uma coluna, não é obrigatório o uso do comando AS. Esse é um recurso opcional, que pode facilitar ou não o seu processo de escrita do código.

A diferença é visual somente, pois o sistema identifica o alias mesmo que sem o comando AS

Vamos considerar que iremos renomear as colunas de uma tabela. Para isso, a coluna CODIGO_DE_AREA será denominada DDD.

Sem o alias, o comando poderá ser utilizado da seguinte forma, utilizando apenas o espaço entre as nomeclaturas:

SELECT ID_TELEFONE DDD FROM CLIENTES

Já com o AS, o comando ficará:

SELECT ID_TELEFONE AS DDD FROM CLIENTES

Após essa configuração do alias, você poderá aplicar somente o apelido, facilitando a produtividade.

Exemplo:

SELECT DDD FROM CLIENTES

A definição de apelidos também serve para siglas e podem ser utilizadas para nomes com espaço

Portanto, para substituir títulos de colunas, ou tabelas, com underlines, utilize as aspas duplas para validar o alias com espaços.

SELECT ID_TELEFONE AS “Telefone de Contato” FROM CLIENTES

Join, agrupamento e outros comandos SQL

Há diversas formas de organizar as tabelas e suas colunas com os comandos de SQL Select.

Com o comando, é possível agrupar tabelas, identificar dados repetidos e até unificar colunas de diferentes tabelas.

Um dos métodos mais utilizados para a junção de dados provenientes de tabelas diferentes, é pelo JOIN. Por esse mesmo comando é possível aplicar filtros e até mesmo definir a ordem das colunas agrupadas.

Os comandos de JOIN são mais complexos e exigem um conhecimento mais embasado do funcionamento do SQL Select.

A sua execução facilita a gestão dos dados e auxilia no desenvolvimento de um código mais limpo e menos propenso a vulnerabilidades. 

 

Como evitar vulnerabilidades no SQL?

O SQL Select é um recurso multi linguagem, que se adapta ao uso do desenvolvedor, assim como o SQL em si, trazendo mais versatilidade a quem programa. 

Embora o Select ajude a organizar os dados, que passarão pelo Code Review, vulnerabilidades podem ser evitadas.

Com uma SQL Injection, o invasor pode ter acesso ao banco de dados, deixando a aplicação vulnerável. 

Para se proteger, confira nosso artigo sobre SQL Injection e entenda como a prevenção é aliada do SQL Select.

Receba novidades:







    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *