Language plpgsql что это
Функции, написанные на PL/pgSQL , определяются на сервере командами CREATE FUNCTION . Такая команда обычно выглядит, например, так:
CREATE FUNCTION somefunc(integer, text) RETURNS integer AS 'тело функции' LANGUAGE plpgsql;
Если рассматривать CREATE FUNCTION , тело функции представляет собой просто текстовую строку. Часто для написания тела функции удобнее заключать эту строку в доллары (см. Подраздел 4.1.2.4), а не в обычные апострофы. Если не применять заключение в доллары, все апострофы или обратные косые черты в теле функции придётся экранировать, дублируя их. Почти во всех примерах в этой главе тело функций заключается в доллары.
PL/pgSQL это блочно-структурированный язык. Текст тела функции должен быть блоком. Структура блока:
[метка>> ] [ DECLAREобъявления] BEGINоператорыEND [метка];
Каждое объявление и каждый оператор в блоке должны завершаться символом «;» (точка с запятой). Блок, вложенный в другой блок, должен иметь точку с запятой после END , как показано выше. Однако финальный END , завершающий тело функции, не требует точки с запятой.
Подсказка
Распространённой ошибкой является добавление точки с запятой сразу после BEGIN . Это неправильно и приведёт к синтаксической ошибке.
Метка требуется только тогда, когда нужно идентифицировать блок в операторе EXIT , или дополнить имена переменных, объявленных в этом блоке. Если метка указана после END , то она должна совпадать с меткой в начале блока.
Ключевые слова не чувствительны к регистру символов. Как и в обычных SQL-командах, идентификаторы неявно преобразуются к нижнему регистру, если они не взяты в двойные кавычки.
Комментарии в PL/pgSQL коде работают так же, как и в обычном SQL. Двойное тире ( — ) начинает комментарий, который завершается в конце строки. Блочный комментарий начинается с /* и завершается */ . Блочные комментарии могут быть вложенными.
Любой оператор в выполняемой секции блока может быть вложенным блоком. Вложенные блоки используются для логической группировки нескольких операторов или локализации области действия переменных для группы операторов. Во время выполнения вложенного блока переменные, объявленные в нём, скрывают переменные внешних блоков с такими же именами. Чтобы получить доступ к внешним переменным, нужно дополнить их имена меткой блока. Например:
CREATE FUNCTION somefunc() RETURNS integer AS $$ > DECLARE quantity integer := 30; BEGIN RAISE NOTICE 'Сейчас quantity = %', quantity; -- Выводится 30 quantity := 50; -- -- Вложенный блок -- DECLARE quantity integer := 80; BEGIN RAISE NOTICE 'Сейчас quantity = %', quantity; -- Выводится 80 RAISE NOTICE 'Во внешнем блоке quantity = %', outerblock.quantity; -- Выводится 50 END; RAISE NOTICE 'Сейчас quantity = %', quantity; -- Выводится 50 RETURN quantity; END; $$ LANGUAGE plpgsql;
Примечание
Существует скрытый « внешний блок » , окружающий тело каждой функции на PL/pgSQL . Этот блок содержит объявления параметров функции (если они есть), а также некоторые специальные переменные, такие как FOUND (см. Подраздел 40.5.5). Этот блок имеет метку, совпадающую с именем функции, таким образом, параметры и специальные переменные могут быть дополнены именем функции.
Важно не путать использование BEGIN / END для группировки операторов в PL/pgSQL с одноимёнными SQL-командами для управления транзакциями. BEGIN / END в PL/pgSQL служат только для группировки предложений; они не начинают и не заканчивают транзакции. Функции и триггерные процедуры всегда выполняются в рамках транзакции, начатой во внешнем запросе — они не могут начать или завершить эту транзакцию, так как у них внутри нет контекста для выполнения таких действий. Однако блок содержащий секцию EXCEPTION создаёт вложенную транзакцию, которая может быть отменена, не затрагивая внешней транзакции. Подробнее это описано в Подразделе 40.6.6.
| Пред. | Наверх | След. |
| 40.1. Обзор | Начало | 40.3. Объявления |
Language plpgsql что это
PL/pgSQL это процедурный язык для СУБД PostgreSQL . Целью проектирования PL/pgSQL было создание загружаемого процедурного языка, который:
используется для создания функций и триггеров,
добавляет управляющие структуры к языку SQL ,
может выполнять сложные вычисления,
наследует все пользовательские типы, функции и операторы,
может быть определён как доверенный язык,
Функции PL/pgSQL могут использоваться везде, где допустимы встроенные функции. Например, можно создать функции со сложными вычислениями и условной логикой, а затем использовать их при определении операторов или в индексных выражениях.
В версии PostgreSQL 9.0 и выше PL/pgSQL устанавливается по умолчанию. Тем не менее это по-прежнему загружаемый модуль и администраторы, особо заботящиеся о безопасности, могут удалить его при необходимости.
41.1.1. Преимущества использования PL/pgSQL
PostgreSQL и большинство других СУБД используют SQL в качестве языка запросов. SQL хорошо переносим и прост в изучении. Однако каждый оператор SQL выполняется индивидуально на сервере базы данных.
Это значит, что ваше клиентское приложение должно каждый запрос отправлять на сервер, ждать пока он будет обработан, получать результат, делать некоторые вычисления, затем отправлять последующие запросы на сервер. Всё это требует межпроцессного взаимодействия, а также несёт нагрузку на сеть, если клиент и сервер базы данных расположены на разных компьютерах.
PL/pgSQL позволяет сгруппировать блок вычислений и последовательность запросов внутри сервера базы данных, таким образом, мы получаем силу процедурного языка и простоту использования SQL при значительной экономии накладных расходов на клиент-серверное взаимодействие.
Исключаются дополнительные обращения между клиентом и сервером
Промежуточные ненужные результаты не передаются между сервером и клиентом
В результате это приводит к значительному увеличению производительности по сравнению с приложением, которое не использует хранимых функций.
Кроме того, PL/pgSQL позволяет использовать все типы данных, операторы и функции SQL .
41.1.2. Поддерживаемые типы данных аргументов и возвращаемых значений
Функции на PL/pgSQL могут принимать в качестве аргументов все поддерживаемые сервером скалярные типы данных или массивы и возвращать в качестве результата любой из этих типов. Они могут принимать и возвращать именованные составные типы (строковый тип). Также есть возможность объявить функцию на PL/pgSQL , возвращающую record , это означает, что результатом является строковый тип, чьи столбцы будут определены в спецификации вызывающего запроса, как описано в Подразделе 7.2.1.4.
Использование маркера VARIADIC позволяет объявлять функции на PL/pgSQL с переменным числом аргументов. Это работает точно так же, как и для функций на SQL, как описано в Подразделе 36.4.5.
Функции на PL/pgSQL могут принимать и возвращать полиморфные типы anyelement , anyarray , anynonarray , anyenum и anyrange . В таких случаях фактические типы данных могут меняться от вызова к вызову, как описано в Подраздел 36.2.5. Пример показан в Подразделе 41.3.1.
Функции на PL/pgSQL могут возвращать « множества » (или таблицы) любого типа, которые могут быть возвращены в виде одного объекта. Такие функции генерируют вывод, выполняя команду RETURN NEXT для каждого элемента результирующего набора или RETURN QUERY для вывода результата запроса.
Наконец, при отсутствии полезного возвращаемого значения функция на PL/pgSQL может возвращать void .
Функции на PL/pgSQL можно объявить с выходными параметрами вместо явного задания типа возвращаемого значения. Это не добавляет никаких фундаментальных возможностей языку, но часто бывает удобно, особенно для возвращения нескольких значений. Нотация RETURNS TABLE может использоваться вместо RETURNS SETOF .
Конкретные примеры рассматриваются в Подразделе 41.3.1 и Подразделе 41.6.1.
| Пред. | Наверх | След. |
| Глава 41. PL/pgSQL — процедурный язык SQL | Начало | 41.2. Структура PL/pgSQL |
Записки программиста
PL/pgSQL — язык программирования, используемый для написания хранимых процедур и триггеров для PostgreSQL. Сказать по правде, впервые увидев код на PL/pgSQL, я испытал ужас. Хотя в коде и угадывались типичные конструкции процедурных языков программирования, выглядел он больно уж загадочно и вообще напоминал код на COBOL. Само собой разумеется, со временем это ощущение у меня прошло. Цель заметки — показать, что кода на PL/pgSQL не нужно бояться, и в целом язык довольно простой.
Сразу начнем с примера кода, создающего 100 временных таблиц:
DO $$
DECLARE
i INTEGER ;
BEGIN
FOR i IN 1 .. 100
LOOP
RAISE NOTICE ‘i = %’ , i;
EXECUTE ( ‘create temp table temp_table_’ || i || ‘(x int);’ ) ;
END LOOP ;
END $$;
Когда нужно просто выполнить код на PL/pgSQL, без объявления процедуры, этот код пишется в do-блоке, например:
DO $$ BEGIN /* тут ваш код */ END $$;
DO $$ DECLARE /* переменные */ BEGIN /* код */ END $$;
Все, что вы вводите в psql, должно заканчиваться точкой с запятой, поэтому она и стоит в конце. Два знака доллара нужны для того, чтобы пометить, где начинается, и где заканчивается код. В более общем случае можно использовать произвольную метку, начинающуюся и заканчивающуюся знаком доллара, лишь бы эта метка не встречалась в самом коде, например:
DO $ololo$ BEGIN /* тут ваш код */ END $ololo$;
Остальная часть приведенного ранее кода должна быть понятна любому программисту, поэтом перейдем к более сложному примеру:
DO $$
DECLARE
i INTEGER ;
j INTEGER ;
q TEXT ;
BEGIN
FOR i IN 1 .. 2800 LOOP
q = ‘create temp table temp_table_’ || i || ‘(‘ ;
FOR j IN 1 .. 400 LOOP
IF j <> 1 THEN
q = q || ‘,’ ;
END IF ;
q = q || ‘attr_’ || j || ‘ int’ ;
END LOOP ;
q = q || ‘);’ ;
EXECUTE q;
END LOOP ;
END $$;
Эта процедура создает очень много временных таблиц, каждая из которых имеет 400 столбцов. От предыдущего примера код отличается только использованием нескольких переменных, а также использованием условных операторов. Поэтому, думается, у вас не должно возникнуть сложностей с его пониманием.
Теперь рассмотрим такой код:
CREATE OR REPLACE FUNCTION gen_long_string ( len INT ) RETURNS TEXT AS $$
DECLARE
res TEXT : = ‘abcdefghijklmnopqrstuvwxyz’ ;
BEGIN
WHILE LENGTH ( res ) LOOP
res : = res || res;
END LOOP ;
RETURN SUBSTRING ( res , 1 , len ) ;
END
$$ LANGUAGE ‘plpgsql’ ;
Здесь объявляется процедура, генерирующая строку заданной длины. Помимо объявления процедуры также демонстрируется использование цикла while. Заметьте, что язык процедуры нужно указывать явно, что и делается в последней строке кода. Это связано с тем, что триггеры и хранимые процедуры для PostgreSQL можно писать не только на PL/pgSQL, но и на других языках, в частности, на Perl, Python и JavaScript. Кстати, кавычки в имени языка использовать не обязательно.
В следующем коде приводится пример конструкции select into, а также обработки исключений:
CREATE OR REPLACE FUNCTION pgpro_edition_safe ( ) RETURNS TEXT AS $$
DECLARE
ver TEXT ;
BEGIN
SELECT pgpro_edition ( ) INTO ver;
RETURN ver;
EXCEPTION WHEN OTHERS THEN
RAISE NOTICE ‘pgpro_edition() procedure doesn’ ‘t exist’ ;
RETURN ‘standard’ ;
END
$$ LANGUAGE ‘plpgsql’ ;
Если на сервере объявлена процедура с именем pgpro_edition, будет возвращен результат вызова этой процедуры. Если же ее нет, будет выведено предупреждение, и возвращен результат по-умолчанию.
Работа с массивами осуществляется как-то так:
SELECT byte_array_to_string_array(»);
byte_array_to_string_array
—————————-
(1 row)
*/
CREATE OR REPLACE FUNCTION byte_array_to_string_array ( bytes BYTEA [ ] )
RETURNS TEXT [ ] AS $$
DECLARE
strings TEXT [ ] ;
BEGIN
— IF array_length(bytes, 1) IS NULL THEN
IF bytes = ‘<>‘ THEN
RETURN ‘<>‘ ;
END IF ;
FOR i IN array_lower ( bytes , 1 ) .. array_upper ( bytes , 1 ) LOOP
strings [ i ] : = convert_from ( bytes [ i ] , ‘utf-8’ ) ;
END LOOP ;
RETURN strings;
END
$$ LANGUAGE ‘plpgsql’ IMMUTABLE;
Здесь массив элементов с типом bytea превращается в массив строк. Заметьте, как выполняется проверка на пустой массив. По неизвестным мне причинам для пустого массива процедура array_length вместо нуля возвращает null , отсюда и такой код.
Наконец, рассмотрим последний на сегодня пример:
DO $$
DECLARE
r RECORD ;
cnt INT ;
BEGIN
FOR r IN
SELECT table_name FROM information_schema . TABLES
WHERE table_schema = ‘pg_catalog’ AND table_type ! = ‘VIEW’
ORDER BY table_name DESC
LOOP
EXECUTE ‘select count(*) cnt FROM ‘ || r . table_name INTO cnt;
RAISE NOTICE ‘% %’ , r . table_name , cnt;
END LOOP ;
END $$;
Здесь выводятся все таблицы каталога PostgreSQL, а также количество записей в них. Очень удобный кусок кода, позволяющий определить, к каким изменениям в каталоге приводят те или иные действия. Код демонстрирует работу с типом record, а также итерацию по строкам, являющихся результатом select-запроса.
Как видите, все не так уж и сложно. Увы, в рамках одной заметки не представляется возможным рассказать про весь PL/pgSQL. Если вам хотелось бы изучить этот язык поглубже, могу порекомендовать официальную документацию PostgreSQL, а также книгу PostgreSQL Server Programming. Также не лишено смысла почитывать код расширений для PostgreSQL, ну хотя бы моих же ZSON и pg_protobuf.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.
PostgreSQL
PostgreSQL — это объектно-реляционная система управления базами данных (ORDBMS), наиболее развитая из открытых СУБД в мире. Имеет открытый исходный код и является альтернативой коммерческим базам данных.

