Сегодня в статье поговорим о том, как в PostgreSQL происходит преобразование или приведение типов. Но для начала скажем немного о самой PostgreSQL.
PostgreSQL — это система управления базами данных объектно-реляционной направленности. Обычные СУБД просто реляционной направленности. PostgreSQL из-за собственной объектной системы отлично ладит с объектно-ориентированными языками, например Java.
PostgreSQL распространяется бесплатно и с открытым исходным кодом, но это не мешает ей конкурировать по функциональности с коммерческими продуктами. Внутри нее спрятаны такие современные функции, как:
поддержка сложных запросов,
поддержка внешних ключей,
поддержка триггеров,
можно изменять представления,
поддерживает транзакционную целостность,
поддерживает многоверсионность,
и др.
PostgreSQL поддерживает несколько процедурных языков, например:
PL/pgSQL,
PL/Tcl,
PL/Perl,
PL/Python,
PL/PHP,
PL/V8,
PL/Ruby,
PL/Java,
и др.
Таким образом, зная какой-нибудь современный язык программирования, можно адаптировать эти знания для взаимодействия с PostgreSQL. Работать с этой СУБД довольно комфортно. Но самое главное, что она подойдет как для небольших проектов, так и для профессиональных и высоконагруженных. Мы не будем сегодня разбирать все возможности PostgreSQL, но на том, как происходит приведение или преобразование типов, остановимся поподробнее.
PostgreSQL: приведение или преобразование типов
Давайте отметим одно утверждение: приведение и преобразование типов в PostgreSQL — это одна и та же операция, высказанная разными словами.
Приведение типов в PostgreSQL — это осуществление преобразованияодного типа информации в другой. То есть у вас есть два типа разной информации, и, чтобы с ними было удобнее работать, нужно привести их к одному типу.
Приведение типов данных в PostgreSQL осуществляется двумя видами записи:
CAST (выражение AS тип)
или так:
выражение::тип
В обоих случаях:
«выражение» — это данные, которые нужно преобразовать;
«тип» — это тип данных, в который нужно преобразовать «выражение».
Нужно знать, что не каждый тип данных можно преобразовать в другой тип данных. К примеру, если взять строку типа данных «abed», тогда ее невозможно преобразовать такими способами в тип данных с двоичной последовательностью «bit».
Если вы пытаетесь преобразовать данные, которые невозможно преобразовать, тогда у вас возникнут ошибки в PostgreSQL. Ошибки бывают разные, но ни к чему хорошему они не приводят. Наиболее часто встречаются следующие преобразования:
символьные строки в числа,
числа в символьные строки,
тип даты или времени в тип «text»,
символьные строки в «text»,
и др.
Преобразование типов в PostgreSQL: функции
Чуть выше мы описали способ явного преобразования типов в PostgreSQL, но в этой СУБД типы можно преобразовать при помощи специальных функций. Иногда так удобнее.
Список часто используемых функций для преобразования типов данных в PostgreSQL:
«bit.fromint4(n)» — преобразование числа в битовую последовательность;
«bit.toint(b)» — приведение битовой последовательности в десятичное представление;
«to_cnar(n. g)» — преобразование числа в строку формата «g»;
«to_char(t.g)» — преобразование типа «timestamp» в строку формата «g»;
«to_date»(s.g) — преобразование строки типа даты «g» в значение типа «date»;
«to_number(s.g)» — преобразование строки типа даты «g» в значение типа «numeric»;
«to_timestamp(s.g)» — преобразование строки формата даты «g» в значение типа «timestamp»;
«timestamp(d)» — преобразование типа «data» в тип «timestamp».
Заключение
Приведение или преобразование типов данных в PostgreSQL нужно в разных случаях, например, при слиянии двух таблиц, когда в одних и тех же столбцах разных таблиц находятся разные типы данных. В этом случае сначала нужно осуществить преобразование типов, а только потом провести слияние таблиц.

SQL