Инструкция по установке PostgreSQL и её первоначальная настройка для 1С 8.3 под ОС Windows

image

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

Устанавливаем PostgreSQL в Ubuntu

Базы данных применяются в самых разных областях, а вот комфортное управление ими обеспечивает система управления. Многие юзеры останавливаются на PostgreSQL, инсталлируют ее в свою ОС и приступают к работе с таблицами. Далее мы бы хотели пошагово описать весь процесс установки, первого запуска и настройки упомянутого инструмента.

Шаг 1: Установка PostgreSQL

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

  1. Запустите «Терминал» любым удобным способом, например, через меню или зажатием комбинации клавиш Ctrl + Alt + T.
  2. Сначала отметим пользовательские хранилища, поскольку туда обычно в первую очередь выгружают самые свежие версии. Вставьте в поле команду sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list', а затем нажмите на Enter.
  3. Введите пароль от своей учетной записи.
  4. После этого используйте wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add - для добавления пакетов.
  5. Осталось только обновить системные библиотеки стандартной командой sudo apt-get update.
  6. Если же вы заинтересованы в получении последней доступной версии PostgreSQL из официального репозитория, требуется написать в консоли sudo apt-get install postgresql postgresql-contrib и подтвердить добавление файлов.

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

Шаг 2: Первый запуск PostgreSQL

Управление установленной СУБД тоже происходит через «Терминал» с помощью соответствующих команд. Обращение к созданному по умолчанию пользователю выглядит так:

  1. Введите команду sudo su - postgres и нажмите на Enter. Такое действие позволит вам перейти к управлению от лица созданной по умолчанию учетной записи, которая на текущий момент выступает в роли основной.
  2. Вход в консоль управления под видом используемого профиля осуществляется через psql. Разобраться с окружением вам поможет активация help — это покажет все доступные команды и аргументы.
  3. Просмотр информации о текущем сеансе PostgreSQL выполняется через conninfo.
  4. Выйти из окружения поможет команда q.

Теперь вы знаете о том, как выполнить вход в учетную запись и перейти в консоль управления, поэтому самое время переходить к созданию нового пользователя и его БД.

Шаг 3: Создание пользователя и базы данных

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

  1. Находясь в консоли под управлением профиля postgres (команда sudo su - postgres), напишите createuser --interactive, а затем задайте ему подходящее имя, вписав символы в соответствующую строку.
  2. Далее определитесь, хотите ли вы предоставить пользователю права суперпользователя для доступа ко всем системным ресурсам. Просто выберите подходящий вариант и переходите далее.
  3. Базу данных лучше назвать таким же именем, как была названа учетная запись, поэтому стоит использовать команду createdb lumpics, где lumpics — имя пользователя.
  4. Переход к работе с указанной базой данных происходит через psql -d lumpics, где lumpics — название БД.

Шаг 4: Создание таблицы и работа со строками

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

  1. После перехода к базе введите такой код:

    CREATE TABLE test ( equip_id serial PRIMARY KEY, type varchar (50) NOT NULL, color varchar (25) NOT NULL, location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')), install_date date );

    image

    Сначала указывается имя таблицы test (вы можете выбрать любое другое название). Далее описывается каждый столбец. Мы выбрали названия type varchar и color varchar только для примера, вам же доступно указание любого другого, но только с применением латинских символов. Цифры в скобках отвечают за размер столбца, что напрямую связано с помещающимися туда данными.

  2. После ввода остается только вывести таблицу на экран с помощью d.
  3. Вы видите простой проект, не содержащий в себе пока никакой информации.
  4. Новые же данные добавляются через команду INSERT INTO test (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2018-02-24'); Сначала указывается название таблицы, в нашем случае это test, затем перечисляются все столбцы, а в скобках указываются значения, обязательно в кавычках.
  5. Далее можете добавить еще одну строку, например, INSERT INTO test (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-02-24');
  6. Запустите таблицу через SELECT * FROM test;, чтобы оценить результат. Как видите, все расположилось правильно и данные внесены верно.
  7. Если же вам потребуется удалить какое-либо значение, делайте это через команду DELETE FROM test WHERE type = 'slide';, указав в кавычках нужное поле.

Шаг 5: Установка phpPgAdmin

Не всегда управление БД легко выполняется через консоль, поэтому лучше всего модернизировать ее, установив специальный графический интерфейс phpPgAdmin.

  1. Первоочередно через «Терминал» загрузите последние обновления для библиотек через sudo apt-get update.
  2. Установите веб-сервер Apache sudo apt-get install apache2.
  3. После инсталляции протестируйте его работоспособность и корректность синтаксиса с помощью sudo apache2ctl configtest. Если что-то пошло не так, ищите ошибку по описанию на официальном сайте Apache.
  4. Запустите сервер, введя sudo systemctl start apache2.
  5. Теперь, когда обеспечено корректное функционирование сервера, можно добавить библиотеки phpPgAdmin, загрузив их с официального хранилища через sudo apt install phppgadmin.
  6. Далее следует немного изменить конфигурационный файл. Откройте его через стандартный блокнот, указав gedit /etc/apache2/conf-available/phppgadmin.conf. Если документ доступен только для чтения, потребуется в команде перед gedit указать еще и sudo.
  7. Перед строкой «Require local» поставьте #, чтобы переделать ее в комментарий, а снизу введите Allow From all. Теперь доступ к адресу будет открыт для всех устройств сети, а не только для локального ПК.
  8. Перезапустите веб-сервер sudo service apache2 restart и можете смело переходить к работе с PostgreSQL.

В этой статье мы рассмотрели не только PostgreSQL, но и установку веб-сервера Apache, использующегося в объединении программного обеспечения LAMP. Если вы заинтересованы в обеспечении полноценного функционирования своих сайтов и других проектов, советуем ознакомиться с процессом добавления остальных компонентов, прочитав другую нашу статью по следующей ссылке.

Читайте также: Установка набора программ LAMP в Ubuntu

Мы рады, что смогли помочь Вам в решении проблемы. Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Postgres Professional Jan 11, 2016 · 4 min read

Компанией Постгрес Профессиональный подготовлены дистрибутивы PostgreSQL для Windows — 32bit и 64bit для версий 9.4.5 и 9.5.0.

Для установки 32 разрядной версии требуется Windows XP SP3 и выше, для установки 64 разрядной — Windows Vista 64bit и выше. Для его использования требуется Windows Vista и выше.

Для установки PosgreSQL на компьютер скачайте и запустите один из следующих файлов (скачивая эти файлы, Вы выражаете согласие с лицензией PostgreSQL):

  • PostgreSQL 9.4.5: x64 x86
  • PostgreSQL 9.5.0: x64 x86
  • pgAdmin3 1.20: portable x64 x86

Внимание! Если Вы ищете PostgreSQL для работы с продуктами 1С, Вам нужна специальная сборка для 1С.

Некоторые отличия нашей сборки PostgreSQL:

  • подбор параметров конфигурации сервера в зависимости от объема установленной памяти
  • решены проблемы с кодировкой не латинских сообщений
  • дополнительные ярлыки для управления сервером — стоп, старт, рестарт
  • фиксы критических багов (включены дополнительные патчи, которые исправляют проблему с правами доступа и критический баг с остановкой Postgres)

Это предварительная версия нашей сборки PosgreSQL. Данное ПО поставляются “как есть”, без какой-либо гарантии, явной или подразумеваемой.

Ваши замечания и предложения по нашим сборкам PostgreSQL и по программе установки присылайте по e-mail: info@postgrespro.ru

PostgreSQL распространяется по специальной лицензии PostgreSQL License, свободной open source лицензии, близкой к лицензиям BSD и MIT.

Portions Copyright (c) 1996–2015, The PostgreSQL Global Development Group

Portions Copyright (c) 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN “AS IS” BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

Данная версия PostgreSQL сервера может быть установлена на компьютеры с ОС Windows XP SP3 и выше. 64-разрядная версия PosgreSQL сервера может быть установлена только на 64 разрядную версию Windows.

В начале предлагается задать параметры установки сервера. Можно выбрать компоненты, которые будут установлены.

Если обнаружено, что PostgreSQL сервер уже установлен, то предлагается остановить сервер и обновить его. При этом все соединения с сервером будут отключены. Для определения существования сервера используются данные о предыдущих установках из реестра, поэтому, если Вы ранее запускали сервер нестандартно, он может остаться не обнаруженным.

При установке Вы можете задать путь для установки исполняемых файлов севера и путь к каталогу, в котором будут храниться данные. Если по указанному пути уже находятся данные, то будут использоваться они, запрос параметров сервера и инициализации базы данных проводиться не будет.

В процессе установки предлагается ввести параметры сервера — номер порта, имя супер пользователя, пароль и другие. Рекомендуем вводить имя пользователя и пароль только латинскими буквами. Пароль можно оставить и пустым.

Также предлагается провести некоторую оптимизацию параметров сервера исходя из установленной оперативной памяти (если ее больше 1Gb). Параметры сохраняются в файл postgresql.conf, который находится в папке с данными. Оптимизируются 2 параметра: shared_buffers и work_mem. Потом Вы можете самостоятельно изменять эти и другие параметры в зависимости от условий эксплуатации сервера.

После установки, сервер запускается и становится готовым к работе. Перезагрузка компьютера не требуется.

Для запуска сервера используется специальная встроенная учетная запись Windows: ‘NT AUTHORITYNetworkService’. Запуск службы Postgresql-9.4 от другого пользователя можно настроить после установки, например, через программу «Управление компьютером» в Windows.

После установки для сервера создаются ярлыки, которыми можно воспользоваться с помощью кнопки Пуск (если она есть в Вашей ОС).

  • SQL Shell (psql) — основное, «родное» консольное средство управления сервером и выполнения запросов.
  • Reload Configuration — перезагрузить конфигурацию сервера из файлов конфигурации. Следует отметить, что для некоторых параметров требуется перезагрузка сервера.
  • Restart Server — остановить и запустить сервер заново. Все активные соединения с сервером будут закрыты.
  • Stop Server — остановить сервер. Все активные соединения с сервером будут закрыты.
  • Start Server — запустить сервер.

Если Вы установили средство pgAdmin, то для него будут созданы свои ярлыки для запуска.

Для удаления сервера выберите ярлык Uninstall или можно использовать панель управления Windows. При удалении сервер останавливается, все активные соединения с сервером будут закрыты. Папка с данными не удаляется. Перезагрузка компьютера не требуется.

Tutorial

Введение

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

PostgreSQL, или Postgres, — это система управления реляционными базами данных, которая предоставляет собой реализацию языка запросов SQL. Она является популярным решением для множества небольших и крупных проектов и имеет ряд преимущество, включая соответствие стандартам и множество передовых функций, таких как надежность и параллельность операций без блокировки при чтении.

Настоящее руководство посвящено установке Postgres на VPS сервер с Ubuntu 18.04, а также содержит базовые рекомендации по администрированию баз данных.

Предварительные требования

Для выполнения данного руководства вам потребуется один сервер Ubuntu 18.04 с конфигурацией, выполненной согласно руководству Начальная настройка сервера на Ubuntu 18.04. После выполнения всех предварительных действий ваш сервер должен иметь пользователя без прав root с разрешениями sudo и базовый брандмауэр.

Шаг 1 — Установка PostgreSQL

Используемые по умолчанию репозитории Ubuntu содержат пакеты Postgres, поэтому вы можете устанавливать их с помощью системы управления пакетами apt.

Поскольку это первый запуск apt в этой сессии, необходимо обновить локальный индекс пакетов. После этого установите пакет Postgres вместе с пакетом -contrib, который содержит дополнительные утилиты и функциональные возможности:

sudo apt update sudo apt install postgresql postgresql-contrib 

После установки программного обеспечения мы можем переходить к изучению его работы и возможных отличий от аналогичных систем управления базами данных, которые вы, возможно, использовали.

Шаг 2 — Использование ролей и баз данных в PostgreSQL

По умолчанию Postgres использует концепцию “ролей” для выполнения аутентификации и авторизации. В некоторых аспектах они напоминают обычные учетные записи в Unix, однако Postgres не делает различий между пользователями и группами и предпочитает использовать более гибкий термин “роль”.

После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.

В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью Postgres. Чтобы использовать Postgres, вы можете войти в эту учетную запись.

Существует несколько способов использования этой учетной записи для доступа к Postgres.

Переключение на учетную запись postgres

Вы можете переключиться на учетную запись postgres на вашем сервере с помощью следующей команды:

sudo -i -u postgres 

Теперь вы можете немедленно получить доступ к командной строке Postgres с помощью следующей команды:

psql 

В результате вы можете получить доступ к командной строке postgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.

Закройте командную строку PostgreSQL с помощью следующей команды:

q 

В результате вы вернетесь в командную строку postgres в Linux.

Доступ к командной строке Postgres без переключения учетных записей

Также вы можете запустить необходимую вам команду с учетной записью postgres напрямую с помощью sudo.

Например, в последнем примере от вас требовалось перейти в командную строку Postgres с помощью переключения на пользователя postgres и последующего запуска psql, чтобы открыть командную строку Postgres. Вы можете сделать это в один прием с помощью отдельной команды psql, используя пользователя postgres с sudo следующим образом:

sudo -u postgres psql 

Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки bash.

Вы снова сможете выйти из интерактивной сессии Postgres с помощью следующей команды:

q 

Многие варианты использования требуют использования сразу нескольких ролей Postgres. Ниже вы узнаете, как выполнить настройку в таких случаях.

Шаг 3 — Создание новой роли

К настоящему моменту у вас есть только роль postgres, настроенная внутри базы данных. Вы можете создавать новые роли из командной строки с командой createrole. Флаг --interactive будет запрашивать имя новой роли, а также попросит указать, будут ли у этой роли права superuser.

Если вы выполнили вход в учетную запись postgres, то можете создать нового пользователя с помощью следующей команды:

createuser --interactive 

Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:

sudo -u postgres createuser --interactive 

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

Output

Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y

Вы можете получить дополнительный контроль с помощью дополнительных флагов. Посмотрите возможные варианты на странице man:

man createuser 

В результате этих действий у вас будет новый пользователь, но вам предстоит еще добавить базы данных. В следующем разделе описан этот процесс.

Шаг 4 — Создание новой базы данных

Еще одно предположение, которое система аутентификации Postgres использует по умолчанию, состоит в том, что для любой роли, используемой для входа, существует база данных с тем же именем, к который роль может получить доступ.

Это означает, что если созданный вами в последнем разделе пользователь будет иметь имя sammy, эта роль попытается подключиться к базе данных, которая также называется «sammy» по умолчанию. Вы можете создать соответствующую базу данных с помощью команды createdb.

Если вы используете учетную запись postgres, необходимо ввести следующее:

createdb sammy 

Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:

sudo -u postgres createdb sammy 

Подобная гибкость предоставляет несколько способов для создания баз данных в зависимости от необходимости.

Шаг 5 — Открытие командной строки Postgres с новой ролью

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

Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды adduser. Вы должны воспользоваться учетной записи без прав root с привилегиями sudo (т.е. не выполняя вход в качестве пользователя postgres):

sudo adduser sammy 

Когда новая учетная запись будет доступна, вы можете переключиться и подключиться к базе данных следующим образом:

sudo -i -u sammy psql 

Либо же вы можете сделать следующее:

sudo -u sammy psql 

Эта команда позволит выполнить вход автоматически, полагая, что все компоненты были настроены должным образом.

Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:

psql -d postgres 

После входа вы можете проверить данные о текущем подключении:

conninfo 
OutputYou are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432". 

Это полезно, если вы подключены к нестандартным базам данных или используете нестандартных пользователей.

Шаг 6 — Создание и удаление таблиц

Теперь, когда вы уже знаете, как подключиться к системе управления базами данных PostgreSQL, можно переходить к знакомству с основными задачами по управлению, которые решает Postgres.

Во-первых, создайте таблицу для хранения данных. Например, таблицу, где описано оборудование для детских площадок.

Базовый синтаксис этой команды выглядит следующим образом:

CREATE TABLE table_name (     column_name1 col_type (field_length) column_constraints,     column_name2 col_type (field_length),     column_name3 col_type (field_length) ); 

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

Вы можете узнать больше о том, как создавать и управлять таблицами в Postgres, здесь.

Чтобы продемонстрировать процесс, создайте простую таблицу:

CREATE TABLE playground (     equip_id serial PRIMARY KEY,     type varchar (50) NOT NULL,     color varchar (25) NOT NULL,     location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),     install_date date ); 

Эти команды создадут таблицу с описью оборудования для установки на игровых площадках. Она начинается с идентификатора оборудования, который имеет тип serial. Это тип данных представляет собой целое число с автоматическим инкрементированием. Вы также указали для этого столбца ограничение в виде primary key, что означает, что значения должны быть уникальными и не равны null.

Для двух из столбцов (equip_id и install_date) команды не указали длину поля. Это объясняется тем, что некоторые типы столбцов не требуют указания длины, поскольку длина подразумевается в зависимости от типа значения.

Следующие две команды создают столбцы type и color оборудования соответственно, каждый из которых не может быть пустым. После этого команда создает столбец location и ограничение, требующее, чтобы значение было одним из восьми возможных вариантов. Последняя команда создает столбец даты, которая указывает дату установки оборудования.

Вы можете просмотреть вашу новую таблицу, введя следующую команду:

d 
Output                  List of relations  Schema |          Name           |   Type   | Owner --------+-------------------------+----------+-------  public | playground              | table    | sammy  public | playground_equip_id_seq | sequence | sammy (2 rows) 

Ваша таблица игрового оборудования готова, но здесь есть что-то под названием playground_equip_id_seq с типом данных sequence. Это представление типа serial, который присвоен столбцу equip_id. Оно отслеживает следующий номер последовательности и создается автоматически для столбцов данного типа.

Если вы хотите только просмотреть таблицу без последовательности, можете ввести следующую команду:

dt 
Output          List of relations  Schema |    Name    | Type  | Owner --------+------------+-------+-------  public | playground | table | sammy (1 row) 

Шаг 7 — Добавление, запрос и удаление данных в таблице

Теперь, когда у вас есть таблица, вы можете ввести в нее данные .

В качестве примера добавьте строги swing (качели) и slide (горка), вызвав таблицу, куда вы хотите добавить данные, указав столбцы и предоставив данные для каждого столбца:

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2017-04-28'); INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-08-16'); 

Вы должны быть внимательны при вводе данных, чтобы не допустить нескольких общих проблем. Во-первых, оборачивайте в кавычки не названия столбцов, а значения в столбцах.

Еще один момент, который необходимо учитывать, состоит в том, что вы не должны указывать значения для столбца equip_id. Это объясняется тем, что они автоматически генерируются всякий раз, когда в таблице создается новая строка.

Получите добавленную вами информацию, введя следующую команду:

SELECT * FROM playground; 
Output equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+--------------         1 | slide | blue   | south     | 2017-04-28         2 | swing | yellow | northwest | 2018-08-16 (2 rows) 

Вы можете убедиться, что столбец equip_id уже заполнен успешно, а все другие данные были организованы корректно.

Если же строка slide в таблице разрывается, вы можете удалить строку из таблицы, использовав следующую команду:

DELETE FROM playground WHERE type = 'slide'; 

Запросите таблицу еще раз:

SELECT * FROM playground; 
Output equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+--------------         2 | swing | yellow | northwest | 2018-08-16 (1 row) 

Вы видите, что ваш строка slide уже не является частью таблицы.

Шаг 8 — Добавление и удаление столбцов таблицы

После создания таблицы ее легко можно изменить, добавляя или удаляя столбцы. Добавьте столбец для отображения даты последнего технического обслуживания для каждого элемента оборудования, введя следующую команду:

ALTER TABLE playground ADD last_maint date; 

Если вы снова просмотрите данные таблицы, то увидите, что новый столбец был добавлен (но не было добавлено данных):

SELECT * FROM playground; 
Output equip_id | type  | color  | location  | install_date | last_maint ----------+-------+--------+-----------+--------------+------------         2 | swing | yellow | northwest | 2018-08-16   | (1 row) 

Удаление столбца является таким же простым. Если вы обнаружите, что ваша команда использует отдельный инструмент для отслеживания истории обслуживания, то можете удалить столбец, введя следующую команду:

ALTER TABLE playground DROP last_maint; 

Эта команда удаляет столбец last_maint и любые значения внутри него, но оставляет все другие данные нетронутыми.

Шаг 9 — Обновление данных в таблице

Вы уже знаете, как добавлять записи в таблицу и удалять их, но в этом руководстве еще не было упомянуто изменений существующих записей.

Вы можете обновить значения существующей записи, запросив нужную вам запись и установите для столбца значение, которое вы хотите использовать. Вы можете запросить записи «swing» (это будет соответствовать каждой записи swing в таблице) и изменить цвет на «red». Это может быть полезным, если вы дали задание на покраску качелей:

UPDATE playground SET color = 'red' WHERE type = 'swing'; 

Вы можете убедиться, что операция прошла успешной, запросив данные еще раз:

SELECT * FROM playground; 
Output equip_id | type  | color | location  | install_date ----------+-------+-------+-----------+--------------         2 | swing | red   | northwest | 2010-08-16 (1 row) 

Как видите, ваша горка теперь имеет красный цвет.

Заключение

Вы настроили PostgreSQL на сервере Ubuntu 18.04. Однако вам еще очень многое предстоит узнать о Postgres. Ниже вы найдете несколько руководств по использованию Postgres:

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

PostgreSQL или Postgres, — это система управления реляционными базами данных, которая предоставляет собой реализацию языка запросов SQL. Она соответствует стандартам и обладает множеством передовых функций, таких как надежность и параллельность операций без блокировки при чтении.

В этом обучающем руководстве мы рассмотрим, как установить Postgres на сервер Ubuntu 20.04. Также в нем содержится ряд инструкций для администрирования базы данных.

Установка PostgreSQL

Используемые по умолчанию репозитории Ubuntu содержат пакеты Postgres, поэтому вы можете устанавливать их с помощью системы управления пакетами apt.

Если вы еще не сделали этого, обновите локальный индекс пакетов вашего сервера:

sudo apt update

После этого установите пакет Postgres вместе с пакетом -contrib, который содержит дополнительные утилиты и функциональные возможности:

sudo apt install postgresql postgresql-contrib

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

Использование ролей и баз данных в PostgreSQL

По умолчанию Postgres использует концепцию «ролей» для выполнения аутентификации и авторизации. В некоторых аспектах они напоминают обычные учетные записи в Unix, однако Postgres не делает различий между пользователями и группами и предпочитает использовать более гибкий термин “роль”.

После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.

В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью Postgres. Чтобы использовать Postgres, вы можете войти в эту учетную запись.

Существует несколько способов использования этой учетной записи для доступа к Postgres.

Переключение на учетную запись postgres

Вы можете переключиться на учетную запись postgres на вашем сервере с помощью следующей команды:

sudo -i -u postgres

Теперь вы можете немедленно получить доступ к командной строке PostgresSQL с помощью следующей команды:

psql

Теперь вы можете свободно взаимодействовать с СУБД по мере необходимости.

Закройте командную строку PostgreSQL с помощью следующей команды:

q

В результате вы вернетесь в командную строку postgres в Linux.

Доступ к командной строке Postgres без переключения учетных записей

Также вы можете запустить необходимую вам команду с учетной записью postgres напрямую с помощью sudo.

Например, в последнем примере от вас требовалось перейти в командную строку Postgres с помощью переключения на пользователя postgres и последующего запуска psql, чтобы открыть командную строку Postgres. Вы можете сделать это в один прием с помощью отдельной команды psql, используя пользователя postgres с sudo следующим образом:

sudo -u postgres psql

Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки bash.

Вы снова сможете выйти из интерактивной сессии Postgres с помощью следующей команды:

q

Многие варианты использования требуют использования сразу нескольких ролей Postgres. Ниже вы узнаете, как выполнить настройку в таких случаях.

Создание новой роли

К настоящему моменту у вас есть только роль postgres, настроенная внутри базы данных. Вы можете создавать новые роли из командной строки с командой createrole. Флаг --interactive будет запрашивать имя новой роли, а также попросит указать, будут ли у этой роли права суперпользователя.

Если вы выполнили вход в учетную запись postgres, то можете создать нового пользователя с помощью следующей команды:

createuser --interactive

Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:

sudo -u postgres createuser --interactive

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

Output  Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y

Вы можете получить дополнительный контроль с помощью дополнительных флагов. Посмотрите возможные варианты на странице man:

man createuser

В результате этих действий у вас будет новый пользователь, но вам предстоит еще добавить базы данных. В следующем разделе описан этот процесс.

Создание новой базы данных

Еще одно предположение, которое система аутентификации Postgres использует по умолчанию, состоит в том, что для любой роли, используемой для входа, существует база данных с тем же именем, к которой роль может получить доступ.

Это означает, что если созданный вами в последнем разделе пользователь будет иметь имя sammy, эта роль попытается подключиться к базе данных, которая также называется «sammy» по умолчанию. Вы можете создать соответствующую базу данных с помощью команды createdb.

Если вы используете учетную запись postgres, необходимо ввести следующее:

createdb sammy

Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:

sudo -u postgres createdb sammy

Подобная гибкость предоставляет несколько способов для создания баз данных в зависимости от необходимости.

Открытие командной строки Postgres с новой ролью

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

Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды adduser. Вы должны воспользоваться учетной записью без прав root с привилегиями sudo (т. е. не выполняя вход в качестве пользователя postgres):

sudo adduser sammy

Когда новая учетная запись будет доступна, вы можете переключиться и подключиться к базе данных следующим образом:

sudo -i -u sammy psql

Либо же вы можете сделать следующее:

sudo -u sammy psql

Эта команда позволит выполнить вход автоматически, полагая, что все компоненты были настроены должным образом.

Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:

psql -d postgres

После входа вы можете проверить данные о текущем подключении:

conninfo
Output  You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

Это полезно, если вы подключены к нестандартным базам данных или используете нестандартных пользователей.

Создание и удаление таблиц

Теперь, когда вы уже знаете, как подключиться к системе управления базами данных PostgreSQL, можно переходить к знакомству с основными задачами по управлению, которые решает Postgres.

Базовый синтаксис создания таблиц выглядит следующим образом:

CREATE TABLE table_name (     column_name1 col_type (field_length) column_constraints,     column_name2 col_type (field_length),     column_name3 col_type (field_length) );

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

Для демонстрационных целей необходимо создать следующую таблицу:

CREATE TABLE playground (     equip_id serial PRIMARY KEY,     type varchar (50) NOT NULL,     color varchar (25) NOT NULL,     location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),     install_date date );

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

Следующие две строки создают столбцы type и color оборудования соответственно, и ни один из них не может быть пустым. Следующая строка создает столбец location и ограничение, требующее, чтобы значение было одним из восьми возможных вариантов. Последняя строка создает столбец даты, которая указывает дату установки оборудования.

Для двух из столбцов (equip_id и install_date) команда не указывает длину поля. Это связано с тем, что для некоторых типов данных не требуется заданная длина, поскольку длина или формат являются подразумеваемыми.

Вы можете просмотреть вашу новую таблицу, введя следующую команду:

d
Output                    List of relations  Schema |          Name           |   Type   | Owner --------+-------------------------+----------+-------  public | playground              | table    | sammy  public | playground_equip_id_seq | sequence | sammy (2 rows)

Ваша таблица игрового оборудования готова, но здесь есть что-то под названием playground_equip_id_seq с типом данных sequence. Это представление типа serial, который присвоен столбцу equip_id. Оно отслеживает следующий номер последовательности и создается автоматически для столбцов данного типа.

Если вы хотите только просмотреть таблицу без последовательности, можете ввести следующую команду:

dt
Output            List of relations  Schema |    Name    | Type  | Owner --------+------------+-------+-------  public | playground | table | sammy (1 row) 

Мы подготовили таблицу и теперь можем использовать ее для тренировки управления данными.

Добавление, запрос и удаление данных в таблице

Вставим в таблицу данные, например, slide и swing. Для этого нужно вызвать желаемую таблицу, присвоить имена столбцам и задать данные для каждого столбца следующим образом:

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2017-04-28'); INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-08-16');

Вы должны быть внимательны при вводе данных, чтобы не допустить нескольких общих проблем. Во-первых, оборачивайте в кавычки не названия столбцов, а значения в столбцах.

Еще один момент, который необходимо учитывать, состоит в том, что вы не должны указывать значения для столбца equip_id. Генерирование выполняется автоматически при добавлении в таблицу новой строки.

Получите добавленную вами информацию, введя следующую команду:

SELECT * FROM playground;
Output   equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+--------------         1 | slide | blue   | south     | 2017-04-28         2 | swing | yellow | northwest | 2018-08-16 (2 rows)

Вы можете убедиться, что столбец equip_id уже заполнен успешно, а все другие данные были организованы корректно.

Если же строка slide в таблице разрывается, вы можете удалить строку из таблицы, использовав следующую команду:

DELETE FROM playground WHERE type = 'slide';

Запросите таблицу еще раз:

SELECT * FROM playground;
Output   equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+--------------         2 | swing | yellow | northwest | 2018-08-16 (1 row)

Обратите внимание, что строка slide уже не является частью таблицы.

Добавление и удаление столбцов таблицы

После создания таблицы вы можете изменить ее, добавив или удалив столбцы. Добавьте столбец для отображения даты последнего технического обслуживания для каждого элемента оборудования, введя следующую команду:

ALTER TABLE playground ADD last_maint date;

Если вы снова просмотрите данные таблицы, то увидите, что новый столбец был добавлен, но в него не были введены данные:

SELECT * FROM playground;
Output   equip_id | type  | color  | location  | install_date | last_maint ----------+-------+--------+-----------+--------------+------------         2 | swing | yellow | northwest | 2018-08-16   | (1 row)

Если вы обнаружите, что ваша команда использует отдельный инструмент для отслеживания истории обслуживания, то можете удалить столбец, введя следующую команду:

ALTER TABLE playground DROP last_maint;

Эта команда удаляет столбец last_maint и любые значения внутри него, но оставляет все другие данные нетронутыми.

Обновление данных в таблице

Вы уже знаете, как добавлять записи в таблицу и удалять их, но в этом руководстве еще не было упомянуто изменений существующих записей.

Вы можете обновить значения существующей записи, запросив нужную вам запись и установите для столбца значение, которое вы хотите использовать. Вы можете запросить запись swing (запрос выдаст все записи swing в вашей таблице) и изменить ее цвет на red. Это может быть полезно, если вы задали набору swing задание рисования:

UPDATE playground SET color = 'red' WHERE type = 'swing';

Вы можете убедиться, что операция прошла успешно, запросив данные еще раз:

SELECT * FROM playground;
Output   equip_id | type  | color | location  | install_date ----------+-------+-------+-----------+--------------         2 | swing | red   | northwest | 2018-08-16 (1 row)

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий