Глава 9. Функции и операторы

Содержание

9.1. Логические операторы
9.2. Функции и операторы сравнения
9.3. Математические функции и операторы
9.4. Строковые функции и операторы
9.5. Функции и операторы двоичных строк
9.6. Функции и операторы для работы с битовыми строками
9.7. Поиск по шаблону
9.7.1. LIKE
9.7.2. Регулярные выражения SIMILAR TO
9.7.3. Регулярные выражения POSIX
9.8. Функции форматирования данных
9.9. Операторы и функции даты/времени
9.9.1. EXTRACT, date_part
9.9.2. date_trunc
9.9.3. date_bin
9.9.4. AT TIME ZONE и AT LOCAL
9.9.5. Текущая дата/время
9.9.6. Задержка выполнения
9.10. Функции для перечислений
9.11. Геометрические функции и операторы
9.12. Функции и операторы для работы с сетевыми адресами
9.13. Функции и операторы текстового поиска
9.14. Функции генерирования UUID
9.15. XML-функции
9.15.1. Создание XML-контента
9.15.2. Условия с XML
9.15.3. Обработка XML
9.15.4. Отображение таблиц в XML
9.16. Функции и операторы JSON
9.16.1. Обработка и создание данных JSON
9.16.2. Язык путей SQL/JSON
9.16.3. Функции запросов SQL/JSON
9.16.4. JSON_TABLE
9.17. Функции для работы с последовательностями
9.18. Условные выражения
9.18.1. CASE
9.18.2. COALESCE
9.18.3. NULLIF
9.18.4. GREATEST и LEAST
9.19. Функции и операторы для работы с массивами
9.20. Диапазонные/мультидиапазонные функции и операторы
9.21. Агрегатные функции
9.22. Оконные функции
9.23. Функции поддержки MERGE
9.24. Выражения подзапросов
9.24.1. EXISTS
9.24.2. IN
9.24.3. NOT IN
9.24.4. ANY/SOME
9.24.5. ALL
9.24.6. Сравнение единичных строк
9.25. Сравнение табличных строк и массивов
9.25.1. IN
9.25.2. NOT IN
9.25.3. ANY/SOME (с массивом)
9.25.4. ALL (с массивом)
9.25.5. Сравнение конструкторов строк
9.25.6. Сравнение составных типов
9.26. Функции, возвращающие множества
9.27. Системные информационные функции и операторы
9.27.1. Функции получения информации о сеансе
9.27.2. Функции для проверки прав доступа
9.27.3. Функции для определения видимости
9.27.4. Функции для обращения к системным каталогам
9.27.5. Функции получения информации и адресации объектов
9.27.6. Функции получения комментариев
9.27.7. Функции проверки допустимости данных
9.27.8. Функции получения информации об идентификаторах транзакций и снимках состояния
9.27.9. Функции получения информации о фиксации транзакций
9.27.10. Функции управления данными
9.27.11. Функции получения информации о версии
9.27.12. Функции получения информации о сводках WAL
9.28. Функции для системного администрирования
9.28.1. Функции для управления конфигурацией
9.28.2. Функции для передачи сигналов серверу
9.28.3. Функции управления резервным копированием
9.28.4. Функции управления восстановлением
9.28.5. Функции синхронизации снимков
9.28.6. Функции управления репликацией
9.28.7. Функции управления объектами баз данных
9.28.8. Функции обслуживания индексов
9.28.9. Функции для работы с обычными файлами
9.28.10. Функции управления рекомендательными блокировками
9.29. Триггерные функции
9.30. Функции событийных триггеров
9.30.1. Получение изменений в конце команды
9.30.2. Обработка объектов, удалённых командой DDL
9.30.3. Обработка события перезаписи таблицы
9.31. Системные информационные функции

PostgreSQL предоставляет огромное количество функций и операторов для встроенных типов данных. В этой главе описаны основные из них, тогда как некоторые специальные функции описываются в других разделах документации. Кроме того, пользователи могут определять свои функции и операторы, как описано в Части V. Просмотреть все существующие функции и операторы можно в psql с помощью команд \df и \do, соответственно.

В этой главе типы аргументов и результата функции обозначаются так:

repeat ( text, integer ) → text

В данном случае она говорит, что функция repeat принимает один текстовый и один целочисленный аргумент и возвращает результат текстового типа. Стрелка вправо также указывает на результат в примере использования, например:

repeat('Pg', 4) → PgPgPgPg

Если для вас важна переносимость, учтите, что практически все функции и операторы, описанные в этой главе, за исключением простейших арифметических и операторов сравнения, а также явно отмеченных функций, не описаны в стандарте SQL. Тем не менее частично эта расширенная функциональность присутствует и в других СУБД SQL и во многих случаях различные реализации одинаковых функций оказываются аналогичными и совместимыми.