Funções de string do PostgreSQL

O PostgreSQL é um sistema de gerenciamento de banco de dados objeto-relacional muito poderoso. Ele fornece um grande número de funções e operadores para os tipos de dados internos, aliviando os desenvolvedores de tarefas mais simples e concentrando-se na solução do problema maior. Uma dessas categorias de funções internas é a função de string do PostgreSQL. A formatação de strings, como concatenação, exibição em um determinado formato, inserção / exclusão de substrings, etc. às vezes pode ser uma tarefa tediosa. As funções de string do PostgreSQL cuidam disso para você.

O PostgreSQL possui muitas funções que não estão definidas nas funções SQL padrão. Isso fornece aos desenvolvedores um vasto horizonte de funções que podem ser aproveitadas para resolver o problema maior.

Para ilustrar várias funções do PostgreSQL String, primeiro precisamos criar um banco de dados. O banco de dados a seguir será mencionado em todos os exemplos:

Exemplos de funções de string no PostgreSQL

A função String é fácil de usar. Aqui discutiremos como usar a função string no PostgreSQL

programação com a ajuda de exemplos

1. ASCII (str)

Retorna o valor ASCII do caractere mais à esquerda da string str.

SELECT FirstName, ASCII(FirstName) from Person

2. BIT_LENGTH (str)

Retorna o comprimento da string str em bits.

SELECT FirstName, BIT_LENGTH(FirstName) from Person

3. CHAR_LENGTH (str) / CHARACTER_LENGTH (str)

Retorna o comprimento da string str em caracteres.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

4. CONCAT (str1, str2, …., Strn)

Retorna uma string formada pela junção de str1 a strn. Argumentos nulos são ignorados.

SELECT FirstName, LastName, CONCAT(FirstName, LastName) as DisplayName from Person

5. str1 || str2 ||… || non-str ||… || strn

Concatena str1, str2 para strn e até argumentos não-string.

SELECT Id || FirstName || LastName || phone || address as Concat_All from Person

6. INITCAP (str)

Coloca em maiúscula a sequência, ou seja, a primeira letra de cada palavra é maiúscula e as restantes são minúsculas. As palavras são determinadas por separadores não alfanuméricos.

Select INITCAP('This is a PostgreSQL example.')

7. INFERIOR () E SUPERIOR ()

Converte uma string em minúscula e maiúscula.

SELECT FirstName, LOWER(FirstName) as Lower, UPPER(FirstName) as Upper from Person

8. ESQUERDA (str, len) / DIREITA (str, len)

Retorna os caracteres len mais à esquerda e à direita da string str. Quando len é negativo, ele retorna a string str, exceto os caracteres len mais à esquerda ou à direita.

SELECT FirstName, LastName, CONCAT(LEFT(LastName, 3), RIGHT(FirstName, 2)) as LoginID from Person

9. COMPRIMENTO (str) / COMPRIMENTO (str, codificação)

Retorna o comprimento da string str em caracteres. Isso é diferente da operação da função Length no SQL. Quando especificada, a codificação fornece o comprimento na codificação específica.

SELECT FirstName, LENGTH(FirstName), CHAR_LENGTH(FirstName) from Person

10. OCTET_LENGTH (str)

Calcula o comprimento da string str em bytes.

SELECT FirstName, LENGTH(FirstName), CHAR_LENGTH(FirstName), OCTET_LENGTH(FirstName) from Person

Isso é muito parecido com as funções LENGTH e CHAR_LENGTH. A diferença ocorre quando há caracteres multibyte envolvidos.

SELECT '€' as multibyte_char, LENGTH('€'), CHAR_LENGTH('€'), OCTET_LENGTH('€')

Isso acontece porque o sinal Euro (€) ocupa 3 bytes na memória.

11. LPAD (str, len, padstr) / RPAD (str, len, padstr)

Insere a sub-string da posição 0 do string de string no início e no final da string até que a string resultante tenha caracteres len.

SELECT FirstName, LastName, LPAD(CONCAT_WS(' ', FirstName, LastName), CHAR_LENGTH(CONCAT_WS(' ', FirstName, LastName))+CHAR_LENGTH('Mr. '), 'Mr. ') as DisplayName from Person

