В данной работе показаны начальные приемы работы с pgAdmin
Примечание 1: ЛКМ, ПКМ - левая, правая кнопка мыши
Вопросы:
01 Установка PostgreSQL и PgAdmin
02 Создание базы данных в правильной кодировке
03 Создание таблиц в pgAdmin
04 Создание столбцов
05 PgAdmin - первичный ключ в PostgreSQL
06 Создание базовых колонок
07 Код таблицы DDL в PostgreSQL
08 Поле ID Autoincrement
09 Создание Foreign key – внешний ключ
10 Взаимодействие через внешний ключ
11 pgAdmin - добавление тестовых данных вручную
01 Установка PostgreSQL и PgAdmin - https://www.postgresql.org/download/
Вместе с PostgreSQL уставливается и PgAdmin
Во время установки задаем пароль суперпользователя (мастер-пароль) базы данных.
Locale - English, United States
Проверить установку PostgreSQL можно так: в Windows находим Службы и в них
проверяем наличие службы PostgreSQL.
После установки PgAdmin появляется в меню
Пуск>Все программы>PostgreSQL(N)
При запуске программы нужно указать мастер-пароль, который
вы указывали при установке.
Также этот пароль понадобится при заходе в базу данных.
Проверка кодировки
Открываем Database > ПКМ на postgres > Properties > Definition
Параметр Encoding = UTF8
Важно обратить внимание на этот параметр и именно поэтому
мы выбирали локаль
Locale - English, United States
Если у вас кодировка UTF-8, то у вас будет меньше проблем
с экспортом и импортом данных.
02 Создание базы данных в правильной кодировке
Если кодировка вашей системы отличается от UTF-8:
вы все равно сможете создать свою базу c UTF-8
ПКМ На Databases > Create > Database
Во вкладке Definition можно вручную выбрать
Encoding - UTF - 8
Иногда система может потребовать использовать шаблон template0,
тогда его вы тоже можете выбрать в этой вкладке:
03 Создание таблиц в pgAdmin
На примере базы данных postgres находим Tables,
ПКМ > Create > Table
ПКМ на Tables > Refresh
Для примера создадим несколько таблиц:
category, priority, task, user_data
04 Создание столбцов
Создать столбцы можно двумя способами,
Кликаем на таблицу ПКМ > Properties > Columns
(можно создать сразу несколько колонок) или
Кликаем на таблицу ПКМ > Create > Column
(создаем по одной колонке)
Добавим следующие колонки в таблицу user_data:
почта - обязательное значение
пароль - обязательное значение
имя - обязательное значение
ПКМ на таблице > Refresh
и увидеть наши колонки, развернув таблицу и подраздел Columns.
Для редактирования колонок в дальнейшем мы точно также делаем:
ПКМ на таблице > Properties > Columns
и в окне, где показаны все столбцы кликаем на значок редактирования слева от нужного столбца.
05 PgAdmin - первичный ключ в PostgreSQL
В таблице user_data создаем новое поле id типа bigint
(аналог long в Java). Добавляем полю параметр Not Null и
primary key.
06 Создание базовых колонок
Заполните колонками таблицу task:
title - text - not null
completed - numeric - not null
task_date - timestamp without time zone
id - bigint - not null - Primary key
Увидеть результат создания можно так:
Делаем Refresh, через ПКМ на таблице > Refresh
и разворачиваваем таблицу ЛКМ до колонок
Заполните столбцами таблицу priority:
title - text - not null
color - text - not null
id - bigint - not null - primary key
Заполните столбцами таблицу category:
title - text - not null
id - bigint - not null - primary key
07 Код таблицы DDL в PostgreSQL
Мы создали таблицы в pgAdmin средствами самой программы,
вводя в поля нужные значения и используя переключатели.
Тоже самое можно сделать с помощью
DDL – Data Definition Language (язык описания данных)
Это так называемый SQL запрос для создания таблицы.
Мы можем посмотреть этот код (в режиме чтения), выбрав слева
нужную таблицу, а справа, соотвестствующую вкладку.
В дальнейшем вам нужно научиться создавать таблицы и тем
и другим способом
08 Поле ID Autoincrement
Автоинкременент или автоматическая нумерация -
это автоматическое увеличение значения в колонке
(чаще всего id) средствами самой базы данных.
Это удобно и часто используется. Программист думает
о заполнении таблицы данными, а нумерацию
делает сама БД.
Давайте отредактируем настройки
наших таблиц и настроим столбец id на автонумерацию.
Для этого как обычно:
ПКМ на названии таблицы > Properties > Columns
Слева от поля id нажимаем значок редактирования,
во вкладке Constraints выбираем Type - IDENTITY,
а Identity - ALWAYS.
После сохранения можно закрыть окно,
перейти во вкладу SQL и посмотреть как изменился
код, который задает создание столбца id.
Теперь он будет автоматически менять свое значение при каждом добавлении новой строки с данными.
09 Создание Foreign key – внешний ключ
Foreign key - внешний ключ или можно сказать ссылка на другую таблицу.
Попробуем сделать ссылки из таблицы task на таблицу category и
priority. Смысл этих ссылок - это выражение в таблице,
какая категория у задачи и какой приоритет.
Создаем ключ (поле, столбец, колонку) category_id на таблицу category
и поле id через вкладку Columns и сохраняем его.
Пока поле никуда не ссылается
ПКМ на task > Properties > Columns
Следующим шагом заходим в Ограничения и выбираем Внешние ключи
ПКМ на task > Properties > Constraints > Foreign Key
Вводим название Ограничения - category_fkey, далее редактируем это поле
(значок карандаша слева), вкладка Columns,
Local column - указываем нашу колонку - category_id
поле References - надо указать таблицу, на которую ссылаемся
поле Referencing - указываем колонку на которую ссылаемся
Далее нажимаем "+" на уровне Columns и Save.
После закрытия окна, во вкладке SQL можем наблюдать
изменения в коде создания - CONSTRAINT category_fkey.
Теперь при создании очередной строки в task мы должны указывать
только существующие id из таблицы category иначе строку создать не
получится.
10 Взаимодействие через внешний ключ
Давайте добавим внешние ключи для остальных таблиц в pgAdmin.
Начнем с колонки priority_id. Делаем все тоже самое, создаем и сохраняем
сохраняем внешний ключ, потом "привязываем" его к другой таблице.
Тоже самое делаем с таблицей user_data. В таблице task создаем
для неё ключ user_id. Этот ключ должен содержать параметр not null.
Задание должно иметь владельца, иначе оно бессмысленно.
Также это значит, что мы не можем добавить данные в таблицу task
без заполнения таблицы user.
Для таблицы task в pgAdmin должно получиться что-то такое:
В таблице category должны храниться все назначенные категории всеми пользователями, поэтому в таблице category тоже нужно сделать внешний ключ на таблицу пользователей. Таблицу priority связываем с таблицей user_data аналогичным способом.
11 PgAdmin - добавление тестовых данных вручную
После выстраивания всей системы базы данных бывает полезно проверить
правильность настроек добавлением некторого количества тестовых данных.
Для этого сначала заполняем данными таблицу user_data,
т.к. от неё зависят все остальные. Для этого:
ПКМ на user_data > View/Edit Data > All Rows
и заполняем ячейки вручную в правой нижней части окна
согласно ограничениям, которые мы вписали для этой таблицы
(например id не заполняем, он заполняется автоматически).
После внесения нескольких тестовых пользователей,
их данные можно использовать в других таблицах.
После user_id мы заполняем несколько значений в category и
priority, а потом на основании этих трех таблиц мы можем
сделать несколько тестовых строк в task
в pgAdmin У нас есть возможность каскадно удалять данные.
Если мы хотим удалить в user_data всех пользователей
и удалить все данные в остальных таблицах, которые ссылаются
на эту таблицу мы можем сделать так:
ПКМ на user_data > Truncate > Truncate Cascade
Примечание 2: Спасибо вам за проявленный интерес к данной работе
Вы можете форкнуть данную работу и дополнить или исправить
что-то по своему усмотрению (переделать под себя).