PostgreSQL-stringfuncties

PostgreSQL is een zeer krachtig object-relationeel databasebeheersysteem. Het biedt een groot aantal functies en operatoren voor de ingebouwde gegevenstypen, waardoor de ontwikkelaars worden ontslagen van eenvoudigere taken en zich richten op de oplossing voor het grotere probleem. Een dergelijke categorie van ingebouwde functies zijn de PostgreSQL-stringfuncties. Tekenreeksopmaak zoals aaneenschakeling, weergeven in een bepaald formaat, invoegen / verwijderen van substrings, enz. Kan soms een vervelende taak zijn. PostgreSQL-stringfuncties regelen dat voor u.

PostgreSQL heeft veel functies die niet zijn gedefinieerd in de standaard SQL-functies. Dit biedt de ontwikkelaars een uitgebreide horizon van functies die kunnen worden gebruikt om het grotere probleem op te lossen.

Om verschillende PostgreSQL String-functies te illustreren, moeten we eerst een database maken. In alle voorbeelden zal naar de volgende database worden verwezen:

Voorbeelden van tekenreeksfuncties in PostgreSQL

Stringfunctie is gemakkelijk te gebruiken. Hier zullen we bespreken hoe de stringfunctie in PostgreSQL kan worden gebruikt

programmeren met behulp van voorbeelden

1. ASCII (str)

Retourneert de ASCII-waarde van het meest linkse teken van de tekenreeks str.

SELECT FirstName, ASCII(FirstName) from Person

2. BIT_LENGTH (str)

Retourneert de lengte van de string str in bits.

SELECT FirstName, BIT_LENGTH(FirstName) from Person

3. CHAR_LENGTH (str) / CHARACTER_LENGTH (str)

Retourneert de lengte van de tekenreeks str in tekens.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

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

Retourneert een tekenreeks die wordt gevormd door str1 te verbinden met strn. NULL argumenten worden genegeerd.

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

5. str1 || str2 ||… || niet-str ||… || Strn

Combineert str1, str2 tot strn en zelfs niet-stringargumenten.

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

6. INITCAP (str)

De hoofdletter is de tekenreeks, dat wil zeggen dat de eerste letter van elk woord een hoofdletter en de rest een kleine letter is. Woorden worden bepaald door niet-alfanumerieke scheidingstekens.

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

7. ONDER () en BOVEN ()

Converteert een tekenreeks naar kleine letters en hoofdletters.

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

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

Retourneert de meest linkse en meest rechtse len-tekens uit de tekenreeks str. Wanneer len negatief is, retourneert dit de tekenreeks str behalve de meest linkse of meest rechtse len-tekens.

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

9. LENGTE (str) / LENGTH (str, codering)

Retourneert de lengte van de tekenreeks str in tekens. Dit is echter anders dan de bewerking van de functie Lengte in de SQL. Indien gespecificeerd, biedt codering de lengte in de specifieke codering.

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

10. OCTET_LENGTH (str)

Berekent de lengte van de string str in bytes.

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

Dit lijkt sterk op de functies LENGTH en CHAR_LENGTH. Het verschil komt wanneer er multibyte-personages bij betrokken zijn.

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

Dit gebeurt omdat het Euro-teken (€) 3 bytes in beslag neemt.

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

Voegt een subtekenreeks in vanaf positie 0 van de tekenreeks padstr aan het begin en einde van de tekenreeks str totdat de resulterende reeks lenzen bevat.

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

Retourneert de tekenreeks str na het bijsnijden van alle exemplaren van tekens van links, rechts of beide uiteinden. Als tekens niet zijn opgegeven in de argumenten, worden spaties bijgesneden.

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

Zoekt de positie van de substring in de string str. Vergeet niet dat de index begint bij 1 in PostgreSQL. Retourneert 0, als er geen overeenkomst is gevonden.

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

14. QUOTE_IDENT (str) / QUOTE_LITERAL (str)

Deze query citeert de string str. De meeste speciale karakters worden verdubbeld.

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

15. REPLACE (str, from_str, to_str)

Vervangt alle exemplaren van subtekenreeks from_str door subtekenreeks naar_str in de tekenreeks str. Het is hoofdlettergevoelig.

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

16. ACHTERUIT (str)

Keert de string str om.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, patroon)

Retourneert alle substrings die overeenkomen met het POSIX Regex-patroon.

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

18. REGEXP_REPLACE (str, patroon, newstr)

Vervangt alle substrings die overeenkomen met het POSIX Regex-patroon door de newstr.

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

19. REGEXP_SPLIT_TO_ARRAY (str, patroon)

Splitst de tekenreeks str in een reeks substrings gescheiden door POSIX Regex-patroon. Patroon E '\\ s +' betekent een of meer spaties.

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

20. REGEXP_SPLIT_TO_TABLE (str, patroon)

Splitst de tekenreeks str in een tabel met substrings gescheiden door POSIX Regex-patroon.

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

21. ONDERGROND (str van pos voor len)

Retourneert een substring uit string str vanaf positie pos van lengte len.

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

22. SUBSTRING (str van posix_pattern) / SUBSTRING (str van sql_pattern voor escape)

Retourneert een substring uit string str die overeenkomt met de POSIX Regex of SQL Regex. Regex is een groot, prachtig en uiterst nuttig onderwerp op computers. Het wordt aanbevolen om Regex-patronen te bemachtigen voordat u deze lukraak implementeert.

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

Conclusie - PostgreSQL-stringfuncties

Dus, tot slot, dit is samen met andere ingebouwde functies wat PostgreSQL zo krachtig maakt. De opname van regex-patronen voegt er meer kracht aan toe. Als de kunst van het schrijven van Regex-patronen eenmaal is geleerd en beheerst, is spelen met de database veel leuker.

Aanbevolen artikelen

Dit is een gids voor PostgreSQL String Functions geweest. Hier hebben we besproken hoe stringfuncties kunnen worden gebruikt in PostgreSQL-programmering met behulp van voorbeelden. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. Stringfuncties in Java met voorbeelden
  2. Hoe PostgreSQL installeren?
  3. Vragen tijdens solliciteren bij PostgreSQL
  4. Regex-functies in Python (voorbeeld)