PostgreSQL Allgemeine Funktionen
PostgreSQL integrierte Funktionen, auch Aggregatfunktionen genannt, werden verwendet, um Zeichenfolgen- oder numerische Daten zu verarbeiten.
Das Folgende ist eine Liste aller gängigen in PostgreSQL integrierten Funktionen:
- COUNT-Funktion: wird verwendet, um die Anzahl der Zeilen in einer Datenbanktabelle zu zählen.
- MAX-Funktion: wird verwendet, um den Maximalwert in einer bestimmten Spalte abzufragen.
- MIN-Funktion: Wird verwendet, um den kleinsten Wert in einer bestimmten Spalte abzufragen.
- AVG-Funktion: Wird verwendet, um den Durchschnittswert in einer bestimmten Spalte zu berechnen.
- SUM-Funktion: Wird verwendet, um die Summe aller Werte in einer numerischen Spalte zu berechnen.
- ARRAY-Funktion: Wird verwendet, um Eingabewerte (einschließlich null) einem Array hinzuzufügen.
- Numerische Funktionen: eine vollständige Liste der Funktionen, die für die in SQL erforderlichen Operationen benötigt werden.
- String-Funktionen: eine vollständige Liste der Funktionen, die für Zeichenoperationen in SQL benötigt werden.
Mathematische Funktionen
Das Folgende ist eine Liste der in PostgreSQL bereitgestellten mathematischen Funktionen. Beachten Sie, dass viele dieser Funktionen mehrere Formen haben, die sich nur in den Typen ihrer Argumente unterscheiden. Sofern nicht anders angegeben, gibt jede spezifische Form einer Funktion denselben Datentyp wie ihr Argument zurück.
| Funktion | Rückgabetyp | Beschreibung | Beispiel | Ergebnis |
|---|---|---|---|---|
| abs(x) | Absolutwert | abs(-17.4) | 17.4 | |
| cbrt(double) | Kubikwurzel | cbrt(27.0) | 3 | |
| ceil(double/numeric) | Kleinste ganze Zahl, die nicht kleiner als das Argument ist | ceil(-42.8) | -42 | |
| degrees(double) | Konvertiert Bogenmaß in Grad | degrees(0.5) | 28.6478897565412 | |
| exp(double/numeric) | Natürliche Exponentialfunktion | exp(1.0) | 2.71828182845905 | |
| floor(double/numeric) | Größte ganze Zahl, die nicht größer als das Argument ist | floor(-42.8) | -43 | |
| ln(double/numeric) | Natürlicher Logarithmus | ln(2.0) | 0.693147180559945 | |
| log(double/numeric) | Logarithmus zur Basis 10 | log(100.0) | 2 | |
| log(b numeric,x numeric) | numeric | Logarithmus mit angegebener Basis | log(2.0, 64.0) | 6.0000000000 |
| mod(y, x) | Rest | mod(9,4) | 1 | |
| pi() | double | Die Konstante "π" | pi() | 3.14159265358979 |
| power(a double, b double) | double | a hoch b | power(9.0, 3.0) | 729 |
| power(a numeric, b numeric) | numeric | a hoch b | power(9.0, 3.0) | 729 |
| radians(double) | double | Rechnet Grad in Bogenmaß um | radians(45.0) | 0.785398163397448 |
| random() | double | Zufallswert zwischen 0.0 und 1.0 | random() | |
| round(double/numeric) | Rundet auf die nächste ganze Zahl | round(42.4) | 42 | |
| round(v numeric, s int) | numeric | Auf s Dezimalstellen runden | round(42.438,2) | 42.44 |
| sign(double/numeric) | Vorzeichen des Arguments (-1, 0, +1) | sign(-8.4) | -1 | |
| sqrt(double/numeric) | Quadratwurzel | sqrt(2.0) | 1.4142135623731 | |
| trunc(double/numeric) | Abschneiden (gegen null) | trunc(42.8) | 42 | |
| trunc(v numeric, s int) | numeric | Auf s Dezimalstellen abschneiden | trunc(42.438,2) | 42.43 |
Liste der trigonometrischen Funktionen
| Funktion | Beschreibung |
|---|---|
| acos(x) | Arkuskosinus |
| asin(x) | Arkussinus |
| atan(x) | Arkustangens |
| atan2(x, y) | Arkustangens von y/x |
| cos(x) | Kosinus |
| cot(x) | Kotangens |
| sin(x) | Sinus |
| tan(x) | Tangens |
String-Funktionen und -Operatoren
Das Folgende ist eine Liste der in PostgreSQL bereitgestellten String-Operatoren:
| Funktion | Rückgabetyp | Beschreibung | Beispiel | Ergebnis |
|---|---|---|---|---|
| string || string | text | String-Verkettung | 'Post' || 'PostgreSQL' | PostgreSQL |
| bit_length(string) | int | Anzahl der Bits im String | bit_length('jose') | 32 |
| char_length(string) | int | Anzahl der Zeichen im String | char_length('jose') | 4 |
| convert(string using conversion_name) | text | Kodierung mit dem angegebenen Konvertierungsnamen ändern. | convert('PostgreSQL' using iso_8859_1_to_utf8) | 'PostgreSQL' |
| lower(string) | text | String in Kleinbuchstaben umwandeln | lower('TOM') | tom |
| octet_length(string) | int | Anzahl der Bytes im String | octet_length('jose') | 4 |
| overlay(string placing string from int [for int]) | text | Teilzeichenkette ersetzen | overlay('Txxxxas' placing 'hom' from 2 for 4) | Thomas |
| position(substring in string) | int | Position der angegebenen Teilzeichenkette | position('om' in 'Thomas') | 3 |
| substring(string [from int] [for int]) | text | Teilzeichenkette extrahieren | substring('Thomas' from 2 for 3) | hom |
| substring(string from pattern) | text | Teilzeichenkette extrahieren, die dem regulären POSIX-Ausdruck entspricht | substring('Thomas' from '…$') | mas |
| substring(string from pattern for escape) | text | Teilzeichenkette extrahieren, die dem regulären SQL-Ausdruck entspricht | substring('Thomas' from '%#"o_a#"_' for '#') | oma |
| trim([leading | trailing | both] [characters] from string) | text | Entfernt die längste Zeichenkette, die nur aus Zeichen besteht (Standard ist ein Leerzeichen), vom Anfang/Ende/beiden Seiten der Zeichenkette `string`. | trim(both 'x' from 'xTomxx') | Tom |
| upper(string) | text | Wandelt string in Großbuchstaben um. | upper('tom') | TOM |
| ascii(text) | int | ASCII-Code des ersten Zeichens des Arguments | ascii('x') | 120 |
| btrim(string text [, characters text]) | text | Entfernt die längste Zeichenkette, die aus Zeichen in `characters` besteht (Standard ist Leerzeichen), vom Anfang und Ende von `string`. | btrim('xyxtrimyyx','xy') | trim |
| chr(int) | text | Zeichen mit dem angegebenen ASCII-Code | chr(65) | A |
| convert(string text, [src_encoding name,] dest_encoding name) | text | Konvertiert die Zeichenkette nach `dest_encoding` | convert( 'text_in_utf8', 'UTF8', 'LATIN1') | `text_in_utf8`, dargestellt in ISO 8859-1-Kodierung |
| initcap(text) | text | Wandelt den ersten Buchstaben jedes Wortes in Großbuchstaben um, wobei der Rest in Kleinbuchstaben bleibt. Wörter sind Folgen alphanumerischer Zeichen, die durch nicht alphanumerische Zeichen getrennt sind. | initcap('hi thomas') | Hi Thomas |
| length(string text) | int | Anzahl der Zeichen in `string` | length('jose') | 4 |
| lpad(string text, length int [, fill text]) | text | Füllt `string` mit dem Füllzeichen `fill` auf die Länge `length` auf (Standard ist ein Leerzeichen). Wenn `string` bereits länger als `length` ist, wird es (rechts) gekürzt. | lpad('hi', 5, 'xy') | xyxhi |
| ltrim(string text [, characters text]) | text | Entfernt die längste Zeichenkette, die nur aus Zeichen (Standard ist ein Leerzeichen) besteht, vom Anfang von `string`. | ltrim('zzzytrim','xyz') | trim |
| md5(string text) | text | Berechne den MD5-Hash des angegebenen `string` und gib das Ergebnis in hexadezimaler Form zurück. | md5('abc') | |
| repeat(string text, number int) | text | Wiederhole `string` `number` Mal. | repeat('Pg', 4) | PgPgPgPg |
| replace(string text, from text, to text) | text | Ersetze alle Vorkommen der Teilzeichenkette `from` in der Zeichenkette `string` durch die Teilzeichenkette `to`. | replace('abcdefabcdef', 'cd', 'XX') | abXXefabXXef |
| rpad(string text, length int [, fill text]) | text | Füllt `string` auf die Länge `length` mit dem Füllzeichen `fill` auf (Standard ist Leerzeichen). Wenn `string` bereits länger als `length` ist, wird es gekürzt. | rpad('hi', 5, 'xy') | hixyx |
| rtrim(string text [, character text]) | text | Entfernt die längste Zeichenkette, die nur aus Zeichen (Standard ist Leerzeichen) besteht, vom Ende der Zeichenkette `string`. | rtrim('trimxxxx','x') | trim |
| split_part(string text, delimiter text, field int) | text | Gibt den `field`-ten Teilstring zurück, der durch Aufteilen von `string` anhand von `delimiter` erzeugt wird (1-basiert). | split_part('abc~@~def~@~ghi', '~@~', 2) | def |
| strpos(string, substring) | text | Position des angegebenen Teilstrings. | strpos('high','ig') | 2 |
| substr(string, from [, count]) | text | Teilzeichenkette extrahieren. | substr('alphabet', 3, 2) | ph |
| to_ascii(text [, encoding]) | text | Konvertiert `text` aus einer anderen Kodierung nach ASCII. | to_ascii('Karel') | Karel |
| to_hex(number int/bigint) | text | Konvertiert `number` in seine entsprechende hexadezimale Darstellung. | to_hex(9223372036854775807) | 7fffffffffffffff |
| translate(string text, from text, to text) | text | Konvertiert alle Zeichen in `string`, die mit Zeichen in `from` übereinstimmen, in die entsprechenden Zeichen in `to`. | translate('12345', '14', 'ax') | a23x5 |
Funktionen zur Typkonvertierung
| Funktion | Rückgabetyp | Beschreibung | Beispiel |
|---|---|---|---|
| to_char(timestamp, text) | text | Zeitstempel in Zeichenfolge konvertieren | to_char(current_timestamp, 'HH12:MI:SS') |
| to_char(interval, text) | text | Intervall in Zeichenfolge konvertieren | to_char(interval '15h 2m 12s', 'HH24:MI:SS') |
| to_char(int, text) | text | Integer in Zeichenkette umwandeln | to_char(125, '999') |
| to_char(double precision, text) | text | double precision in Zeichenkette umwandeln | to_char(125.8::real, '999D9') |
| to_char(numeric, text) | text | numeric in Zeichenkette umwandeln | to_char(-125.8, '999D99S') |
| to_date(text, text) | date | Zeichenkette in Datum umwandeln | to_date('05 Dec 2000', 'DD Mon YYYY') |
| to_number(text, text) | numeric | Zeichenkette in Zahl umwandeln | to_number('12,454.8-', '99G999D9S') |
| to_timestamp(text, text) | timestamp | In das angegebene Zeitformat konvertieren; Zeitzone: Zeichenkette in Zeitstempel umwandeln | to_timestamp('05 Dec 2000', 'DD Mon YYYY') |
| to_timestamp(double precision) | timestamp | Unix-Epoche in Zeitstempel umwandeln | to_timestamp(1284352323) |
Andere ErweiterungenReferenzartikel: https://blog.csdn.net/sun5769675/article/details/50628979