Создайте базу данных в PostgreSQL с помощью команды createdb

Sozdajte Bazu Dannyh V Postgresql S Pomos U Komandy Createdb



В этом руководстве мы узнаем о создании базы данных в PostgreSQL с помощью команды createdb.

Предпосылки:

Для выполнения действий, описанных в этом руководстве, вам потребуются следующие компоненты:

  • Правильно настроенная система Linux. Для тестирования рассмотрим настройка виртуальной машины Ubuntu с помощью VirtualBox .
  • Установил и настроил PostgreSQL. Узнать больше о установка PostgreSQL на Ubuntu .
  • Доступ к пользователь без полномочий root с привилегиями sudo .

Базы данных PostgreSQL

PostgreSQL — это бесплатная объектно-реляционная система баз данных с открытым исходным кодом, совместимая с SQL. Он может работать как с реляционными (SQL), так и с нереляционными (JSON) запросами. Узнайте больше о особенности PostgreSQL .







В PostgreSQL иерархия данных выглядит следующим образом:



  • кластер
  • база данных
  • схема
  • таблица (или другие объекты; например, функция)

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



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

1. Открытие соединения с сервером

Чтобы создать новую базу данных, сначала подключитесь к серверу PostgreSQL:





$ судо постгрес
$ psql

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



2. Список текущих баз данных
Запустите следующий запрос в psql, чтобы распечатать список баз данных на сервере:

$ \список

Во время установки PostgreSQL создает первую базу данных сервера, которая называется «postgres». Также создаются две дополнительные базы данных:

  • шаблон1 : Всякий раз, когда создается любая новая база данных в кластере, «template1» клонируется.
  • шаблон0 : он служит чистой копией исходного содержимого «template1».

Не создавайте объекты в «template1», если вы не хотите, чтобы они были частью каждой вновь создаваемой базы данных. Если «template1» изменен, «template0» можно клонировать для создания новой базы данных без каких-либо локальных дополнений.

3. Создание новой базы данных
Чтобы создать новую базу данных, выполните следующий запрос в psql:

$ СОЗДАТЬ БАЗУ ДАННЫХ < db_name > ;

Здесь:

  • Текущая роль автоматически считается владельцем новой базы данных.
  • Владелец имеет право изменить владельца на другую роль.

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

$ \список

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

$ СОЗДАТЬ БАЗУ ДАННЫХ < db_name > ВЛАДЕЛЕЦ < роль > ;

Команда Createdb

В предыдущем методе нам пришлось пройти несколько шагов для создания базы данных:

  • Подключитесь к серверу PostgreSQL, используя psql.
  • Запустите запросы, чтобы создать новую базу данных.

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

1. Создание базы данных с помощью Createdb
Чтобы создать базу данных с использованием сервера базы данных по умолчанию, используйте следующую команду:

$ созданb < db_name >

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

$ psql '\список'

С помощью различных опций мы также можем точно настроить операции createdb. Посмотрите следующий пример:

$ созданb -час < хозяин > -п < порт > < шаблон > -Это --имя пользователя '=' < имя пользователя > --пароль --maintenance-дб '=' < Maintenance_db_name > < db_name >

Здесь:

  • -час : этот параметр указывает расположение сервера PostgreSQL (IP-адрес или доменное имя).
  • -п : порт для подключения к серверу.
  • : шаблон для использования при создании новой базы данных. Это может быть template0, template1 или любая другая база данных.
  • -Это : повторяет эквивалентный запрос.
  • -имя пользователя : Имя пользователя для подключения к серверу.
  • -пароль : заставляет команду createdb запрашивать пароль перед подключением к серверу. В большинстве случаев это не требуется, так как createdb автоматически запрашивает пароль, если он требуется серверу. Тем не менее, он тратит попытку подключения, чтобы выяснить это.
  • -техническое обслуживание БД : база данных для подключения при создании новой базы данных. Если не указано, по умолчанию предполагается postgres. Если postgres не существует, предполагается «template1».

Время привести его в действие. Запустите следующую команду createdb:

$ созданb -час локальный хост -п 5432 шаблон0 -Это --имя пользователя = postgres test_db

Как следует из вывода, это эквивалентно следующему запросу:

$ СОЗДАТЬ БАЗУ ДАННЫХ test_db TEMPLATE template0;

Дополнительное управление базой данных

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

Список баз данных

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

$ \список

Другой способ — изучить системный каталог «pg_database»:

$ ВЫБЕРИТЕ имя данных ИЗ pg_database;

Удаление базы данных

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

$ УДАЛИТЬ БАЗУ ДАННЫХ < db_name > ;

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

$ dropdb -час < хозяин > -п < порт > --имя пользователя '=' < имя пользователя > --пароль -Это < db_name >

Здесь:

  • -час : Сервер PostgreSQL для подключения.
  • -п : порт сервера PostgreSQL для подключения.
  • -Это : повторяет эквивалентный запрос.

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

Изменение владельца базы данных

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

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

$ ИЗМЕНИТЬ БАЗУ ДАННЫХ < db_name > ВЛАДЕЛЕЦ < новый владелец > ;

Однако это не изменит права собственности на объекты в базе данных (включая таблицы). В таких случаях мы должны использовать другой запрос. Подключитесь к целевой базе данных и выполните следующий запрос:

$ ПРИНАДЛЕЖАЕТ < старый_владелец > К < новый владелец > ;

Несмотря на удобство, этот запрос имеет несколько предостережений:

  • При подключении к postgres (базе данных) он может изменить владельца сразу нескольких баз данных.
  • Не используйте этот запрос, если первоначальным владельцем является postgres, так как это может привести к повреждению всего экземпляра БД.

Бонус: выполнение запросов из оболочки

Пока что мы запускаем запросы из консоли PostgreSQL. Что делать, если вы хотите включить некоторые функции базы данных в свои сценарии? Команды createdb и dropdb могут выполнять только определенные операции.

Чтобы решить эту проблему, мы можем использовать psql в качестве канала. Помимо стандартной интерактивной оболочки, psql также может выполнять запросы на лету.

Способ 1:

Структура команды следующая:

$ psql -час < хозяин > -п < порт > < имя пользователя > < база данных > < запрос >

Здесь:

  • -час : адрес сервера PostgreSQL.
  • -п : порт для подключения (значение по умолчанию — 5432).
  • : Пользователь, к которому нужно подключиться.
  • : база данных для подключения.
  • : запрос для выполнения.

Способ 2:

PostgreSQL имеет еще одну интересную функцию: URI подключения. Это умный способ аккуратно закодировать все параметры подключения. Структура URI соединения выглядит следующим образом:

$ постгрескл: //< имя пользователя > : < пароль >@< хозяин > : < порт >/< db_name >

Здесь:

  • postgresql или постгрес : уникальный протокол для URI соединения PostgreSQL.

Чтобы подключиться к базе данных с помощью URI подключения, используйте следующую команду psql:

$ psql < connection_uri > < запрос >

Заключение

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

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