Funkcje ciągu PostgreSQL

PostgreSQL to bardzo wydajny obiektowo-relacyjny system zarządzania bazą danych. Zapewnia dużą liczbę funkcji i operatorów dla wbudowanych typów danych, uwalniając w ten sposób programistów od prostszych zadań i koncentrując się na rozwiązaniu większego problemu. Jedną z takich kategorii wbudowanych funkcji są funkcje łańcuchowe PostgreSQL. Formatowanie łańcucha, takie jak konkatenacja, wyświetlanie w określonym formacie, wstawianie / usuwanie podciągów itp. Może być czasem uciążliwym zadaniem. Zajmują się tym za pomocą funkcji łańcuchowych PostgreSQL.

PostgreSQL ma wiele funkcji, które nie są zdefiniowane w standardowych funkcjach SQL. Zapewnia to programistom szeroki zakres funkcji, które można wykorzystać do rozwiązania większego problemu.

Aby zilustrować różne funkcje łańcucha PostgreSQL, musimy najpierw utworzyć bazę danych. We wszystkich przykładach będzie się odnosić do następującej bazy danych:

Przykłady funkcji łańcuchowych w PostgreSQL

Funkcja string jest łatwa w użyciu. Tutaj omówimy, jak używać funkcji ciągu w PostgreSQL

programowanie za pomocą przykładów

1. ASCII (str)

Zwraca wartość ASCII najbardziej wysuniętego w lewo znaku ciągu str.

SELECT FirstName, ASCII(FirstName) from Person

2. BIT_LENGTH (str)

Zwraca długość łańcucha str w bitach.

SELECT FirstName, BIT_LENGTH(FirstName) from Person

3. CHAR_LENGTH (str) / CHARACTER_LENGTH (str)

Zwraca długość łańcucha str w znakach.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

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

Zwraca ciąg utworzony przez połączenie str1 z strn. Argumenty NULL są ignorowane.

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

5. str1 || str2 ||… || non-str ||… || strn

Łączy argumenty str1, str2 i strn, a nawet argumenty nie łańcuchowe.

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

6. INITCAP (str)

Napis jest wielką literą, tzn. Pierwsza litera każdego słowa jest pisana wielkimi literami, a reszta jest pisana małymi literami. Słowa są określane przez separatory niealfanumeryczne.

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

7. DOLNE () i GÓRNE ()

Konwertuje ciąg na małe i wielkie litery.

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

8. LEWO (str, len) / PRAWO (str, len)

Zwraca lewą i prawą literę znaków len z łańcucha str. Gdy len jest ujemne, zwraca ciąg str, z wyjątkiem znaków lewej i prawej skrajnej.

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

9. LENGTH (str) / LENGTH (str, kodowanie)

Zwraca długość łańcucha str w znakach. Jednak w przeciwieństwie do działania funkcji Długość w SQL. Po określeniu kodowanie zapewnia długość w danym kodowaniu.

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

10. OCTET_LENGTH (str)

Oblicza długość łańcucha str w bajtach.

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

Jest to bardzo podobne do funkcji LENGTH i CHAR_LENGTH. Różnica pojawia się, gdy w grę wchodzą znaki wielobajtowe.

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

Dzieje się tak, ponieważ znak Euro (€) zajmuje 3 bajty pamięci.

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

Wstawia podłańcuch od pozycji 0 łańcucha padstr na początku i na końcu łańcucha str, dopóki wynikowy łańcuch nie będzie zawierał znaków len.

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

Zwraca ciąg znaków po przycięciu wszystkich wystąpień znaków (znaków) od lewej, prawej lub obu końców. Jeśli w argumentach nie podano znaków, spacje są przycinane.

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

Znajduje pozycję substring substr w str str. Pamiętaj, że indeks zaczyna się od 1 w PostgreSQL. Zwraca 0, jeśli nie znaleziono dopasowania.

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

14. QUOTE_IDENT (str) / QUOTE_LITERAL (str)

To zapytanie cytuje i cofa cytowanie ciągu str. Większość znaków specjalnych jest podwojona.

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

15. WYMIANA (str, from_str, to_str)

Zamienia wszystkie wystąpienia podciągu from_str na pod-string to_str w ciągu str. Rozróżniana jest wielkość liter.

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

16. REVERSE (str)

Odwraca ciąg str.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, wzór)

Zwraca wszystkie podciągi pasujące do wzorca Regex POSIX.

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

18. REGEXP_REPLACE (str, pattern, newstr)

Zamienia wszystkie podciągi pasujące do wzorca POSIX Regex na newstr.

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

19. REGEXP_SPLIT_TO_ARRAY (str, wzór)

Dzieli ciąg znaków na tablicę podciągów oddzielonych wzorem POSIX Regex. Wzorzec E 's +' oznacza jedno lub więcej spacji.

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

20. REGEXP_SPLIT_TO_TABLE (str, wzór)

Dzieli ciąg znaków na tabelę podciągów oddzieloną wzorem POSIX Regex.

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

21. SUBSTRING (str. Od pos for len)

Zwraca podciąg z łańcucha str zaczynającego się w pozycji poz długości len.

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

22. SUBSTRING (str. Z posix_pattern) / SUBSTRING (str. Z sql_pattern do ucieczki)

Zwraca podciąg z ciągu znaków pasującego do POSEX Regex lub SQL Regex. Regex to duży, wspaniały i niezwykle przydatny temat w komputerach. Zaleca się przechwycenie wzorców Regex przed ich przypadkowym wdrożeniem.

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

Wniosek - funkcje łańcuchowe PostgreSQL

Podsumowując, te wraz z innymi wbudowanymi funkcjami sprawiają, że PostgreSQL jest tak potężny. Włączenie wzorców wyrażeń regularnych dodaje mu więcej mocy. Po opanowaniu sztuki pisania wzorców Regex gra z bazą danych byłaby znacznie przyjemniejsza.

Polecane artykuły

Jest to przewodnik po funkcjach łańcuchowych PostgreSQL. Tutaj omówiliśmy, jak korzystać z funkcji łańcuchowych w programowaniu PostgreSQL za pomocą przykładów. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Funkcje łańcuchowe w Javie z przykładami
  2. Jak zainstalować PostgreSQL?
  3. Pytania do wywiadu PostgreSQL
  4. Funkcje wyrażenia regularnego w języku Python (przykład)