Funciones de cadena de PostgreSQL

PostgreSQL es un sistema de gestión de bases de datos relacionales de objetos muy potente. Proporciona una gran cantidad de funciones y operadores para los tipos de datos integrados, aliviando así a los desarrolladores de tareas más simples y enfocándose en la solución al problema más grande. Una de esas categorías de funciones integradas son las funciones de cadena PostgreSQL. El formateo de cadenas, como la concatenación, la visualización en cierto formato, la inserción / eliminación de subcadenas, etc., a veces puede ser una tarea tediosa. Las funciones de cadena de PostgreSQL se encargan de eso por usted.

PostgreSQL tiene muchas funciones que no están definidas en las funciones estándar de SQL. Esto proporciona a los desarrolladores un amplio horizonte de funciones que pueden aprovechar para resolver el problema más grande.

Para ilustrar varias funciones de cadena de PostgreSQL, primero necesitamos crear una base de datos. Se hará referencia a la siguiente base de datos en todos los ejemplos:

Ejemplos de funciones de cadena en PostgreSQL

La función de cadena es fácil de usar. Aquí discutiremos cómo usar la función de cadena en PostgreSQL

programación con la ayuda de ejemplos

1. ASCII (str)

Devuelve el valor ASCII del carácter más a la izquierda de la cadena str.

SELECT FirstName, ASCII(FirstName) from Person

2. BIT_LENGTH (str)

Devuelve la longitud de la cadena str en bits.

SELECT FirstName, BIT_LENGTH(FirstName) from Person

3. CHAR_LENGTH (str) / CHARACTER_LENGTH (str)

Devuelve la longitud de la cadena str en caracteres.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

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

Devuelve una cadena formada uniendo str1 a strn. Los argumentos NULL son ignorados.

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

5. str1 || str2 ||… || no str ||… || strn

Concatena str1, str2 con strn e incluso argumentos sin cadenas.

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

6. INITCAP (str)

Capitaliza la cadena, es decir, la primera letra de cada palabra está en mayúscula y el resto en minúscula. Las palabras están determinadas por separadores no alfanuméricos.

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

7. INFERIOR () y SUPERIOR ()

Convierte una cadena en minúsculas y mayúsculas.

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

8. IZQUIERDA (str, len) / DERECHA (str, len)

Devuelve los caracteres len más a la izquierda y a la derecha de la cadena str. Cuando len es negativo, devuelve la cadena str excepto los caracteres len más a la izquierda o más a la derecha.

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

9. LONGITUD (str) / LONGITUD (str, codificación)

Devuelve la longitud de la cadena str en caracteres. Sin embargo, esto es diferente a la operación de la función Longitud en el SQL. Cuando se especifica, la codificación proporciona la longitud en la codificación particular.

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

10. OCTET_LENGTH (str)

Calcula la longitud de la cadena str en bytes.

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

Esto es muy similar a las funciones LENGTH y CHAR_LENGTH. La diferencia viene cuando hay caracteres multibyte involucrados.

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

Esto sucede porque el signo del euro (€) ocupa 3 bytes en la memoria.

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

Inserta una subcadena desde la posición 0 de la cadena de caracteres al principio y al final de la cadena hasta que la cadena resultante sea de 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)

Devuelve la cadena str después de recortar todas las apariciones de caracteres de izquierda, derecha o ambos extremos. Si los caracteres no se especifican en los argumentos, los espacios se recortan.

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. POSICIÓN (substr en str) / STRPOS (str, substr)

Encuentra la posición de la subcadena substr en la cadena str. Recuerde, el índice comienza desde 1 en PostgreSQL. Devuelve 0, si no se encuentra ninguna coincidencia.

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

14. QUOTE_IDENT (str) / QUOTE_LITERAL (str)

Esta consulta cita y descomenta la cadena str. La mayoría de los caracteres especiales se duplican.

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

15. REPLACE (str, from_str, to_str)

Reemplaza todas las apariciones de subcadena from_str con subcadena to_str en la cadena de cadena. Es sensible a mayúsculas y minúsculas.

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

16. REVERSE (str)

Invierte la cadena str.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, patrón)

Devuelve todas las subcadenas que coinciden con el patrón POSIX Regex.

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

18. REGEXP_REPLACE (str, patrón, newstr)

Reemplaza todas las subcadenas que coinciden con el patrón POSIX Regex con el newstr.

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

19. REGEXP_SPLIT_TO_ARRAY (str, patrón)

Divide la cadena de cadena en una matriz de subcadenas separadas por el patrón POSIX Regex. El patrón E '\\ s +' significa uno o más espacios en blanco.

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

20. REGEXP_SPLIT_TO_TABLE (str, patrón)

Divide la cadena en una tabla de subcadenas separadas por el patrón POSIX Regex.

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

21. SUBSTRING (str de pos para len)

Devuelve una subcadena de string str que comienza en la posición pos de la longitud len.

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

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

Devuelve una subcadena de string str que coincide con POSIX Regex o SQL Regex. Regex es un tema grande, maravilloso y extremadamente útil en las computadoras. Se recomienda obtener patrones de Regex antes de implementarlos al azar.

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

Conclusión - Funciones de cadena PostgreSQL

Entonces, para concluir, estas junto con otras funciones integradas son las que hacen que PostgreSQL sea tan poderoso. La inclusión de patrones regex le agrega más poder. Una vez que se aprende y se domina el arte de escribir patrones Regex, jugar con la base de datos sería mucho más divertido.

Artículos recomendados

Esta ha sido una guía para las funciones de cadena de PostgreSQL. Aquí discutimos cómo usar funciones de cadena en la programación PostgreSQL con la ayuda de ejemplos. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Funciones de cadena en Java con ejemplos
  2. ¿Cómo instalar PostgreSQL?
  3. Preguntas de la entrevista PostgreSQL
  4. Funciones de expresiones regulares en Python (ejemplo)