12. LTRIM (str, caracteres) / RTRIM (str, caracteres) / TRIM (str, caracteres)

Retorna a string str após aparar todas as ocorrências de caracteres da esquerda, direita ou ambas as extremidades. Se caracteres não forem especificados nos argumentos, os espaços serão aparados.

SELECT LTRIM(' abc ') as L1, RTRIM(' abc ') as R1, TRIM(' abc ') as T1, LTRIM('xxxyyabcxyz', 'xyz') as L2, RTRIM('xxxyyabcxyz', 'xyz') as R2, TRIM('xxxyyabcxyz', 'xyz') as T2

13. POSIÇÃO (substr em str) / STRPOS (str, substr)

Localiza a posição do substring substr na string str. Lembre-se, o índice começa em 1 no PostgreSQL. Retorna 0, se nenhuma correspondência encontrada.

SELECT Address, POSITION('Avenue' in Address) from Person

14. QUOTE_IDENT (str) / QUOTE_LITERAL (str)

Esta consulta cita e desassocia a string str. A maioria dos caracteres especiais é duplicada.

SELECT Address, QUOTE_IDENT(Address), QUOTE_LITERAL(Address) from Person

15. REPLACE (str, from_str, to_str)

Substitui todas as ocorrências da sub-string from_str pela sub-string to_str na string str. Faz distinção entre maiúsculas e minúsculas.

SELECT Address, REPLACE(Address, 's', 'SS') from Person

16. REVERSE (str)

Inverte a string str.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, padrão)

Retorna todas as substrings que correspondem ao padrão POSIX Regex.

SELECT Address, REGEXP_MATCHES(Address, '.(sN)i.') from Perso

18. REGEXP_REPLACE (str, padrão, newstr)

Substitui todas as substrings que correspondem ao padrão POSIX Regex pela newstr.

SELECT Address, REGEXP_MATCHES(Address, '..(e)(n)..'), REGEXP_REPLACE(Address, '..(e)(n)..', 'Street') from Person

19. REGEXP_SPLIT_TO_ARRAY (str, padrão)

Divide a string str em uma matriz de substrings separados pelo padrão POSIX Regex. Padrão E '\\ s +' significa um ou mais espaços em branco.

SELECT Address, REGEXP_SPLIT_TO_ARRAY(Address, E'\\s+') from Person

20. REGEXP_SPLIT_TO_TABLE (str, padrão)

Divide a string str em uma tabela de substrings separadas pelo padrão POSIX Regex.

SELECT Address, REGEXP_SPLIT_TO_TABLE(Address, E'\\s+') from Person

21. SUBSTRING (str da pos para len)

Retorna uma substring da string str iniciando na posição pos do comprimento len.

SELECT FirstName, SUBSTRING(FirstName from 2 for 4) as a sub from Person

22. SUBSTRING (str do posix_pattern) / SUBSTRING (str do sql_pattern para escape)

Retorna uma substring da string str que corresponde ao POSIX Regex ou SQL Regex. Regex é um tópico grande, maravilhoso e extremamente útil em computadores. É recomendável se apossar dos padrões Regex antes de implementá-los aleatoriamente.

SELECT FirstName, SUBSTRING(FirstName from '…$') as sub1, substring(FirstName from '%#"o_a#"_%' for '#') as sub2 from Person

Conclusão - Funções de string do PostgreSQL

Portanto, para concluir, estas, juntamente com outras funções internas, são o que torna o PostgreSQL tão poderoso. A inclusão de padrões regex adiciona mais poder a ele. Uma vez que a arte de escrever padrões Regex seja aprendida e dominada, brincar com o banco de dados seria muito mais divertido.

Artigos recomendados

Este foi um guia para as funções de sequência do PostgreSQL. Aqui discutimos como usar funções de string na programação do PostgreSQL com a ajuda de exemplos. Você também pode consultar nossos outros artigos sugeridos para saber mais:

  1. Funções de string em Java com exemplos
  2. Como instalar o PostgreSQL?
  3. Perguntas da entrevista do PostgreSQL
  4. Funções de Regex em Python (Exemplo)