Функції рядків PostgreSQL

PostgreSQL - це дуже потужна об'єктно-реляційна система управління базами даних. Він надає велику кількість функцій та операторів для вбудованих типів даних, тим самим позбавляючи розробників від більш простих завдань і зосереджуючи увагу на вирішенні більшої проблеми. Однією з таких категорій вбудованих функцій є рядкові функції PostgreSQL. Форматування рядків, наприклад конкатенація, показ у певному форматі, вставлення / видалення підрядків тощо, іноді може бути втомливим завданням. Функції stringgre PostgreSQL подбають про це за вас.

PostgreSQL має багато функцій, які не визначені у стандартних функціях SQL. Це надає розробникам широкий обрій функцій, який може використовуватись для вирішення більшої проблеми.

Щоб проілюструвати різні функції PostgreSQL String, спочатку нам потрібно створити базу даних. Наступна база даних буде згадана у всіх прикладах:

Приклади функцій рядків у PostgreSQL

Струнна функція проста у використанні. Тут ми обговоримо, як використовувати функцію string у PostgreSQL

програмування за допомогою прикладів

1. ASCII (str)

Повертає значення ASCII крайнього лівого символу рядка str.

SELECT FirstName, ASCII(FirstName) from Person

2. BIT_LENGTH (str)

Повертає довжину рядка рядка в бітах.

SELECT FirstName, BIT_LENGTH(FirstName) from Person

3. CHAR_LENGTH (str) / CHARACTER_LENGTH (str)

Повертає довжину рядка рядка в символах.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

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

Повертає рядок, утворений приєднанням str1 до strn. Аргументи NULL ігноруються.

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

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

Об'єднує str1, str2 в strn і навіть нестрокові аргументи.

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

6. INITCAP (str)

Велика літера складається з великої літери, тобто перша літера кожного слова є великою літерою, а решта - з великої літери. Слова визначаються не алфавітно-цифровими роздільниками.

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

7. НИЗЬКИЙ () і ВГОРИЙ ()

Перетворює рядок у малі та великі регістри.

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

8. ЛІВО (str, len) / ВПРАВО (str, len)

Повертає лівий і правий ліві символи з рядка str. Коли len від'ємний, він повертає рядок str, за винятком самих лівих або правих символів.

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

9. LENGTH (str) / LENGTH (str, кодування)

Повертає довжину рядка рядка в символах. Це, на відміну від роботи функції Length в SQL. Коли зазначено, кодування забезпечує довжину в конкретному кодуванні.

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

10. OCTET_LENGTH (str)

Обчислює довжину рядка str у байтах.

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

Це дуже схоже на функції LENGTH та CHAR_LENGTH. Різниця виникає, коли задіяні багатобайтові символи.

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

Це відбувається тому, що знак євро (€) займає 3 байти в пам'яті.

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

Вставляє підрядку з позиції 0 рядка podstr на початку та в кінці рядка рядка до тих пір, поки в результаті рядка не буде знаків.

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)

Повертає рядок str після обрізання всіх подій символів (ліворуч, праворуч або обох кінців). Якщо символи не вказані в аргументах, пробіли обрізаються.

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. ПОЗИЦІЯ (substr у str) / STRPOS (str, substr)

Знаходить положення підстроки підрядного рядка в рядку str. Пам'ятайте, що індекс починається з 1 у PostgreSQL. Повертає 0, якщо не знайдено відповідності.

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

14. QUOTE_IDENT (str) / QUOTE_LITERAL (str)

Цей запит цитує і не цитує рядок str. Більшість спеціальних символів подвоєні.

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

15. ЗАМІНА (str, from_str, to_str)

Замінює всі виникнення підрядків from_str на підрядку to_str у рядку str. Це залежно від регістру.

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

16. РЕВЕРС (str)

Зворотно повертає рядок str.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, візерунок)

Повертає всі підрядки, що відповідають шаблону POSIX Regex.

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

18. REGEXP_REPLACE (str, візерунок, newstr)

Замінює всі підрядки, що відповідають шаблону POSIX Regex на newstr.

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

19. REGEXP_SPLIT_TO_ARRAY (str, візерунок)

Розбиває str string на масив підрядків, розділених шаблоном POSIX Regex. Шаблон E '\\ s +' означає одне або більше порожніх пробілів.

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

20. REGEXP_SPLIT_TO_TABLE (str, шаблон)

Розбиває str string на таблицю підрядків, розділених шаблоном POSIX Regex.

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

21. ПІДТРИМКА (str від pos for len)

Повертає підрядку з рядка str, починаючи з положення pos довжини len.

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

22. SUBSTRING (str від posix_pattern) / SUBSTRING (str від sql_pattern для втечі)

Повертає підрядку з рядка str, що відповідає POSIX Regex або SQL Regex. Regex - велика, чудова і надзвичайно корисна тема в комп’ютерах. Рекомендується захоплюватися шаблонами Regex, перш ніж їх реально реалізувати.

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

Висновок - Строкові функції PostgreSQL

Отже, підсумовуючи, ці поряд з іншими вбудованими функціями - це те, що робить PostgreSQL настільки потужним. Включення моделей регулярних виразів додає йому більшої сили. Як тільки мистецтво писати шаблони Regex засвоїться і засвоїться, грати з базою даних буде набагато веселіше.

Рекомендовані статті

Це керівництво по функціям PostgreSQL String Functions. Тут ми обговорили, як використовувати строкові функції в програмі PostgreSQL за допомогою прикладів. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Струнні функції в Java з прикладами
  2. Як встановити PostgreSQL?
  3. Питання щодо інтерв'ю PostgreSQL
  4. Функції Regex в Python (приклад)