PostgreSQL Funciones comunes

Las funciones integradas de PostgreSQL también se denominan funciones agregadas y se utilizan para realizar procesamiento en datos de cadena o numéricos.

A continuación se muestra la lista de todas las funciones integradas comunes de PostgreSQL:

  • Función COUNT: se utiliza para contar el número de filas en una tabla de base de datos.
  • Función MAX: se utiliza para consultar el valor máximo en una columna específica.
  • Función MIN: se utiliza para consultar el valor mínimo en una columna específica.
  • Función AVG: se utiliza para calcular el valor promedio en una columna específica.
  • Función SUM: se utiliza para calcular la suma de todos los valores de una columna numérica.
  • Función ARRAY: se utiliza para agregar valores de entrada (incluido null) a una matriz.
  • Funciones numéricas: enumeran completamente las funciones de los operandos requeridos en un SQL.
  • Funciones de cadena: enumeran completamente las funciones de los caracteres de operación requeridos en un SQL.

Funciones matemáticas

A continuación se muestra la lista de funciones matemáticas proporcionadas en PostgreSQL. Cabe señalar que muchas de estas funciones tienen múltiples formas, y la diferencia es solo el tipo de parámetro. A menos que se indique lo contrario, cualquier forma particular de función devuelve el mismo tipo de datos que su parámetro.

Función Tipo de retorno Descripción Ejemplo Resultado
abs(x) Valor absoluto abs(-17.4) 17.4
cbrt(double) Raíz cúbica cbrt(27.0) 3
ceil(double/numeric) El entero más pequeño no menor que el parámetro ceil(-42.8) -42
degrees(double) Convierte radianes a grados degrees(0.5) 28.6478897565412
exp(double/numeric) Exponente natural exp(1.0) 2.71828182845905
floor(double/numeric) El entero más grande no mayor que el parámetro floor(-42.8) -43
ln(double/numeric) Logaritmo natural ln(2.0) 0.693147180559945
log(double/numeric) Logaritmo en base 10 log(100.0) 2
log(b numeric,x numeric) numeric Logaritmo con base especificada log(2.0, 64.0) 6.0000000000
mod(y, x) Resto mod(9,4) 1
pi() double Constante 'π' pi() 3.14159265358979
power(a double, b double) double Calcula a elevado a la potencia b power(9.0, 3.0) 729
power(a numeric, b numeric) numeric Calcula a elevado a la potencia b power(9.0, 3.0) 729
radians(double) double Convierte grados a radianes radians(45.0) 0.785398163397448
random() double Valor aleatorio entre 0.0 y 1.0 random()
round(double/numeric) Redondea al entero más cercano round(42.4) 42
round(v numeric, s int) numeric Redondea a un número con s decimales round(42.438,2) 42.44
sign(double/numeric) Signo del parámetro (-1, 0, +1) sign(-8.4) -1
sqrt(double/numeric) Raíz cuadrada sqrt(2.0) 1.4142135623731
trunc(double/numeric) Truncar (hacia cero) trunc(42.8) 42
trunc(v numeric, s int) numeric Truncar a un número con s posiciones decimales trunc(42.438,2) 42.43

Lista de funciones trigonométricas

Función Descripción
acos(x) Arco coseno
asin(x) Arco seno
atan(x) Arco tangente
atan2(x, y) Función inversa de la tangente y/x
cos(x) Coseno
cot(x) Cotangente
sin(x) Seno
tan(x) Tangente

Funciones de cadena y operadores

A continuación se muestra la lista de operadores de cadena proporcionados en PostgreSQL:

Función Tipo de retorno Descripción Ejemplo Resultado
string || string text Concatenación de cadenas 'Post' || 'greSQL' PostgreSQL
bit_length(string) int Número de bits binarios en la cadena bit_length('jose') 32
char_length(string) int Número de caracteres en la cadena char_length('jose') 4
convert(string using conversion_name) text Cambia la codificación utilizando el nombre de conversión especificado. convert('PostgreSQL' using iso_8859_1_to_utf8) 'PostgreSQL'
lower(string) text Convierte la cadena a minúsculas lower('TOM') tom
octet_length(string) int Número de bytes en la cadena octet_length('jose') 4
overlay(string placing string from int [for int]) text Reemplaza subcadenas overlay('Txxxxas' placing 'hom' from 2 for 4) Thomas
position(substring in string) int Posición de la subcadena especificada position('om' in 'Thomas') 3
substring(string [from int] [for int]) text Extrae subcadena substring('Thomas' from 2 for 3) hom
substring(string from pattern) text Extrae la subcadena que coincide con la expresión regular POSIX substring('Thomas' from '…$') mas
substring(string from pattern for escape) text Extrae la subcadena que coincide con la expresión regular SQL substring('Thomas' from '%#"o_a#"_' for '#') oma
trim([leading | trailing | both] [characters] from string) text Elimina la subcadena más larga que contiene solo characters (por defecto un espacio en blanco) desde el inicio/final/ambos lados de la cadena string. trim(both 'x' from 'xTomxx') Tom
upper(string) text Convierte la cadena a mayúsculas. upper('tom') TOM
ascii(text) int Código ASCII del primer carácter del parámetro ascii('x') 120
btrim(string text [, characters text]) text Elimina desde el inicio y el final de string la subcadena más larga que contiene solo caracteres de characters (por defecto espacio en blanco). btrim('xyxtrimyyx','xy') trim
chr(int) text Carácter dado el código ASCII chr(65) A
convert(string text, [src_encoding name,] dest_encoding name) text Convierte la cadena a dest_encoding convert( 'text_in_utf8', 'UTF8', 'LATIN1') text_in_utf8 representado en codificación ISO 8859-1
initcap(text) text Convierte la primera letra de cada palabra a mayúsculas y mantiene las demás en minúsculas. Las palabras son secuencias de caracteres alfanuméricos separadas por caracteres no alfanuméricos. initcap('hi thomas') Hi Thomas
length(string text) int Número de caracteres en string length('jose') 4
lpad(string text, length int [, fill text]) text Rellena string con el carácter de relleno fill (por defecto espacio en blanco) hasta alcanzar la longitud length. Si string ya es más largo que length, se trunca (por la derecha). lpad('hi', 5, 'xy') xyxhi
ltrim(string text [, characters text]) text Elimina desde el inicio de la cadena string la subcadena más larga que contiene solo characters (por defecto un espacio en blanco). ltrim('zzzytrim','xyz') trim
md5(string text) text Calcula el hash MD5 de la cadena dada y devuelve el resultado en hexadecimal. md5('abc')
repeat(string text, number int) text Repite string number veces. repeat('Pg', 4) PgPgPgPg
replace(string text, from text, to text) text Reemplaza todas las subcadenas from que aparecen en la cadena string por la subcadena to. replace('abcdefabcdef', 'cd', 'XX') abXXefabXXef
rpad(string text, length int [, fill text]) text Rellena string con el carácter de relleno fill (por defecto espacio en blanco) hasta la longitud length. Si string ya es más largo que length, se trunca. rpad('hi', 5, 'xy') hixyx
rtrim(string text [, character text]) text Elimina desde el final de la cadena string la subcadena más larga que contiene solo character (por defecto un espacio en blanco). rtrim('trimxxxx','x') trim
split_part(string text, delimiter text, field int) text Devuelve la subcadena número field generada al dividir string según delimiter (base 1). split_part('abc~@~def~@~ghi', '~@~', 2) def
strpos(string, substring) text Posición de la subcadena declarada. strpos('high','ig') 2
substr(string, from [, count]) text Extrae subcadena. substr('alphabet', 3, 2) ph
to_ascii(text [, encoding]) text Convierte text desde otra codificación a ASCII. to_ascii('Karel') Karel
to_hex(number int/bigint) text Convierte number a su representación hexadecimal correspondiente. to_hex(9223372036854775807) 7fffffffffffffff
translate(string text, from text, to text) text Convierte cualquier carácter en string que coincida con un carácter de from al carácter correspondiente en to. translate('12345', '14', 'ax') a23x5

Funciones relacionadas con la conversión de tipos

Función Tipo de retorno Descripción Ejemplo
to_char(timestamp, text) text Convierte una marca de tiempo (timestamp) a cadena to_char(current_timestamp, 'HH12:MI:SS')
to_char(interval, text) text Convierte un intervalo a cadena to_char(interval '15h 2m 12s', 'HH24:MI:SS')
to_char(int, text) text Convierte un entero a cadena to_char(125, '999')
to_char(double precision, text) text Convierte un número de doble precisión a cadena to_char(125.8::real, '999D9')
to_char(numeric, text) text Convierte un número a cadena to_char(-125.8, '999D99S')
to_date(text, text) date Convierte una cadena a fecha to_date('05 Dec 2000', 'DD Mon YYYY')
to_number(text, text) numeric Convierte una cadena a número to_number('12,454.8-', '99G999D9S')
to_timestamp(text, text) timestamp Convierte una cadena a timestamp con el formato de tiempo y zona horaria especificados. to_timestamp('05 Dec 2000', 'DD Mon YYYY')
to_timestamp(double precision) timestamp Convierte la época UNIX a timestamp to_timestamp(1284352323)

Artículo de referencia: https://blog.csdn.net/sun5769675/article/details/50628979

Otras extensiones