PostgreSQL-String-Funktionen

PostgreSQL ist ein sehr leistungsfähiges objektrelationales Datenbankverwaltungssystem. Es bietet eine große Anzahl von Funktionen und Operatoren für die integrierten Datentypen, wodurch die Entwickler von einfacheren Aufgaben entlastet werden und sich auf die Lösung des größeren Problems konzentrieren können. Eine solche Kategorie von eingebauten Funktionen sind die PostgreSQL-String-Funktionen. Das Formatieren von Zeichenfolgen wie Verketten, Anzeigen in einem bestimmten Format, Einfügen / Löschen von Teilzeichenfolgen usw. kann manchmal eine mühsame Aufgabe sein. PostgreSQL-String-Funktionen erledigen das für Sie.

PostgreSQL hat viele Funktionen, die in den Standard-SQL-Funktionen nicht definiert sind. Dies bietet den Entwicklern einen riesigen Funktionshorizont, mit dessen Hilfe das größere Problem gelöst werden kann.

Um verschiedene PostgreSQL-String-Funktionen zu veranschaulichen, müssen wir zunächst eine Datenbank erstellen. In allen Beispielen wird auf die folgende Datenbank verwiesen:

Beispiele für String-Funktionen in PostgreSQL

String-Funktion ist einfach zu bedienen. Hier werden wir diskutieren, wie die String-Funktion in PostgreSQL verwendet wird

Programmierung anhand von Beispielen

1. ASCII (str)

Gibt den ASCII-Wert des am weitesten links stehenden Zeichens der Zeichenfolge str zurück.

SELECT FirstName, ASCII(FirstName) from Person

2. BIT_LENGTH (str)

Gibt die Länge des Strings in Bits zurück.

SELECT FirstName, BIT_LENGTH(FirstName) from Person

3. CHAR_LENGTH (str) / CHARACTER_LENGTH (str)

Gibt die Länge des Strings in Zeichen zurück.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

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

Gibt eine Zeichenfolge zurück, die durch Verbinden von str1 mit strn gebildet wird. NULL-Argumente werden ignoriert.

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

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

Verkettet str1, str2 mit strn und sogar mit Nicht-String-Argumenten.

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

6. INITCAP (str)

Schreibt die Zeichenfolge in Großbuchstaben, dh der erste Buchstabe jedes Wortes wird in Großbuchstaben und der Rest in Kleinbuchstaben geschrieben. Wörter werden durch nicht alphanumerische Trennzeichen bestimmt.

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

7. UNTERE () und OBERE ()

Konvertiert eine Zeichenfolge in Klein- und Großbuchstaben.

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

8. LINKS (str, len) / RECHTS (str, len)

Gibt die Zeichen ganz links und ganz rechts in der Zeichenfolge str zurück. Wenn len negativ ist, wird der String str mit Ausnahme der Zeichen ganz links oder ganz rechts zurückgegeben.

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

9. LÄNGE (str) / LÄNGE (str, Kodierung)

Gibt die Länge des Strings in Zeichen zurück. Dies unterscheidet sich jedoch von der Operation der Längenfunktion in SQL. Wenn angegeben, gibt die Codierung die Länge in der jeweiligen Codierung an.

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

10. OCTET_LENGTH (str)

Berechnet die Länge des Strings in Bytes.

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

Dies ist den Funktionen LENGTH und CHAR_LENGTH sehr ähnlich. Der Unterschied ergibt sich, wenn es sich um Multibyte-Zeichen handelt.

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

Dies liegt daran, dass das Euro-Zeichen 3 Byte im Speicher belegt.

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

Fügt am Anfang und am Ende der Zeichenfolge ab Position 0 der Zeichenfolge padstr eine Unterzeichenfolge ein, bis die resultierende Zeichenfolge aus len Zeichen besteht.

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, chars) / RTRIM (str, chars) / TRIM (str, chars)

Gibt den String str zurück, nachdem alle Vorkommen von Zeichen von links, rechts oder beiden Enden abgeschnitten wurden. Wenn in den Argumenten keine Zeichen angegeben sind, werden Leerzeichen abgeschnitten.

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. POSITION (substr in str) / STRPOS (str, substr)

Findet die Position des Teilstrings substr im String str. Denken Sie daran, dass der Index in PostgreSQL bei 1 beginnt. Gibt 0 zurück, wenn keine Übereinstimmung gefunden wurde.

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

14. QUOTE_IDENT (str) / QUOTE_LITERAL (str)

Diese Abfrage zitiert den String str und hebt die Anführungszeichen auf. Die meisten Sonderzeichen werden verdoppelt.

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

15. REPLACE (str, from_str, to_str)

Ersetzt alle Vorkommen der Unterzeichenfolge from_str durch die Unterzeichenfolge to_str in der Zeichenfolge str. Es wird zwischen Groß- und Kleinschreibung unterschieden.

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

16. RÜCKWÄRTS (str)

Kehrt den String str um.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, pattern)

Gibt alle Teilzeichenfolgen zurück, die mit dem POSIX-Regex-Muster übereinstimmen.

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

18. REGEXP_REPLACE (str, pattern, newstr)

Ersetzt alle Teilzeichenfolgen, die mit dem POSIX-Regex-Muster übereinstimmen, durch die neue Zeichenfolge.

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

19. REGEXP_SPLIT_TO_ARRAY (str, pattern)

Teilt die Zeichenfolge str in ein Array von Teilzeichenfolgen auf, die durch ein POSIX-Regex-Muster getrennt sind. Muster E '\\ s +' bedeutet ein oder mehrere Leerzeichen.

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

20. REGEXP_SPLIT_TO_TABLE (str, pattern)

Teilt die Zeichenfolge str in eine Tabelle mit Teilzeichenfolgen auf, die durch POSIX-Regex-Muster getrennt sind.

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

21. SUBSTRING (str von pos für len)

Gibt einen Teilstring aus dem String str zurück, der an der Position pos der Länge len beginnt.

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

22. SUBSTRING (str von posix_pattern) / SUBSTRING (str von sql_pattern zum Escape)

Gibt eine Teilzeichenfolge aus dem String str zurück, die mit dem POSIX-Regex oder dem SQL-Regex übereinstimmt. Regex ist ein großes, wunderbares und äußerst nützliches Thema in Computern. Es wird empfohlen, Regex-Muster zu erfassen, bevor Sie sie nach dem Zufallsprinzip implementieren.

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

Fazit - PostgreSQL-String-Funktionen

Zusammen mit anderen integrierten Funktionen macht PostgreSQL also so leistungsfähig. Die Einbeziehung von Regex-Mustern verleiht ihm mehr Leistung. Sobald die Kunst des Schreibens von Regex-Mustern erlernt und beherrscht ist, würde das Spielen mit der Datenbank viel mehr Spaß machen.

Empfohlene Artikel

Dies war eine Anleitung zu den PostgreSQL-String-Funktionen. Hier haben wir anhand von Beispielen die Verwendung von String-Funktionen in der PostgreSQL-Programmierung besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren.

  1. String-Funktionen in Java mit Beispielen
  2. Wie installiere ich PostgreSQL?
  3. Fragen zu PostgreSQL-Vorstellungsgesprächen
  4. Regex-Funktionen in Python (Beispiel)