как создать таблицу в postgresql linux
Работаем с PostgreSQL через командную строку в Linux
Установка PostgreSQL на Linux (Mint)
Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:
Для установки PostgreSQL сервера:
Проверим, можем ли мы подключиться к базе данных PostgreSQL:
Вывод команды должен быть примерно таким:
PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:
Для подключения к базе данных PostgreSQL можно использовать команду:
После ввода пароля и успешного подключения к базе данных PostgreSQL, можно посылать SQL-запросы и psql-команды.
PostgreSQL создание новой роли и базы данных
Создать новую роль c именем admin (указывайте нужное имя):
Создание новой базы данных:
Дать права роли на базу данных:
Включить удаленный PostgreSQL доступ для пользователей
Нам нужно отредактировать файл /etc/postgresql/ /main/pg_hba.conf, задав опцию md5 вместо peer.
может быть 10, 11, 12 и т.д.
После этого сделать restart PostgreSQL:
Полезные команды PostgreSQL
Выйти из клиента PostgreSQL:
Показать список баз данных PostgreSQL:
Показать список таблиц:
Показать список пользователей (ролей):
Показать структуру таблицы:
Переименовать базу данных:
Удалить базу данных:
Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):
\connect db_name или более короткий alias: \c db_name
Удалить роль (пользователя):
Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:
Дать права пользователю/роли на логин ( role is not permitted to log in ):
Выбор shema psql в консоли:
Посмотреть список всех схем:
Подключиться к конкретной схеме:
Sequences
Получить имена всех созданных sequences:
Получить последнее значение sequence, которые будет присвоено новой вставляемой в таблицу записи:
Как создать таблицу в PostgreSQL с помощью pgAdmin 4
Всем привет! Сегодня мы рассмотрим процесс создания таблиц в СУБД PostgreSQL с помощью приложения pgAdmin 4, при этом мы разберем два способа: первый – с помощью инструкции языка SQL, и второй – с помощью специального графического конструктора.
В прошлой статье «Как создать базу данных в PostgreSQL» мы рассмотрели процесс создания пустой базы данных, т.е. того контейнера, в котором и хранятся все объекты этой базы данных. Одним из таких объектов является таблица, в которой и хранятся сами данные, т.е. таблица является неким физическим представлением определенной сущности реального мира.
Таким образом, данные хранятся не просто в базе данных, они хранятся в таблицах, которые в свою очередь хранятся в базе данных.
Поэтому сегодня давайте продолжим эту тему и рассмотрим процесс создания таблиц.
И так как, наверное, лучшим способом разобраться в какой-либо теме является ее рассмотрение на конкретном примере, т.е. на решении конкретной задачи, давайте сначала определим задачу, в которой нам нужно будет создать несколько таблиц.
Заметка! Для комплексного изучения языка SQL рекомендую почитать мою книгу «SQL код», в ней язык SQL рассматривается как стандарт, чтобы после прочтения данной книги можно было работать с языком SQL в любой системе управления базами данных.
Исходные данные
Давайте представим, что нам нужно создать две таблицы, первая – для хранения товаров, и вторая – для хранения категорий, к которым относятся эти товары.
Структура таблиц будет следующая:
При этом внести товар с несуществующей категорией нельзя, поэтому мы добавим еще и ограничение внешнего ключа.
Создание таблицы с помощью графического конструктора pgAdmin 4
Затем запустится графический конструктор таблиц, где первым делом нам необходимо ввести название таблицы, сначала давайте создадим таблицу с категориями, чтобы потом в процессе создания таблицы с товарами у нас была возможность сразу определить ограничение внешнего ключа. Поэтому вводим categories.
В случае необходимости Вы можете изменить владельца таблицы и схему, в которой будет располагаться таблица.
Схема – это пространство имен в базе данных, своего рода контейнер объектов внутри базы данных, который позволяет логически разделять данные на схемы.
После того как название таблицы задано, мы можем переходить к определению столбцов. Для этого необходимо перейти на вкладку «Столбцы» и, используя кнопку плюс «+», добавить нужные столбцы.
Сначала создаем идентификатор категории, по условиям нашей задачи он должен отвечать определенным требованиям, поэтому мы должны задать следующие свойства у столбца:
В качестве типа данных выберем целочисленный тип integer.
Далее точно так же добавляем столбец для хранения наименования категории. При этом тип данных у нас уже должен быть текстовый, например, character varying (VARCHAR) с длинной 100. Он уже не должен быть первичным ключом и значения генерировать здесь не нужно.
После ввода всех данных мы можем сохранить все изменения, нажав на кнопку «Сохранить», тем самым создав таблицу.
Затем точно также создаем таблицу с товарами и определяем соответствующие для нее столбцы. Столбец идентификатора товара определяем, как первичный ключ, и включаем у него идентификацию с автоматическим генерированием значений.
После того как столбцы определены, нам необходимо добавить значение по умолчанию для столбца category, а также определить ограничение внешнего ключа.
Чтобы у столбца задать значение по умолчанию, необходимо открыть детализированные свойства столбца, перейти там на вкладку «Ограничения» и в поле «По умолчанию» указать значение, которое будет присваиваться по умолчанию, например, 1.
Осталось определить ограничение внешнего ключа, иными словами, чтобы столбец category таблицы goods ссылался на столбец category_id таблицы categories, таким образом, мы определим связь между этими таблицами.
Чтобы это сделать, переходим на вкладку «Ограничения» (основной формы создания таблиц), затем переходим на вкладку «Внешний ключ» и с помощью кнопки плюс «+» добавляем новый внешний ключ.
Вводим название ограничения, и в детализированных свойствах на вкладке «Столбцы» задаем связь между таблицами, т.е. указываем столбцы и нажимаем на плюс «+» для добавления связи.
После этого все требования, указанные в нашей задаче, будут выполнены и мы можем нажать кнопку «Сохранить» для создания таблицы.
Созданные таблицы отобразятся в обозревателе.
Создание таблицы с помощью языка SQL
Теперь давайте рассмотрим процесс создания таблиц в PostgreSQL на языке SQL.
Таблицы в SQL создаются с помощью инструкции CREATE TABLE.
Для создания точно таких же таблиц и решения нашей задачи мы можем использовать следующие инструкции языка SQL.
Примечание! Если чуть ранее Вы создавали эти таблицы с помощью конструктора, то перед выполнением указанных ниже инструкций создания таблиц необходимо предварительно удалить эти таблицы, т.е. выполнить инструкцию DROP TABLE. В противном случае инструкции создания таблиц завершатся ошибкой, так как в пределах одной схемы не может быть таблиц с одинаковым названием.
Чтобы выполнить инструкции, открываем редактор запросов (Запросник), вводим инструкции и нажимаем «Execute».
Создание таблиц в PostgreSQL с помощью pgAdmin 4 (видеоматериал)
На сегодня это все, надеюсь, материал был Вам интересен и полезен, пока!
PostgreSQL
Введение
PostgreSQL (произносится «Пост-Грэс-Кью-Эл») — свободная объектно-реляционная система управления базами данных (СУБД).
Установка
После установки
После установки проверьте версию установленного PostgreSQL
postgres (PostgreSQL) 9.2.24
Расположение файлов с настройками, например, postgresql.conf можно получить выполнив
В этом примере директория, которая содержит настройки это
Полезно изучить её содержание
Подключение к БД
Чтобы получить доступ к базам данных можно воспользоваться стандартной консолью psql.
Если Вы хотите подключиться из bash в Windows не забудьте добавить местоположение psql.exe (у меня это C:\Program Files\PostgreSQL\12\bin) в PATH
Как это делается описано в статье PATH
psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type «help» for help.
Если БД на локальном хосте
Получить данные о подключении
You are connected to database «postgres» as user «postgres» via socket in «/var/run/postgresql» at port «5432».
Список существующих БД
Список уже существующих на сервере баз данных можно получить командой
Обратите внимание на столбцы Encoding, Collate и Ctype. Знание кодировок может Вам пригодиться в будущем.
Создать базу данных
Создадим базу данных heihei_ru_db с кодировкой utf8
CREATE DATABASE «heihei_ru_db» WITH OWNER «postgres» ENCODING ‘UTF8’;
Создадим базу данных heihei с кодировкой utf8 и укажем значения для Collate, Ctype и Template
CREATE DATABASE «heihei» WITH OWNER «postgres» ENCODING
‘UTF8’ LC_COLLATE = ‘C’ LC_CTYPE = ‘C’ TEMPLATE = template0;
Проверим, что получилось
То получу сразу четыре доступные кодировки
C
C.UTF-8
en_US.utf8
POSIX
Но создать БД, например, с en_US.utf8 у меня не получается
CREATE DATABASE «heihei» WITH OWNER «postgres» ENCODING ‘UTF8’ LC_COLLATE = ‘en_US.utf8’ LC_CTYPE = ‘en_US.utf8’ TEMPLATE = template0;
ERROR: invalid locale name: «en_US.UTF-8»
UPD: Выполнил такую же команду в Ubuntu и база успешно создана
CREATE DATABASE «new_db» WITH OWNER «postgres» ENCODING ‘UTF8’ LC_COLLATE = ‘en_US.UTF-8’ LC_CTYPE = ‘en_US.UTF-8’ TEMPLATE = template0;
Удалить базу данных
Чтобы удалить базу данных воспользуйтесь командой
DROP DATABASE db_name;
Проверить кодировки
Проверить кодировку сервера можно командой
Проверить кодировку клиента
Когда вы находитесь в интерактивном режиме PostgreSQL в консоле появляется префикс
Где db это название текущей базы данных
Показать адрес текущей директории
Вернуться в PostgreSQL можно выполнив
Зайти в БД
Чтобы начать работу с базой данных нужно знать её имя, например пусть Вам нужна база даныых, которую назвали просто HeiHei_ru_DB
You are now connected to database «HeiHei_ru_DB» as user «postgres».
Если вы работаете в Linux и база данных находится на том же хосте можно выполнить
Чтобы посмотреть список таблиц введите
List of relations
Schema | Name | Type | Owner
———+———+——-+———-
public | person | table | postgres
(1 row)
Чтобы посмотреть всю таблицу person уже можно использовать стандартный
SELECT * FROM person;
Запуск скрипта из файла
Сперва проверим, что с переменными окружения всё впорядке.
Для этого введём в консоль psql.exe нажмём Enter и проверим что bash не жалуется на неизвестную команду.
Пишем скрипт script.sql
CREATE TABLE person ( id int, first_name VARCHAR(50), last_name VARCHAR(50), gender VARCHAR(5), date_of_birth DATE )
Применим этот скрипт к базе данных HeiHei_ru_DB
Password for user postgres:
CREATE TABLE
Саме время сделать что-то более близкое к реальному скрипту
На поля таблицы нужно ввести некоторые ограничения и добавить им свойств.
CREATE TABLE booking_sites ( id BIGSERIAL NOT NULL PRIMARY KEY, company_name VARCHAR(50) NOT NULL, origin_country VARCHAR(50) NOT NULL, age VARCHAR(3) NOT NULL, date_of_birth DATE NOT NULL, website_url VARCHAR(50) );
Password for user postgres:
CREATE TABLE
Содержание базы данных
В предыдущем параграфе мы создали в базе данных heihei таблицу booking_sites
Убедимся в том, что скрипт отработал удачно
Перейдём в базу данных heihei и проверим создалась ли таблица
You are now connected to database «heihei» as user «postgres».
Описание таблицы
Если таблица создана какое-то время назад. Вы могли уже забыть, какие конкретно столбцы она содержит.
Для описания таблицы используется команда \d
Пользователи
Получить список пользователей
Изменение таблицы
Когда нужно обновить название столбца таблицы используем команду ALTER
Предположим полю website_url не хватает 50 символов. Увеличим длину до 60.
ALTER TABLE booking_sites ALTER column website_url TYPE VARCHAR( 60);
Проверим изменилась ли таблица
Чтобы файл открылся желательно положить его в папку
PostgreSQL Создать таблицу
Создать таблицу
В этом документе обсуждается, как создать таблицу в PostgreSQL с помощью командной строки, pgAdmin III и phppgAdmin. Для простоты понимания каждый процесс дополняется скриншотами, снятыми при этом.
Создать таблицу с помощью командной строки в Linux
Запустите терминал и выполните следующую команду:
Эта команда приведет вас в командную строку PostgreSQL. Теперь для создания таблицы введите следующую команду.
Если вы хотите увидеть, действительно ли таблица создана, введите следующую команду.
Это покажет вам таблицу, которую вы создали, как показано на следующем рисунке.
Чтобы удалить существующую таблицу, введите следующую команду.
Приведенная выше команда удаляет таблицу emp_data.
Создать таблицу с помощью pgAdmin III
Запустите pgAdmin III из Приложения> Программы> pgAdmin III, если вы используете Linux и все программы> PostgreSQL 9.1> pgAdmin III, если вы используете Windows. Затем щелкните правой кнопкой мыши на своем сервере в правой части окна pgAdmin III и нажмите «Подключиться». Теперь ваш сервер подключен.
Теперь перейдите к «таблицам» в окне pgAdmin III, щелкните правой кнопкой мыши «таблицы» и нажмите «Новая таблица».
Это откроет новое окно для создания новой таблицы. Укажите имя вашей новой таблицы, а затем нажмите «Столбцы».
Теперь в окне столбцов вы можете добавить нужные столбцы и их типы данных, нажав «Добавить» и нажав «ОК» после завершения ввода имени и типа данных для каждого столбца.
После того как вы закончили создание таблицы, вы можете увидеть детали таблицы, как показано ниже.
Чтобы удалить таблицу, выберите таблицу, щелкните правой кнопкой мыши и нажмите «Удалить / Удалить». Когда появится приглашение, скажите «Да».
Создать таблицу с помощью phpPgAdmin
Войдите в phpPgAdmin и перейдите в «Общедоступную» базу данных. Теперь нажмите «Создать таблицу» в правой части окна phpPgAdmin.
В следующем окне укажите имя и количество столбцов, которые вы хотите создать, и нажмите «Далее».
В следующем окне введите имя столбца, тип данных и нажмите «Создать».
Если вы успешно создали таблицу, вы можете увидеть созданную вами таблицу, как показано ниже.
Заметка
При создании таблицы доступны другие параметры или переменные, например, установка первичного или внешнего ключа. Но ради простоты мы оставили эти параметры за рамками этого документа. Но мы будем обсуждать все это подробно, пока мы прогрессируем.
Предыдущая: Создать базу данных
Далее: Вставить данные
PostgreSQL создание, удаление, изменение таблиц
Создание таблицы:
Значение по умолчанию при создании таблиц:
Или может потребоваться генерация серийного номера, например так:
NOT NULL — проверка на заполенность:
Проверка на уникальность:
Уникальные и заполненные
Можно записать так:
Ссылки на другие таблицы
Ссылки на другие таблицы, отношение многие ко многим
Запрещение удаления если есть ссылки и каскадное удаление
RESTRICT — запрещает удаление, если есть ссылки
CASCADE — каскадное удаление, и ссылающихся
Удаление таблицы
Также можно использовать DROP TABLE IF EXISTS — для того чтобы не выбрасывалась ошибка, если базы не существует.
Изменение таблиц
Добавление столбца
Удаление столбца
Однако если на столбец есть ссылки, тогда он не будет удален, можно использовать CASCADE и для удаления всех ссылок
Добавление ограничений столбцу
Удаление ограничений у столбца
Чтобы удалить не нулевое ограничение:
Изменение значения по умолчанию у столбца
Для удаления значения по умолчанию у столбца:
Изменение типа данных столбца
Переименование столбца
Переименование таблицы
Пример создания таблицы users из Node.js
Информационная схема
В базе PostgreSQL есть информационная схема и в ней несколько таблиц.
Ниже опишу некоторые из них самые важные:
tables — позволяет получить список таблиц
например такой запрос:
Вернет все добавленные таблицы, без служебных таблиц posgres