Самая передовая в мире реляционная база данных с открытым исходным кодом
В этом разделе описываются функции и операторы для проверки и
манипулирование двоичными строками, то есть значениями типа байта
.
Многие из них эквивалентны по назначению и синтаксису
функции текстовой строки, описанные в предыдущем разделе.
SQL определяет некоторые строковые функции, которые используют ключевые слова, а не запятые, чтобы отделить аргументы. Подробности в Таблица 9.11 . PostgreSQL также предоставляет версии этих функций которые используют обычный синтаксис вызова функции (видеть Таблица 9.12 ).
Таблица 9.11. SQL Бинарные строковые функции и операторы
Функция/оператор Описание Примеры) |
---|
Объединяет две двоичные строки. |
Возвращает количество битов в двоичной строке (8
раз |
Возвращает количество байтов в двоичной строке. |
Заменяет подстроку |
Возвращает начальный индекс указанного |
подстрока ( байты байта [ ОТ начинать целое число ] [ ДЛЯ считать целое число ] )
→ байта Извлекает подстроку из |
Удаляет самую длинную строку, содержащую только байты, появляющиеся в |
ОБА ] [ ОТ ] байты байта , bytesremoved байта )
→ байта Это нестандартный синтаксис для |
Доступны дополнительные функции для работы с двоичными строками.
перечислены в Таблица 9.12 . Некоторый из них используются внутри компании для реализации SQL -стандартные строковые функции, перечисленные в Таблица 9.11 .Таблица 9.12. Другие бинарные строковые функции
Функция Описание Примеры) |
---|
байта )
→ байта Удаляет самую длинную строку, содержащую только байты, появляющиеся в |
Экстракты н-й кусочек из двоичной строки. |
Экстракты н-й байт из двоичной строки. |
Возвращает количество байтов в двоичной строке. |
Возвращает количество символов в двоичной строке, предполагая
что это текст в данном |
Вычисляет MD5 хэш из двоичная строка с результатом, записанным в шестнадцатеричном формате. |
Наборы
н-й
немного в
двоичная строка в |
Наборы
н-й
байт в
двоичная строка в |
Вычисляет SHA-224 хэш двоичной строки. |
Вычисляет SHA-256 хэш двоичной строки. |
Вычисляет SHA-384 хэш двоичной строки. |
Вычисляет SHA-512 хэш двоичной строки. |
Извлекает подстроку из |
Функции получить_байт
и set_byte
нумеровать первый байт двоичной строки как байт 0.
Функции get_bit
и set_bit
число битов справа в каждом байте; например бит 0 является наименьшим
значащий бит первого байта, а 15-й бит — старший значащий бит
второго байта.
По историческим причинам функция мд5
возвращает шестнадцатеричное значение типа текст
тогда как SHA-2
тип возвращаемого значения функции байта
. Используйте функции кодировать
и декодировать
к
преобразовать между двумя. Например написать кодировать (sha256 ('abc'),
'шестнадцатеричный')
чтобы получить шестнадцатеричное текстовое представление,
или декодировать (md5 ('abc'), 'шестнадцатеричный')
получить
а байта
ценить.
Функции для преобразования строк между различными наборами символов
(кодировки) и для представления произвольных двоичных данных в текстовом виде.
форме, показаны в
Таблица 9.13
. Для этих
функции, аргумент или результат типа текст
выражается
в кодировке базы данных по умолчанию, а аргументы или результаты
тип байта
находятся в кодировке, названной другим аргументом.
Таблица 9.13. Функции преобразования текстовых/двоичных строк
Функция Описание Примеры) |
---|
Преобразует двоичную строку, представляющую текст в
кодирование |
Преобразует двоичную строку, представляющую текст в
кодирование |
Преобразует |
Кодирует двоичные данные в текстовое представление; поддерживается |
Декодирует двоичные данные из текстового представления; поддерживается |
кодировать
и декодировать
функции поддерживают следующие текстовые форматы:
- base64
base64
формат такой из RFC 2045 Раздел 6. 8 . Согласно RFC, закодированные строки разбито на 76 символов. Однако вместо MIME CRLF маркер конца строки, для обозначения конца строки используется только новая строка.декодировать
функция игнорирует возврат каретки, символы новой строки, пробела и табуляции. В противном случае возникает ошибка поднял, когдадекодировать
предоставляется недействительным данные base64 — в том числе, когда неверное заполнение в конце.- побег
побег
формат преобразует нулевые байты и байты со старшим битом, установленным в восьмеричные escape-последовательности (\
ннн
), и он удваивается обратная косая черта. Другие значения байтов представлены буквально.декодировать
функция вызовет ошибку, если за обратной косой чертой не следует ни вторая обратная косая черта, ни три восьмеричные цифры; он принимает другие значения байтов без изменений.- шестигранник
шестигранник
формат представляет каждые 4 бита данные в виде одной шестнадцатеричной цифры,0
черезф
, записывая старший разряд каждый байт сначала.кодировать
выходы функций ва
—ф
шестнадцатеричные цифры в нижнем случай. Поскольку наименьшая единица данных составляет 8 бит, всегда возвращается четное количество символов ккодировать
.декодировать
функция принимаета
—ф
символы в либо в верхнем, либо в нижнем регистре. Возникает ошибка когдадекодировать
даны неверные шестнадцатеричные данные — в том числе при задании нечетного количества символов.
См. также агрегатную функцию string_agg
в
Раздел 9.21
и функции больших объектов
в
Раздел 34.4
.
Функции и пакеты совместимости Oracle / PostgreSQL Extension Network
Этот пакет содержит несколько полезных строковых и символьных функций. Каждый поддерживает положительные и отрицательные смещения — т. е. смещение от конец строки. Например:
plvstr.left('abcdef',2) -> ab plvstr.left('abcdef',-2) -> abcd plvstr.substr('abcdef',1,1) -> a plvstr.substr('abcdef',-1,1) -> f plvstr.substr('abcde',-2,1) -> д
plvstr.normalize(str text) — нормализовать строку — заменить белые символы на пробел, заменить пробелы на пробел
plvstr.is_prefix(str text, prefix text, cs bool) — возвращает true, если префикс является префиксом строки
plvstr. is_prefix(текст строки, текст префикса) — возвращает true, если префикс является префиксом строки
plvstr.is_prefix(str int, prefix int) — возвращает true, если префикс является префиксом строки
plvstr.is_prefix(str bigint, prefix bigint) — возвращает true, если префикс является префиксом строки
plvstr.substr(str text, start int, len int) — возвращает подстроку, начатую в start_in, в конец
plvstr.substr(str text, start int) — возвращает подстроку, начатую в start_in, в конец
plvstr.instr(str text, patt text, start int, nth int) — Поиск шаблона в строке
plvstr.instr(str text, patt text, start int) — Поиск шаблона в строке
plvstr.instr(str text, patt text) — Поиск шаблона в строке
plvstr.lpart(str text, div text, start int, nth int, all_if_notfound bool) — вызовите эту функцию, чтобы вернуть левую часть строки
plvstr. lpart(str text, div text, start int, nth int) — вызовите эту функцию, чтобы вернуть левую часть строки.
plvstr.lpart(str text, div text, start int) — вызовите эту функцию, чтобы вернуть левую часть строки.
plvstr.lpart(str text, div text) — вызовите эту функцию, чтобы вернуть левую часть строки.
plvstr.rpart(str text, div text, start int, nth int, all_if_notfound bool) — вызовите эту функцию, чтобы вернуть правую часть строки.
plvstr.rpart(str text, div text, start int, nth int) — вызовите эту функцию, чтобы вернуть правую часть строки.
plvstr.rpart(str text, div text, start int) — вызовите эту функцию, чтобы вернуть правую часть строки.
plvstr.rpart(str text, div text) — вызовите эту функцию, чтобы вернуть правую часть строки.
plvstr.lstrip(str text, substr text, num int) — вызовите эту функцию, чтобы удалить символы с начала
plvstr. lstrip(str text, substr text) — вызовите эту функцию, чтобы удалить символы с начала
plvstr.rstrip(str text, substr text, num int) — вызов этой функции для удаления символов с конца
plvstr.rstrip(str text, substr text) — вызов этой функции для удаления символов с конца
plvstr.rvrs(str text, start int, _end int) — Перевернуть строку или часть строки
plvstr.rvrs(str text, start int) — Перевернуть строку или часть строки
plvstr.rvrs(str text) — Перевернуть строку или часть строки
plvstr.left(str text, n int) — возвращает первые символы num_in. Вы можете использовать отрицательный num_in
plvstr.right(str text, n int) — Возвращает последние num_in символов. Вы можете использовать отрицательный num_ni
plvstr.swap(str text, replace text, start int, lengh int) — заменить подстроку в строке указанной строкой
plvstr. swap(str text, replace text) — заменить подстроку в строке указанной строкой
plvstr.betwn(str text, start int, _end int, inclusive bool) — найти подстроку между начальным и конечным местоположениями
plvstr.betwn(str text, start text, _end text, startnth int, endnth int, inclusive bool, gotoend bool) — найти подстроку между начальным и конечным местоположениями
plvstr.betwn(str text, start text, _end text) — найти подстроку между начальным и конечным местоположениями
plvstr.betwn(str text, start text, _end text, startnth int, endnth int) — найти подстроку между начальным и конечным местоположениями
plvchr.nth(str text, n int) — вызовите эту функцию, чтобы вернуть N-й символ в строке.
plvchr.first(str text) — вызовите эту функцию, чтобы вернуть первый символ в строке.
plvchr.last(str text) — вызовите эту функцию, чтобы вернуть последний символ в строке.