Maneiras inteligentes de usar uma string de concatenação SQL

Maneiras inteligentes de usar uma string de concatenação SQL

Linguagem de consulta estruturada (SQL) é uma ferramenta extremamente poderosa e repleta de recursos. Depois de dominar mais comandos SQL importantes , você pode começar a ser um pouco mais criativo com seu SQL. Hoje vou mostrar tudo o que você precisa saber sobre strings de concatenação SQL.





Existem muitos dialetos SQL diferentes. Para todos esses exemplos, estou usando o PostgreSQL variante.





o que comentário destacado significa no youtube

O que é concatenação?

Concatenação significa juntar duas coisas. Você pode tê-lo usado em uma linguagem de programação para juntar duas strings. Talvez você tenha variáveis ​​de nome e sobrenome que juntou como uma variável de nome completo.





A concatenação é uma forma muito útil de combinar duas strings em uma. PHP usa um ponto final para unir strings, enquanto JavaScript e jQuery usam um sinal de mais.

A concatenação em SQL funciona exatamente da mesma forma. Você usa um operador especial para juntar duas coisas em uma. Aqui está um exemplo em Pseudo-código :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Em linguagens de programação, a concatenação torna o código mais fácil de ler. Se o seu código sempre precisa acessar duas strings, combiná-las em uma torna mais fácil de lembrar e reduz o comprimento do código.

Embora as variáveis ​​em SQL sejam menos comuns (mas ainda sejam usadas), a concatenação ainda é necessária para retornar resultados combinados ou para manipular dados.





Como Concatenar

Concatenação é muito fácil em SQL. Embora SQL seja uma linguagem comum, mecanismos de banco de dados individuais implementam recursos de maneiras diferentes. Embora todos esses exemplos estejam no dialeto do PostgreSQL, é fácil traduzir para outras variantes simplesmente pesquisando na web por 'Concatenar'. Mecanismos diferentes podem ter uma sintaxe diferente para concatenação, mas o princípio permanece o mesmo.

Voltando ao nosso exemplo de nome, aqui está um exemplo básico selecionar consulta:





SELECT first_name, last_name, email FROM users_table

Nada complexo aqui, então vamos adicionar o concatenar:

SELECT first_name || last_name AS full_name, email FROM users_table

Como você pode ver, essa concatenação funcionou perfeitamente, mas há um pequeno problema. O nome completo resultante foi costurado exatamente como o produto de ambas as colunas - deve haver um espaço entre os nomes!

Felizmente, é fácil de corrigir: simplesmente concate um espaço entre os dois:

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

Esses são exemplos básicos, mas você deve ver como funciona a concatenação - é realmente muito fácil! O operador de tubo ( | ) é usado duas vezes entre as cláusulas. Seu mecanismo SQL sabe que cada parte antes e depois desse símbolo deve ser unida e tratada como uma. Porém, tenha cuidado, se você usar o operador concat, mas não concatenar nada, receberá um erro.

Conforme mencionado acima, esses exemplos usam a variante PostgreSQL do SQL. Outras variantes podem usar uma operadora diferente ou até mesmo uma função especial que você deve chamar. Realmente não importa Como as você concatena strings, desde que faça isso da maneira que seu mecanismo de banco de dados espera.

Indo mais fundo

Agora que você conhece o básico, vamos examinar alguns exemplos detalhados, juntamente com algumas armadilhas comuns.

A maioria dos mecanismos de banco de dados concatará com êxito uma mistura de strings e inteiros, talvez até datas também. Normalmente, você terá problemas ao tentar concatenar tipos complexos, como matrizes:

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

Este código não funcionará. Não é possível combinar strings com objetos complexos, como matrizes. Se você pensar sobre o que precisa fazer, muitas vezes você pode escrever um código simples que funciona, em vez de um código complexo e maluco que não consegue ser executado.

Se você pensou cuidadosamente sobre o que precisa fazer e ainda não consegue fazer o SQL funcionar, você considerou usar uma linguagem de programação? Como um desenvolvedor de software que trabalha em código legado, conheço a dor de tentar depurar SQL em que alguém colocou tanta lógica que é uma maravilha que seja executado - se você está tentando escrever lógica em SQL, mude para um linguagem de programação (existem várias linguagens fáceis de aprender).

A concatenação funciona muito bem para Onde declarações também:

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

Há algumas coisas acontecendo aqui. Neste exemplo, DIA , MÊS , e ANO são parâmetros que foram passados ​​de um script. Talvez tenham sido gerados por código ou inseridos por um usuário. Estes são concatenados e, em seguida, convertidos para um tipo de data (usando a sintaxe de conversão para data do PostgreSQL ::encontro )

Usar a concatenação dessa forma permite encadear as partes individuais de uma data, que pode então ser processada como uma data 'real', em vez de uma string. Não se esqueça de que este exemplo básico não protege contra injeção de SQL, então não o use em nenhum código de produção sem modificar.

Outra armadilha a ser observada é nulo valores (uma string nula é uma string vazia ou não existente). Dada esta consulta:

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

Esta consulta falha silenciosamente. Isso se deve à maneira como a concatenação é codificada internamente em seu mecanismo de banco de dados. Você nem sempre encontra esse problema, mas é uma ocorrência bastante comum.

Se você acha que os dados que sua consulta retorna podem ser nulos, você precisará usar um coalescer . Coalesce pode ser pensado aproximadamente como 'se for nulo, substitua por esta outra string ou coluna':

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

Agora que você sabe como usar a concatenação em SQL, o que fará com ela? Você poderia faça um site e animá-lo com o SQL? Ou talvez você precise de um gerador de sites estáticos para uma abordagem mais simples de construção de sites.

Faça o que fizer, deixe-nos saber nos comentários abaixo!

atenção sim não provisionada mm # 2
Compartilhado Compartilhado Tweet O email 6 alternativas audíveis: os melhores aplicativos de audiolivros gratuitos ou baratos

Se você não gosta de pagar por audiolivros, aqui estão alguns aplicativos excelentes que permitem ouvi-los gratuitamente e legalmente.

Leia a seguir
Tópicos relacionados
  • Programação
  • Programação
  • SQL
Sobre o autor Joe Coburn(136 artigos publicados)

Joe é graduado em Ciência da Computação pela University of Lincoln, no Reino Unido. Ele é um desenvolvedor de software profissional e, quando não está pilotando drones ou escrevendo música, pode ser encontrado tirando fotos ou produzindo vídeos.

Mais de Joe Coburn

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever