One place for hosting & domains

      PostgreSQL

      Установка и использование PostgreSQL на Ubuntu 18.04


      Введение

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

      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 на вашем сервере с помощью следующей команды:

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

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

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

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

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

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

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

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

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

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

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

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

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

      Если же вы предпочитаете использовать 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:

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

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

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

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

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

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

      • sudo -u postgres createdb sammy

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

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

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

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

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

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

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

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

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

      Output

      You 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 и ограничение, требующее, чтобы значение было одним из восьми возможных вариантов. Последняя команда создает столбец даты, которая указывает дату установки оборудования.

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

      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. Оно отслеживает следующий номер последовательности и создается автоматически для столбцов данного типа.

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

      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:



      Source link

      Como Instalar e Utilizar o PostgreSQL no Ubuntu 18.04


      Introdução

      Sistemas de gerenciamento de banco de dados relacionados são um componente fundamental de muitos sites e aplicativos. Eles fornecem uma maneira estruturada de armazenar, organizar e acessar informações.

      O PostgreSQLou Postgres é um sistema de gerenciamento de banco de dados relacionados que fornece uma implementação da linguagem estruturada SQL. É uma escolha popular para muitos projetos pequenos e grandes e tem a vantagem de ser compatível com padrões e ter muitas funcionalidades avançadas como transações confiáveis e simultaneidade sem bloqueios de leitura.

      Este guia demonstra como instalar o Postgres em uma instância Ubuntu 18.04 VPS e também fornece instruções para a administração básica de banco de dados.

      Pré-requisitos

      Para acompanhar este tutorial, você precisará de um servidor Ubuntu 18.04 que tenha sido configurado seguindo nosso guia Configuração Inicial de Servidor para Ubuntu 18.04[. Após concluir este tutorial pré-requisito, seu servidor deve ter um usuário não-root com permissões sudo e um firewall básico.

      Passo 1 — Instalando o PostgreSQL

      Os repositórios padrão do Ubuntu contêm pacotes Postgres, para que você possa instalar esses usando o sistema de empacotamento apt.

      Uma vez que essa é a primeira vez que você usa o apt nesta sessão, atualize seu índice de pacotes local. Então, instale o pacote Postgres jutamente com um pacote -contrib que adiciona alguns serviços e funcionalidade adicionais:

      • sudo apt update
      • sudo apt install postgresql postgresql-contrib

      Agora que o software está instalado, podemos examinar como ele funciona e como ele pode ser diferente de sistemas similares de gerenciamento de banco de dados que você possa ter usado.

      Passo 2 — Usando as Roles PostgreSQL e Bancos de Dados

      Por padrão, o Postgres usa um conceito chamado “roles” para lidar com a autenticação e autorização. Essas são, de certa forma, semelhantes a contas regulares estilo Unix, mas o Postgres não distingue entre os usuários e os grupos e, ao invés disso, prefere o termo “role” mais flexível.

      Após a instalação, o Postgres é configurado para usar a autenticação ident, o que significa que ele associa os roles com uma conta do sistema Unix/Linux que combine. Se um role existe no Postgres, um nome de usuário Unix/Linux com o mesmo nome é capaz de fazer login como aquele role.

      O procedimento de instalação criou uma conta de usuário chamada postgres que está associada ao role padrão do Postgres. Para utilizar o Postgres, você pode logar naquela conta.

      Existem algumas maneiras de utilizar essa conta para acessar o Postgres.

      Mudando para a Conta postgres

      Mude para a conta postgres no seu servidor digitando:

      Agora você pode acessar um prompt Postgres imediatamente digitando:

      Isso irá logar você no prompt do PostgreSQL, e daqui você está livre para interagir com o sistema de gerenciamento de banco de dados imediatamente.

      Saia do prompt do PostgreSQL digitando:

      Isso irá trazer você de volta ao prompt de comando do Linux postgres.

      Acessando um Prompt do Postgres Sem Mudar de Contas

      Você também pode executar o comando que você quiser com a conta postgres diretamente com o sudo.

      Por exemplo, no último exemplo, você foi instruído a ir ao prompt do Postgres trocando primeiramente para o usuário postgres e então executando o psql para abrir o prompt do Postgres. Você poderia fazer isso em um passo executando o comando único psql como usuário postgres com sudo, dessa forma:

      Isso irá logar você diretamente no Postgres sem o shell bash intermediário.

      Novamente, você pode sair da sessão interativa Postgres digitando:

      Muitas formas de uso requerem mais de um role Postgres. Leia para aprender a configurá-los.

      Passo 3 — Criando um Novo Role

      Atualmente, você tem o role postgres configurado no banco de dados. Você pode criar novos roles na linha de comando com o comando createrole. A flag --interactive irá te solicitar o nome do novo role e também perguntar se ele deveria ter permissões de superusuário.

      Se você estiver logado com a conta postgres, você pode criar um novo usuário digitando:

      Se, ao invés disso, você preferir usar o sudo para cada comando sem mudar da sua conta usual, digite:

      • sudo -u postgres createuser --interactive

      O script irá te solicitar algumas escolhas e, com base nas suas respostas, executar os comandos corretos do Postgres para criar um usuário nas suas especificações.

      Output

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

      Você pode ter mais controle passando algumas bandeiras adicionais. Verifique as opções olhando para a página man:

      Sua instalação do Postgres agora tem um novo usuário, mas você ainda não adicionou nenhum banco de dados. A próxima seção descreve este processo.

      Passo 4 — Criando um Novo Banco de Dados

      Outra suposição que o sistema de autenticação do Postgres faz por padrão é que para qualquer role usado para logar, esse role terá um banco de dados com o mesmo nome que ele pode acessar.

      Isso significa que, se o usuário que você criou na última seção for chamado sammy, esse role irá tentar se conectar a um banco de dados que também seja chamado “sammy” por padrão. Você pode criar o banco de dados apropriado com o comando createdb.

      Se você estiver logado com a conta postgres, você digitaria algo como:

      Se, ao invés disso, você preferir usar o sudo para cada comando sem mudar da sua conta usual, você digitaria:

      • sudo -u postgres createdb sammy

      Esta flexibilidade proporciona vários caminhos para a criação de bancos de dados conforme necessário.

      Passo 5 — Abrindo um Prompt do Postgres com o Novo Role

      Para logar com a autenticação baseada no ident, você precisará de um usuário Linux com o mesmo nome que seu role e banco de dados do Postgres.

      Se você não tiver um usuário do Linux que combine disponível, você pode criar um com o comando adduser. Você terá que fazer isso através da sua conta não-root com privilégios sudo (ou seja, não logado como o usuário postgres):

      Uma vez que essa nova conta estiver disponível, você pode ou mudar e se conectar ao banco de dados digitando:

      Ou você pode fazer isso em linha:

      Este comando irá logar você automaticamente, supondo que todos os componentes tenham sido configurados corretamente.

      Se você quiser que seu usuário se conecte a um banco de dados diferente, você pode fazer isso especificando o banco de dados dessa forma:

      Uma vez logado, você pode verificar sua informação de conexão atual digitando:

      Output

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

      Isso é útil se você estiver se conectando a bancos de dados fora do padrão ou com usuários que não sejam padrão.

      Passo 6 — Criando e Deletando Tabelas

      Agora que você sabe se conectar ao sistema de banco de dados do PostgreSQL, você pode aprender algumas tarefas básicas de gerenciamento do Postgres.

      Primeiro, crie uma tabela para armazenar alguns dados. Como um exemplo, uma tabela que descreva alguns equipamentos do playground.

      A sintaxe básica para este comando é a seguinte:

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

      Como você pode ver, esses comandos dão à tabela um nome e então definem as colunas, além do tipo de coluna e o comprimento máximo dos dados do campo. Você também pode adicionar de modo opcional tabelas de restrições para cada coluna.

      Você pode aprender mais sobre como criar e gerenciar tabelas no Postgres aqui.

      Para fins demonstrativos, crie uma tabela simples como essa:

      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
      );
      

      Estes comandos criarão uma tabela que inventaria o equipamento do playground. Isso começa com um ID do equipamento que é do tipo serial. Este tipo de dado é um número inteiro de incremento automático. Você também deu a essa coluna a restrição da primary key, que significa que os valores devem ser únicos e não nulos.

      Para duas das colunas (equip_id e install_date), os comandos não especificam um comprimento de campo. Isso é porque alguns tipos de coluna não requerem um comprimento específico porque o comprimento é implícito pelo tipo.

      Os dois comandos seguintes criam colunas para o type e color do equipamento respectivamente, cada um dos quais não pode ser vazio. O comando seguinte a esses cria uma coluna location e cria uma restrição que exige que o valor seja um de oito valores possíveis. O último comando cria uma coluna de data que grava a data na qual você instalou o equipamento.

      Você pode ver sua nova tabela digitando:

      Output

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

      Sua tabela do playground está aqui, mas também há algo chamado playground_equip_id_seq que é do tipo sequence. Esta é uma representação do tipo serial que você deu à sua coluna equip_id Isso mantém o rastro do próximo número na sequência e é criado automaticamente para colunas deste tipo.

      Se você quiser ver apenas a tabela sem a sequência, você pode digitar:

      Output

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

      Passo 7 — Adicionando, Consultando e Deletando Dados em uma Tabela

      Agora que você tem uma tabela, você pode inserir alguns dados nela.

      Como um exemplo, adicione um slide e um swing chamando a tabela na qual você queira adicionar, nomeando as colunas e então fornecendo dados para cada coluna, desta forma:

      • 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');

      Você deve tomar cuidado ao introduzir os dados para evitar alguns problemas comuns. Por exemplo, não envolva os nomes das colunas em aspas, mas os valores de coluna que você digitar precisam de aspas.

      Outra coisa para ficar atento é não digitar um valor para a coluna equip_id. Isso acontece porque isso é gerado automaticamente sempre que uma nova linha na tabela seja criada.

      Recupere a informação que você adicionou digitando:

      • 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)

      Aqui, você pode ver que seu equip_id foi preenchido com sucesso e que todos os seus outros dados foram organizados corretamente.

      Se o slide no playground falhar e você tiver que removê-lo, você também pode remover a linha da sua tabela digitando:

      • DELETE FROM playground WHERE type = 'slide';

      Consulte a tabela novamente:

      • SELECT * FROM playground;

      Output

      equip_id | type | color | location | install_date ----------+-------+--------+-----------+-------------- 2 | swing | yellow | northwest | 2018-08-16 (1 row)

      Você percebe que seu slide já não é uma parte da tabela.

      Passo 8 — Adicionando e Deletando Colunas de uma Tabela

      Após criar uma tabela, você pode modificá-la para adicionar ou remover colunas com facilidade. Adicione uma coluna para mostrar a última visita de manutenção para cada peça de equipamento digitando:

      • ALTER TABLE playground ADD last_maint date;

      Se você ver sua informação da tabela novamente, você verá que a nova coluna foi adicionada (mas nenhum dado foi adicionado):

      • SELECT * FROM playground;

      Output

      equip_id | type | color | location | install_date | last_maint ----------+-------+--------+-----------+--------------+------------ 2 | swing | yellow | northwest | 2018-08-16 | (1 row)

      Deletar uma coluna é também bastante simples. Se você descobrir que sua equipe de trabalho usa uma ferramenta separada para acompanhar o histórico de manutenção, você pode deletar da coluna digitando:

      • ALTER TABLE playground DROP last_maint;

      Isso apaga a coluna last_maint e quaisquer valores encontrados nela, mas deixa todos os outros dados intactos.

      Passo 9 — Atualizando os Dados em uma Tabela

      Até agora, você aprendeu a adicionar registros a uma tabela e como deletá-los, mas este tutorial ainda não cobriu como modificar os itens existentes.

      Você pode atualizar os valores de um item existente consultando o registro que você quiser e definindo a coluna para o valor que você deseja usar. Você pode consultar o registro “swing” (isto irá corresponder a cada swing na sua tabela) e alterar sua cor para “vermelho”. Isso pode ser útil se você der ao conjunto swing um trabalho de pintura:

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

      Você pode verificar se a operação foi bem sucedida consultando os dados novamente:

      • SELECT * FROM playground;

      Output

      equip_id | type | color | location | install_date ----------+-------+-------+-----------+-------------- 2 | swing | red | northwest | 2010-08-16 (1 row)

      Como você pode ver, seu slide agora está registrado como sendo vermelho.

      Conclusão

      Você agora está com o PostgreSQL configurado no seu servidor Ubuntu 18.04. No entanto, ainda há muito mais a aprender com o Postgres. Aqui estão mais alguns guias que cobrem como usar o Postgres:



      Source link

      Cómo instalar y utilizar PostgreSQL en Ubuntu 18.04


      Introducción

      Los sistemas de administración de bases de datos relacionales son un componente clave de una gran cantidad de aplicaciones y sitios web. Proporcionan una alternativa estructurada para almacenar la información, organizarla y acceder a ella.

      PostgreSQL, o Postgres, es un sistema de administración de bases de datos relacionales que proporciona una implementación del lenguaje de consulta SQL. Es una opción popular para muchos proyectos pequeños y grandes, y tiene la ventaja de cumplir con los estándares y ofrecer muchas características avanzadas, como transacciones confiables y simultaneidad sin bloqueos de lectura.

      En esta guía se muestra la forma de instalar Postgres en una instancia de VPS de Ubuntu 18.04 y también se proporcionan instrucciones para la administración básica de bases de datos.

      Requisitos previos

      Para completar este turorial, necesitará un servidor de Ubuntu 18.04 configurado conforme a nuestra guía de configuración inicial para servidores de Ubuntu 18.04. Una vez completado este tutorial de requisitos previos, su servidor debería contar con un usuario con permisos sudo no root y un firewall básico.

      Paso 1: Instalar PostgreSQL

      Los repositorios predeterminados de Ubuntu contienen paquetes de Postgres, para que pueda instalarlos utilizando el sistema de empaquetado apt.

      Dado que es la primera vez que utiliza apt en esta sesión, actualice su índice local de paquetes. Luego, instale el paquete de Postgres junto con un paquete -contrib, que agrega algunas utilidades y funcionalidades adicionales:

      • sudo apt update
      • sudo apt install postgresql postgresql-contrib

      Ahora que el software está instalado, podemos revisar su funcionamiento y la forma en que puede diferenciarse de otros sistemas de administración de bases de datos similares que pueda haber utilizado.

      Paso 2: Utilizar roles y bases de datos de PostgreSQL

      Por defecto, Postgress utiliza un concepto llamado “roles” para gestionar la autenticación y la autorización. Estos son, en algunos aspectos, parecidos a las cuentas normales de estilo Unix, pero Postgres no distingue entre los usuarios y los grupos, y en su lugar prefiere el término más flexible de “rol”.

      Tras la instalación, Postgres se configura para usar la autenticación ident. Esto significa que asocia los roles de Postgres con una cuenta de sistema Unix o Linux correspondiente. Si existe un rol dentro de Postgres, un nombre de usuario de Unix o Linux con el mismo nombre puede iniciar sesión ocupando ese rol.

      El procedimiento de instalación creó una cuenta de usuario llamada postgres, que se asocia con el rol predeterminado de Postgres. Para usar Postgres, puede iniciar sesión en esa cuenta.

      Existen algunas maneras de usar esta cuenta para acceder a Postgres.

      Cambiar a la cuenta de postgres

      Cambie a la cuenta de postgres en su servidor escribiendo lo siguiente:

      Ahora podrá acceder de inmediato a una linea de comandos de Postgres escribiendo lo siguiente:

      Esto le permitirá acceder a la línea de comandos de PostgreSQL y desde esta podrá interactuar de inmediato con el sistema de administración de bases de datos.

      Salga de la línea de comandos de PostgreSQL escribiendo lo siguiente:

      Con esto, regresará a la línea de comandos de Linux de postgres.

      Acceder a una línea de comandos de Postgres sin cambiar de cuenta

      También puede ejecutar el comando que desee con la cuenta de postgres de forma directa a través de sudo.

      Por ejemplo, en el último caso se le indicó acceder a la línea de comandos de Postgres pasando primero al usuario de postgres y luego ejecutando psql para abrir la línea de comandos de Postgres. Puede realizarlo en un solo paso ejecutando el comando único psql como usuario de postgres con sudo, como se muestra:

      Esto le permitirá iniciar sesión de forma directa en Postgres sin el shell bash intermediario entre ellos.

      De nuevo, puede salir de la sesión interactiva de Postgres escribiendo lo siguiente:

      Para muchos casos de uso se requiere más de un rol de postgres. Continúe leyendo para saber como configurar estos roles.

      Paso 3: Crear un nuevo rol

      En este momento, solo tiene el rol de postgres configurado dentro de la base de datos. Puede crear nuevos roles desde la línea de comandos con el comando createrole. El indicador --interactive le solicitará el nombre del nuevo rol y también le preguntará si debería tener permisos de superusuario.

      Si inició sesión a través de la cuenta de postgres, puede crear un nuevo usuario escribiendo lo siguiente:

      Si, como alternativa, prefiere usar sudo para cada comando sin dejar de usar su cuenta normal, escriba lo siguiente:

      • sudo -u postgres createuser --interactive

      El script le mostrará algunas opciones y, según sus respuestas, ejecutará los comandos correctos de Postgres para crear un usuario conforme a sus especificaciones.

      Output

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

      Puede obtener un mayor control pasando algunos indicadores adicionales. Consulte las opciones visitando la página de man:

      Ahora su instalación de Postgres tiene un usuario nuevo, pero aún no agregó bases de datos. En la sección siguiente se describe este proceso.

      Paso 4: Crear una nueva base de datos

      Otra suposición que el sistema de autenticación de Postgres realiza por defecto es que para cualquier rol utilizado en el inicio de sesión habrá una base de datos con el mismo nombre al que este podrá acceder.

      Esto significa que, si el usuario que creó en la última sección se llama sammy, ese rol intentará conectarse con una base de datos que por defecto también se llama “sammy”. Puede crear la base de datos apropiada con el comando createdb.

      Si inició sesión a través de la cuenta de postgres, escribiría algo similar a lo siguiente:

      Si, como alternativa, prefiere utilizar sudo para cada comando sin dejar de emplear su cuenta normal, escribiría lo siguiente:

      • sudo -u postgres createdb sammy

      Esta flexibilidad ofrece varias vías para crear bases de datos cuando sea necesario.

      Paso 5: Abrir una línea de comandos de Postgres con el nuevo rol

      Para iniciar sesión con la autenticación basada en ident, necesitará un usuario de Linux con el mismo nombre de su rol y su base de datos de Postgres.

      Si no tiene un usuario disponible de Linux que coincida, puede crear uno con el comando adduser. Deberá hacerlo desde su cuenta no root con privilegios sudo (es decir, sin iniciar sesión como usuario de postgres):

      Una vez que esté disponible esta cuenta nueva, podrá cambiar y conectarse a la base de datos escribiendo lo siguiente:

      También podrá hacerlo de forma directa:

      Este comando le permitirá iniciar sesión de forma automática, suponiendo que todos los componentes se hayan configurado de forma correcta.

      Si desea que su usuario se conecte a una base de datos diferente, puede lograrlo especificando la base de datos de esta manera:

      Ya que inició sesión, puede verificar la información de su conexión actual escribiendo lo siguiente:

      Output

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

      Esto resultará útil si se conecta a bases de datos no predeterminadas o con usuarios no predeterminados.

      Paso 6: Crear y eliminar tablas

      Ahora que sabe cómo conectarse al sistema de bases de datos de PostgreSQL, puede aprender algunas tareas básicas de administración de Postgres.

      Primero, cree una tabla para almacenar datos. A modo de ejemplo, puede ser una tabla en la que se describan algunos equipos para áreas recreativas.

      La sintaxis básica de este comando es la siguiente:

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

      Como puede observar, estos comandos otorgan un nombre a la tabla y luego definen las columnas, el tipo de columna y la extensión máxima de los datos de campo. De manera opcional, también puede añadir restricciones de tabla para cada columna.

      Podrá obtener más información sobre cómo crear y administrar tablas en Postgres aquí.

      Para fines demostrativos, cree una tabla sencilla como la siguiente:

      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
      );
      

      Con estos comandos se creará una tabla que hará un inventario de los equipos para áreas recreativas. Esto comienza con un ID de equipo, que es del tipo serial. Este tipo de dato es un número entero que se incrementa de forma automática. También asignó a esta columna la restricción de primary key , lo cual significa que los valores deben ser únicos y no nulos.

      Para dos de las columnas (equip_id e install_date), los comandos no especifican una extensión de campo. Esto se debe a que algunos tipos de columna no requieren una extensión específica porque la extensión está implícita en el tipo.

      Con los dos comandos próximos se crean columnas para type y color del equipo respectivamente. Estas no pueden estar vacías. Después de esto, el comando crea una columna location y una restricción según la cual el valor debe ser uno de los ocho posibles. Con el último comando, se crea una columna de fecha en la cual se registra la fecha en la que usted instaló el equipo.

      Puede ver su tabla nueva escribiendo lo siguiente:

      Output

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

      Su tabla de áreas de recreación se encuentra aquí, pero también existe algo llamado playground_equip_id_seq que responde al tipo sequence. Esto es una representación del tipo serial que usted atribuyó a su columna de equip_id. Esto realiza un seguimiento del número que sigue en la secuencia y se genera de forma automática para columnas de este tipo.

      Si desea ver solo la tabla sin la secuencia, puede escribir lo siguiente:

      Output

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

      Paso 7: Agregar, consultar y eliminar datos en una tabla

      Ahora que dispone de una tabla, puede insertar datos en ella.

      A modo de ejemplo, agregue un tobogán y un columpio llamando a la tabla en la que desea realizar la adición, nombre las columnas y luego proporcione datos para cada una de ellas, como se muestra:

      • 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');

      Debe tener cuidado al ingresar los datos para evitar algunos errores comunes. Para empezar, no escriba los nombres de las columnas entre comillas. Estás sí se necesitarán para los valores de la columna que ingresó.

      Otro aspecto que debe tener en cuenta es no ingresar un valor para la columna equip_id. Esto se debe a que se genera de forma automática cuando se crea una nueva fila en la tabla.

      Recupere la información que agregó escribiendo lo siguiente:

      • 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)

      Aquí, puede ver que su equip_id se completó con éxito y que todos sus otros datos se organizaron de forma correcta.

      Si el tobogán del área de recreación se daña y tiene que eliminarlo, también puede eliminar la fila de su tabla escribiendo lo siguiente:

      • DELETE FROM playground WHERE type = 'slide';

      Consulte la tabla de nuevo:

      • SELECT * FROM playground;

      Output

      equip_id | type | color | location | install_date ----------+-------+--------+-----------+-------------- 2 | swing | yellow | northwest | 2018-08-16 (1 row)

      Observará que su tobogán ya no se encuentra en la tabla.

      Paso 8: Agregar y eliminar columnas en una tabla

      Después de crear una tabla, puede modificarla para agregar o eliminar las columnas con relativa facilidad. Agregue una columna para mostrar la última visita de mantenimiento por cada equipo escribiendo lo siguiente:

      • ALTER TABLE playground ADD last_maint date;

      Si vuelve a visualizar la información de su tabla, observará que se agregó la nueva columna (pero no se ingresaron datos):

      • SELECT * FROM playground;

      Output

      equip_id | type | color | location | install_date | last_maint ----------+-------+--------+-----------+--------------+------------ 2 | swing | yellow | northwest | 2018-08-16 | (1 row)

      Eliminar una columna es igual de sencillo. Si determina que su equipo de trabajo utiliza una herramienta separada para dar seguimiento al historial de mantenimiento, puede eliminar la columna escribiendo lo siguiente:

      • ALTER TABLE playground DROP last_maint;

      Con esto, se eliminan la columna last_maint y los valores que se encuentren en ella, pero deja intactos todos los demás datos.

      Paso 9: Actualizar datos de una tabla

      Hasta ahora, a través de este tutorial aprendió a agregar registros a una tabla y a eliminarlos de ella, pero aún no se abordó la forma de modificar los registros existentes.

      Puede actualizar los valores de una entrada existente buscando el registro que desee y fijando el valor que prefiera utilizar para la columna. Puede consultar el registro “columpio” (coincidirá con *cada *columpio de su tabla) y cambiar el color a “rojo”. Esto podría resultar útil si pintara el columpio:

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

      Puede verificar la eficacia de la operación consultando los datos de nuevo:

      • SELECT * FROM playground;

      Output

      equip_id | type | color | location | install_date ----------+-------+-------+-----------+-------------- 2 | swing | red | northwest | 2010-08-16 (1 row)

      Como puede ver, ahora el color registrado de su tobogán será el rojo.

      Conclusión

      De esta manera, habrá configurado PostgreSQL en su servidor de Ubuntu 18.04. Sin embargo, aún queda *mucho *más por aprender con Postgres. A continuación, se ofrecen algunas guías más en las que se abarca el uso de Postgres:



      Source link