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) |
Otras extensionesArtículo de referencia: https://blog.csdn.net/sun5769675/article/details/50628979