«IT-специалист с нуля» наш лучший курс для старта в IT
Ранние версии системы были основаны на старой программе POSTGRES University, созданной университетом Беркли: так появилось название PostgreSQL. И сейчас СУБД иногда называют «Постгрес». Существуют сокращения PSQL и PgSQL — они тоже обозначают PostgreSQL.
СУБД позволяет гибко управлять базами данных (БД). С ее помощью можно создавать, модифицировать или удалять записи, отправлять транзакцию — набор из нескольких последовательных запросов на особом языке запросов SQL.
Кто пользуется PostgreSQL
- Бэкенд-разработчики, которым приходится взаимодействовать с базами данных при работе с «серверной» частью сайта.
- Администраторы и разработчики баз данных — специалисты, основная задача которых заключается в обслуживании и поддержке работоспособности базы.
- DevOps-инженеры, обслуживающие рабочую инфраструктуру проекта.
Профессия / 8 месяцев
IT-специалист с нуля
Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

Для чего нужна PostgreSQL

- Гибкий доступ к базам данных, их организация и хранение.
- Управление записями в базах данных: создание, редактирование и удаление, обновление версий и так далее.
- Просмотр нужной информации из базы по запросу, например для ее отправки на сайт или в интерфейс приложения.
- Отправка транзакций, последовательных запросов, собранных в подобие скрипта.
- Настройка и контроль доступа к той или иной информации, группировка пользователей по уровню прав.
- Контроль версий и организация одновременного доступа к базе из разных источников так, чтобы предотвратить сбои.
- Защита информации от возможных утечек и потерь.
- Контроль состояния базы в целом.
Преимущества PostgreSQL
Иногда СУБД называют бесплатным аналогом Oracle Database. Обе системы адаптированы под большие проекты и высокую нагрузку. Но есть разница: они по-разному хранят данные, предоставляют разные инструменты и различаются возможностями. Важная особенность PostgreSQL в том, что эта система — feature-rich: так называют проекты с широким функционалом.
Объектно-реляционная модель. Традиционно популярные СУБД — реляционные. Это значит, что данные, которые в них хранятся, представляются в виде записей, связанных друг с другом отношениями, — relations. Получаются связанные списки, которые могут иметь между собой те или иные отношения, — так и образуется таблица.
Существует еще одна популярная модель — объектная. Данные представляются в виде объектов, их атрибутов, методов и классов. Объектная модель поддерживает возможности, о которых мы подробно рассказывали в статье про ООП, например наследование.
PostgreSQL — объектно-реляционная СУБД. Это значит, что она поддерживает и объектный, и реляционный подход.

Станьте аналитиком данных и получите востребованную специальность
Поддержка множества типов данных. Еще одна особенность PostgreSQL — поддержка большого количества типов записи информации. Это не только стандартные целочисленные значения, числа с плавающей точкой, строки и булевы значения («да/нет»), но и денежный, геометрический, перечисляемый, бинарный и другие типы. PostgreSQL «из коробки» поддерживает битовые строки и сетевые адреса, массивы данных, в том числе многомерные, композитные типы и другие сложные структуры. В ней есть поддержка XML, JSON и NoSQL-баз.
При необходимости к СУБД можно подключить поддержку типов данных, которые нужны в конкретном проекте. В PostgreSQL есть несколько внутренних форматов, которые используются только в ней.
Работа с большими объемами. В большинстве СУБД, рассчитанных на средние и небольшие проекты, есть ограничения по объему базы и количеству записей в ней. В PostgreSQL ограничений нет.
Ограничения касаются только конкретных записей. Одна таблица может занимать не больше 32 Тб, а одна запись — 1,6 Тб. В одном поле записи может быть не больше 1 Гб данных, а максимальное количество полей зависит от типа и составляет от 250 до 1600 штук. Максимальных значений хватает, чтобы хранить в БД любые данные.
Поддержка сложных запросов. PostgreSQL работает со сложными, составными запросами. Система справляется с задачами разбора и выполнения трудоемких операций, которые подразумевают и чтение, и запись, и валидацию одновременно. Она медленнее аналогов, если речь заходит только о чтении, но в других аспектах превосходит конкурентов.
Написание функций на нескольких языках. В PostgreSQL можно писать собственные функции — пользовательские блоки кода, которые выполняют те или иные действия. Эта возможность есть практически в любых СУБД, но PostgreSQL поддерживает больше языков, чем аналоги. Кроме стандартного SQL, в PostgreSQL можно писать на C и C++, Java, Python, PHP, Lua и Ruby. Он поддерживает V8 — один из движков JavaScript, поэтому JS тоже можно использовать совместно с PgSQL. Реализована поддержка Delphi, Lisp и прочих редких языков. При необходимости можно расширить систему под другие ЯП.
Модификация SQL, которая используется в PostgreSQL, называется PL/pgSQL. Это процедурное расширение, которое поддерживает сложные вычисления и дополняет «классический» SQL новыми возможностями.
Читайте также SQL, R или Python: какой язык учить аналитику данных?
Одновременная модификация базы. Важная особенность PostgreSQL — возможность одновременного доступа к базе с нескольких устройств. В СУБД реализована клиент-серверная архитектура, когда база данных хранится на сервере, а доступ к ней осуществляется с клиентских компьютеров. Так, например, реализуются разнообразные сайты. Одна из возможных сложностей — ситуация, когда несколько человек одновременно модифицируют базу и нужно избежать конфликтов.
В PostgreSQL для этого используется технология MVCC — Multiversion Concurrency Control, многоверсионное управление параллельным доступом. Каждый пользователь получает снапшот — «снимок» базы, в который вносятся изменения. Только после фиксации транзакции они поступают в исходную базу данных. Пока человек вносит изменения, они не видны другим пользователям. Конфликтов не возникает, как и необходимости блокировать чтение или запись.
Соответствие ACID. ACID — это набор принципов для обеспечения целостности данных. Аббревиатура расшифровывается как Atomicity, Consistency, Isolation, Durability — атомарность, согласованность, изолированность, прочность. Если база данных соответствует этим принципам, она ведет себя максимально предсказуемо и надежно. В ней низок риск конфликта или непредвиденного поведения системы.
PostgreSQL соблюдает требования ACID благодаря технологии MVCC. Это делает систему надежной и безопасной в использовании, а данные — защищенными от возможных сбоев, ошибок и потерь.
Возможность расширения. Разработчик может написать для СУБД собственные типы и их преобразования, операции и функции, ограничения и индексы, собственный процедурный язык для запросов. PostgreSQL можно модифицировать практически под любую нестандартную задачу.
Высокая мощность и широкая функциональность. PostgreSQL — возможно, единственная бесплатная СУБД с открытым исходным кодом, которая рассчитана на работу с объемными и сложными проектами. Она мощная, производительная, способна эффективно работать с большими массивами данных. Есть примеры реального использования СУБД для баз данных в несколько петабайт с сотнями тысяч запросов в секунду. На главной странице официального сайта PostgreSQL называют «самой продвинутой бесплатной СУБД». Система действительно имеет высокую функциональность и не уступает платным продуктам.
Открытость. PostgreSQL — ПО с открытым исходным кодом, которое распространяется по свободной лицензии. Это означает, что любой разработчик может посмотреть, как написана система, или предложить для нее свои правки. СУБД разрабатывается сообществом энтузиастов и в определенной степени никому не принадлежит, а значит, ее можно свободно и без ограничений использовать в своих проектах.
На базе PostgreSQL существуют коммерческие продукты с платным доступом — ими обычно пользуются крупные компании, которым нужна дополнительная функциональность. Это, например, связь с Oracle Database или продвинутый веб-интерфейс для администрирования БД.
Минимальное количество багов. PostgreSQL — проект, который известен высоким качеством отладки. Каждая версия системы появляется в доступе только после полной проверки, поэтому СУБД очень стабильна. Частая проблема бесплатных проектов — новые версии с большим количеством багов, но в случае с PostgreSQL такой проблемы нет.
Согласно независимым автоматизированным исследованиям, в исходном коде СУБД есть одна ошибка на 39 000 строк кода. Это в пять раз меньше, чем в MySQL, и в пятьдесят раз меньше, чем в ядре операционной системы Linux.
Кроссплатформенность. Чаще всего PostgreSQL используют на серверах с операционными системами семейства Linux, но СУБД поддерживает и другие ОС. Ее можно установить в системы на базе Windows, BSD, macOS и Solaris. Кроме того, у PostgreSQL есть автономный веб-сервер PostgREST, с которым можно работать с помощью REST API. СУБД можно развернуть и в облаке.
PostgreSQL не имеет однозначных недостатков. Она подходит для проектов, где нужна мощная база данных с высокой функциональностью. Но для большинства приложений и сайтов требуется менее мощная и более быстрая, легковесная, простая в освоении СУБД. Обычно в таких случаях используется MySQL.
Недостатки
Несмотря на все достоинства этой выдающейся СУБД, у неё также есть некоторые недостатки:
Сложности при настройке. У PostgreSQL очень обширный набор возможностей. Очевидно, что такое разнообразие функций влечёт за собой множество настроек, что может вызвать затруднения у новичков. Корректная настройка базы данных требует глубокого понимания архитектуры и параметров.
Повышенное потребление ресурсов. В сравнении с некоторыми другими СУБД, PostgreSQL может потреблять больше ресурсов (включая оперативную память и процессорное время). Это особенно заметно при работе с большими объёмами данных и выполнении сложных запросов.
Отсутствие некоторых функций. По сравнению с определенными коммерческими аналогами PostgreSQL может немного уступать в функциональности.
Стоит отметить, что перечисленные недостатки в основном применимы к конкретным сценариям использования. В общем плане PostgreSQL остаётся одной из самых мощных и популярных открытых СУБД.
Как скачать и начать работу с PostgreSQL
Скачать программное обеспечение можно с официального сайта: на странице загрузки представлены готовые к установке пакеты для разных операционных систем. Там же есть ссылка на репозиторий, где в том числе можно посмотреть, как менялись версии проекта, и ознакомиться с новыми правками.
После скачивания потребуется место для размещения серверной части СУБД. Обычно для этого арендуются мощности веб-серверов хостингов.
Более сложный процесс — настройка и развертывание базы данных, управление ей. Для этого потребуются знания бэкенд-разработчика или администратора БД. В случае с PostgreSQL нужно заранее ознакомиться с документацией или мануалами. Также получить все перечисленные знания можно на курсах SkillFactory.
Создание таблицы
Для создания таблицы в PostgreSQL используется язык SQL (Structured Query Language). Вот пример запроса, который создаст простую таблицу с несколькими столбцами:
CREATE TABLE имя_таблицы ( столбец1_имя тип_данных_столбца1, столбец2_имя тип_данных_столбца2, . столбецN_имя тип_данных_столбцаN );
Пояснение к коду:
- имя_таблицы — это имя, которое вы хотите присвоить таблице;
- столбец1_имя , столбец2_имя , и так далее — это имена столбцов;
- тип_данных_столбца1 , тип_данных_столбца2 , и так далее — это типы данных для соответствующих столбцов.
Пример создания таблицы с именем users, содержащей столбцы id, username и email:
CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50), email VARCHAR(100) );
В этом примере используется тип данных SERIAL для автоматически генерируемого идентификатора, VARCHAR для строковых значений переменной длины.
После выполнения этого SQL-запроса, вам будет доступна новая таблица users с указанными столбцами. Это всего лишь базовый пример, и PostgreSQL поддерживает множество других типов данных и параметров настройки таблиц.
Data Scientist
Дата-сайентисты решают поистине амбициозные задачи. Научитесь создавать искусственный интеллект, обучать нейронные сети, менять мир и при этом хорошо зарабатывать. Программа рассчитана на новичков и плавно введет вас в Data Science.

Статьи по теме: