Строковые функции PostgreSQL

PostgreSQL - очень мощная объектно-реляционная система управления базами данных. Он предоставляет большое количество функций и операторов для встроенных типов данных, тем самым освобождая разработчиков от более простых задач и сосредотачиваясь на решении более масштабной проблемы. Одной из таких категорий встроенных функций являются строковые функции PostgreSQL. Форматирование строк, такое как конкатенация, отображение в определенном формате, вставка / удаление подстрок и т. Д., Иногда может быть утомительной задачей. Об этом позаботятся строковые функции PostgreSQL.

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

Чтобы проиллюстрировать различные функции PostgreSQL String, нам сначала нужно создать базу данных. Следующая база данных будет использоваться во всех примерах:

Примеры строковых функций в PostgreSQL

Строковая функция проста в использовании. Здесь мы обсудим, как использовать строковую функцию в PostgreSQL

программирование с помощью примеров

1. ASCII (ул.)

Возвращает значение 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)

Возвращает длину строки str в символах.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

4. КОНКАТ (str1, str2, …., Strn)

Возвращает строку, образованную присоединением str1 к strn. Пустые аргументы игнорируются.

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 (ул.)

Строка заглавная, т.е. первая буква каждого слова в верхнем регистре, а остальные - в нижнем. Слова определяются не алфавитно-цифровыми разделителями.

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

7. НИЖНЯЯ () и ВЕРХНЯЯ ()

Преобразует строку в нижний и верхний регистр.

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

8. ВЛЕВО (ул., Лен) / ПРАВО (ул., Лен)

Возвращает самый левый и самый правый символы len из строки str. Когда len отрицательно, оно возвращает строку str за исключением крайних левых или правых символов len.

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

9. ДЛИНА (str) / ДЛИНА (str, кодировка)

Возвращает длину строки str в символах. Это в отличие от операции функции длины в 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 (ул, лен, падстр) / RPAD (ул, лен, падстр)

Вставляет подстроку с позиции 0 строки padstr в начале и конце строки str до тех пор, пока результирующая строка не будет содержать символы 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, символы) / RTRIM (str, символы) / TRIM (str, символы)

Возвращает строку str после обрезки всех вхождений char (s) слева, справа или с обоих концов. Если символы не указаны в аргументах, пробелы обрезаются.

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. ПОЗИЦИЯ (субстрат в стр.) / STRPOS (стр., Субстрат)

Находит позицию подстроки 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. ОБРАТНАЯ (ул.)

Обращает строку ул.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, pattern)

Возвращает все подстроки, которые соответствуют шаблону POSIX Regex.

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

18. REGEXP_REPLACE (str, pattern, 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, pattern)

Разбивает строку str на массив подстрок, разделенных шаблоном POSIX Regex. Шаблон E '\\ s +' означает один или несколько пробелов.

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

20. REGEXP_SPLIT_TO_TABLE (str, pattern)

Разбивает строку str на таблицу подстрок, разделенных шаблоном POSIX Regex.

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

21. SUBSTRING (ул. От pos для len)

Возвращает подстроку из строки str, начиная с позиции pos длины len.

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

22. SUBSTRING (строка из posix_pattern) / SUBSTRING (строка из sql_pattern для выхода)

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

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

Вывод - строковые функции PostgreSQL

Итак, в заключение, именно эти и другие встроенные функции делают PostgreSQL настолько мощным. Включение шаблонов регулярных выражений добавляет ему больше силы. Когда искусство написания шаблонов Regex будет изучено и освоено, играть с базой данных станет намного интереснее.

Рекомендуемые статьи

Это было руководство по функциям PostgreSQL String. Здесь мы обсудили, как использовать строковые функции в программировании на PostgreSQL с помощью примеров. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Строковые функции в Java с примерами
  2. Как установить PostgreSQL?
  3. PostgreSQL Интервью Вопросы
  4. Функции регулярных выражений в Python (пример)