Создаем базу данных в PostgreSQ
Рассмотрим, как создавать базу данных в PostgreSQL, для этого мы будем использовать всем известную утилиту pgAdmin 4 для написания SQL-запросов для базы.
База данных в PostgreSQL
Перед тем как приступить к созданию базы необходимо установить программы PostgreSQL и pgAdmin 4.
Есть два варианта создать базу – с помощью pgAdmin 4 и SQL. В первом случаи это графический редактор, который упрощает работу с базой, во втором — язык.
Вариант 1
Откройте pgAdmin 4, щелкните правой кнопкой мыши на разделе «База данных» в браузере. Далее выберите «Создать -> Базу данных».

Откроется окошко «Создать базу данных», пропишите название будущей базы. Если вы не собираетесь включать – отключать какие — то дополнительные опции для работы базы, можно смело нажать «Сохранить». Такая настройка достаточна для создания базы с настройками по умолчанию – базовыми, которые вполне могут обеспечить стабильную работу базы.
В моем случаи на скриншоте ниже создана мной база данных под именем test_db.

Как видно на скриншоте ниже новая база данных успешно создана.

Вариант 2 — Использование языка программирования SQL
Так же можно использовать язык программирования SQL. Для этого выберите Postgres и запустите редактор SQL-запросов. Иконка редактора находится в панели меню в графическом виде на панели программы или же его можно вызвать через контекстное меню, для этого перейдите во вкладку Инструменты -> Запрос.

Следующим шагом пропишите SQL запрос:
CREATE DATABASE test_db; — в данном случаи инструкции test_db – это название моей базы, вы должны прописать свою.
Теперь ее осталось только запустить для этого нажмите на кнопочку «Выполнить».

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

Чтобы изменить-прописать какие либо SQL запросы для исполнения базой выделите их и запустите редактор.

В Linux для создания базы можно воспользоваться обычной консольной утилитой psql.
Установка PostgreSQL 11 на Windows. Пошаговая инструкция

PostgreSQL 12 и pgAdmin 4 мы установили, теперь давайте запустим pgAdmin 4, подключимся к серверу и настроим рабочую среду pgAdmin.
Чтобы запустить pgAdmin 4, зайдите в меню пуск, найдите пункт PostgreSQL 12, а в нем pgAdmin 4.
Подключение к серверу PostgreSQL 12
pgAdmin 4 имеет веб интерфейс, поэтому в результате у Вас должен запуститься браузер, а в нем открыться приложение pgAdmin 4.
При первом запуске pgAdmin 4 появится окно «Set Master Password», в котором мы должны задать «мастер-пароль», это можно и не делать, однако если мы будем сохранять пароль пользователя (галочка «Сохранить пароль»), например, для того чтобы каждый раз при подключении не вводить его, то настоятельно рекомендуется придумать и указать здесь дополнительный пароль, это делается один раз.
Вводим и нажимаем «ОК».

Чтобы подключиться к только что установленному локальному серверу PostgreSQL в обозревателе серверов, щелкаем по пункту «PostgreSQL 12».
В итоге запустится окно «Connect to Server», в котором Вам нужно ввести пароль системного пользователя postgres, т.е. это тот пароль, который Вы придумали, когда устанавливали PostgreSQL. Вводим пароль, ставим галочку «Save Password», для того чтобы сохранить пароль и каждый раз не вводить его (благодаря функционалу «мастер-пароля», все сохраненные таким образом пароли будут дополнительно шифроваться).
В результате Вы подключитесь к локальному серверу PostgreSQL 12 и увидите все объекты, которые расположены на данном сервере.
Заметка! Как создать базу данных в PostgreSQL с помощью pgAdmin 4.
Установка русского языка в pgAdmin 4
Как видите, по умолчанию интерфейс pgAdmin 4 на английском языке, если Вас это не устраивает, Вы можете очень просто изменить язык на тот, который Вам нужен. pgAdmin 4 поддерживает много языков, в том числе и русский.
Для того чтобы изменить язык pgAdmin 4, необходимо зайти в меню «File -> Preferences».
Затем найти пункт «User Languages», и в соответствующем поле выбрать значение «Russian». Для сохранения настроек нажимаем «Save», после этого перезапускаем pgAdmin 4 или просто обновляем страницу в браузере.
В результате pgAdmin 4 будет русифицирован.
Заметка! Как создать составной тип данных в PostgreSQL.
Пример написания SQL запроса в Query Tool (Запросник)
Для того чтобы убедиться в том, что наш сервер PostgreSQL работает, давайте напишем простой запрос SELECT, который покажет нам версию сервера PostgreSQL.
Для написания SQL запросов в pgAdmin 4 используется инструмент Query Tool или на русском «Запросник», его можно запустить с помощью иконки на панели или из меню «Инструменты».
После того как Вы откроете Query Tool, напишите
Этот запрос показывает версию PostgreSQL.
Как видите, все работает!
Получение справки
Каждый раз когда мне нужно выполнить какую-нибудь редкую или сложную команду SQL, я лезу в справку, благо она всегда доступна через \h.
\h без аргументов покажет список доступных разделов. Это уже само по себе полезно, чтобы подсмотреть синтаксис SELECT или ALTER TABLE. Допустим, вы хотите удалить ограничение NOT NULL для столбца, но не помните точно как это делается через команду ALTER. \h alter поможет в этом и предоставит более чем подробную информацию. psql использует пагинацию для большого вывода, так что там работает поиск. Наберите / + текст для поиска + и увидите все упоминания, с помощью n и N можно переходить к следующему и предыдущему соответственно. Поискав NULL, находится вот такая команда: ALTER [ COLUMN ] column_name < SET | DROP >NOT NULL. Теперь можно составить нужную команду, не заглядывая в Google.
ALTER TABLE table_name ALTER column_name DROP NOT NULL;
Как видите, \h даёт справку только по SQL командам. Для внутренних команд psql, которые начинаются с обратного слэша, есть \?.
Сравнение вывода
Когда вы запускаете команду с помощью psql, результат оказывается в том же терминале. Команда \o позволяет указать имя файла, куда будет записан вывод. \o output.txt перенаправит вывод, а \o вернёт всё обратно.
Ну и зачем это надо? Некоторые используют для экспорта данных (позже покажу способ получше). Я же использую \o для сравнение чего-либо тяжёлого, например, планов выполнения с помощью \! vimdiff.
db=# \o a.txt db=# EXPLAIN SELECT * FROM users WHERE id IN (SELECT user_id FROM groups WHERE name = ‘admins’); db=# \o b.txt db=# EXPLAIN SELECT users.* FROM users LEFT JOIN groups WHERE groups.name = ‘admins’; db=# \! vimdiff a.txt b.txt
Теперь я могу просмотреть оба плана выполнения одновременно и легко выявить различия.
Построение запросов
psql превосходно подходит для построения небольших запросов, однако для многострочных и вложенных надо использовать более адекватный инструмент. Например, \e — она открывает последний запрос в вашем любимом редакторе, который может уже обеспечить и подсветку синтаксиса, и автодополнение, и прочие полезные вещи. Для выполнения достаточно сохранить этот псевдо-файл и выйти (ну прям как с git). \e удобно использовать для итеративного построения большого запроса.
Создаём свою БД на PostgreSQL из CSV

Kaggle — — платформа созданная для проведение конкурсов по исследованию данных. Организаторы выкладывают Datasets , описывают задачи , метрики по которым будут выявляться победители конкурса , призы и время проведения. Каждый желающий может выставить свою работа по этим данных , красиво описать её , показать свои умения и надеяться на победу.
Мы будем использовать Used Cars Dataset
Также мы можем посмотреть Code других участников соревнования
подчерпнуть оттуда интересную информацию
найти нестандартные подходы к обработке данных
На примере других работа , научиться чему-то новому
и даже наткнуться на боже зачем это тут ? интересную работу по »Ускорение рабочего процесса Pandas с Modin»
Заставить других сделать свою работу
Узнать ответ на интересующий тебя вопрос(есть шанс)
Перейдём к делу, Pgadmin4

pgAdmin — это платформа с открытым исходным кодом для администрирования и разработки на PostgreSQL и связанных с ней систем управления базами данных.
pgAdmin будет предложен в установке PostgreSQL, я пользуюсь 14.3. Багов и проблем не боюсь , беру самую новую версию сразу видно профессионал. Если боитесь устанавливать приложение без ведения за ручку , вам поможет интернет()_(). Уже 1000 раз было рассказывать как это делать и что за чему , так что не буду тратить наше драгоценное.
Перейдём к делу 2, Python

Python — — высокоуровневый язык программирования. и нам нужна библиотека pandas
Перейдём к делу 3, Pycharm

Pycharm — — среда разработки(IDE) созданная специально для языка программирования Python.
Предоставляет средства для анализа кода
инструменты для отладки юнит-тестов
интуитивно понятный интерфейс
очень много полезных функций для продвинутых пользователей
Начнём кодить(0)_(з)
экспорт данных + получение основной информации
для начала открываем Pycharm, создаём там новый проект и в терминале инсталлируем библиотеку pаndas Открываем терминал и пишем там pip install pandas, нажимаем enter и ждём установки.
Далее нам надо открыть для чтения наш файл —

видим что из-за 26 столбцов, Pycharm не подгружает всё таблицу( в дальнейшем исправим)

Получаем основные данные из таблицы.
Название всех столбцов
Количество значений в них
Получаем гигантский DF который я не могу передать как картинку , так что переходим сразу обработке этих данных
Очистка данных
Убирает лишние столбцы
Нам точно не нужны url ссылки, и пустая строка country , так же нам не надо описание автомобиля на 1000+ символов(description) Так что пишемс простой код
drop удаления столбцов , Axis: указывает, что столбцы или строки должны быть удалены, inplace = True, он возвращает Data Frame с удаленными столбцами или None
После этого сохраняем наш изменённый df в новый файл , что бы в дальнейшем работать только с нужными данными
Убираем выбросы
Выбросы — — это данные, которые существенно отличаются от других наблюдений. Они могут соответствовать реальным отклонениям, но могут быть и просто ошибками
Нас интересуют выбросы в колонке price, согласитесь если цена на машину будет 5 000 000 000 долларов это будет сильно менять среднее значение цены и мешать нашим вычислениям
Находим выбросы
Узнаем самые часто встречаемые цены с помощью value_counts И_И узнаем статистику по цене в нашем df с помощью describe

слева видим что у нас есть 32к значений = 0, которые стоят обрезать , и множество значений цены = около 3к
справа у нас показатели зашкаливают и выдают огромные цифры. ЧТО ТО ТУТ НЕ ТАК.
А теперь сделаем грубую и ужасную профессиональную вырезку. Я называю её «и так сойдёт»(объясняю, мы как бы не готовим данные для отчётов и т.д , а просто убираем самый явный бред)
Импортируем 2 крутые штуки seaborn
Теперь в шапку нашего кода добавляем
Строем простецкий графии

Тут мы смотря на значения Y будем постепенно обрезать наши выбросы , пока они не станут чуть-чуть адекватными( код ниже)
Убираем выбросы
да это всё можно делать с помощью IQR (но это совершенно другая история)
И с помощью value_counts, describe проверяем похоже ли это на правду
Сохраняем то что сделали
Переноcим данные в СУБД
Создаём пустую бд под экспорт
Осталось дело за малым, открываем pgAdmin4(и подключаемся к серверу)

Далее нам нужно, создать базу данных

Выбираем нашу базу данных и открываем запросник

Вводим туда простейший код
дааааааа — можно использовать CHARACTER VARYING , int4 , date . Но мы сейчас не про экономию места на диске
Далее нам надо импортировать наши данные в таблицу
Занимаемся экспортом данных
Находим и открываем sql Shell (psql) — терминальный интерфейс для PostgreSQL

просто нажимаем на enter везде кроме, Database(название вашей базы данных) и Пароль пользователя postgres. И у нас начинается подключение
PGAdmin4 Tutorial Beginners
Before starting this tutorial, you need to confirm that pgAdmin4 is installed and working properly in your Ubuntu operating system. If pgAdmin4 is not installed in your system then you can follow the steps of the following tutorial to install pgAdmin4 first and start this tutorial.
After the successful installation of pgAdmin4, open the following link from any browser to open pgAdmin4 client.

If you expand the Databases and Login/Group Roles sections from pgAdmin tree control then all previously created database list and roles will be shown. Here, one database named ‘postgres’ and two login/group roles, ‘pg_signal_backend’ and ‘postgres’ are created at the time of pgAdmin4 installation.

Create New User
Every database is associated with a particular user or group user. You can create database by associating with any existing user/group or any new user after creation. In this tutorial, a new user named ‘admin’ is created with all privileges. Follow the following steps to create a new user.
Step-1:
Right click on Login/Group Roles, select Create and click on Login/Group Roles… for creating new user.
Step-2:
The following Create dialog box will appear. Type ‘admin’ in Name field as user’s name and click on Definition tab.

Step-3:
Type login password for the user admin and click on Privileges tab. If you want to create user for limited time then set the Account expires data and time value.

Step-4:
To set the all permissions to admin user make all options to ‘Yes’. Click ‘Save’ button to create the user.

‘admin’ user entry will be shown in Login/Group Roles section.

Create New Database
Suppose, you have to create a database named ‘Online_Library’. Do the following steps to create the database.
Step-1:
Right click on Databases, select Create and click Database… option for creating new database.

Step-2:
The following dialog box will appear for creating new database. Type ‘Online_Library’ in Database field and select ‘admin’ as database owner. Click ‘Save’ button to create the database.

‘Online_Library’ database will be shown in Databases section.

Create Tables
Suppose, ‘Online_Library’ database contains two tables ‘book_type’ and ‘book_list’. The tables with sample data are given below.
Table: book_type
| ID | Category | Type |
| 1 | CSE | Programming |
| 2 | MBBS | Anatomy |
| 3 | BBA | Finance |
According to the table data, book_type table has three fields which are ID, Category and Type. Here, the value of ID field is numeric and will increment automatically, Category and Type fields are string. Primary key of this table is ID and all fields are mandatory.
Table: book_list
| ID | Book_Name | Author_Name | Edition | Type_ID |
| E001 | Java The Complete Reference | Herbert Schildt | 7 th | 1 |
| M001 | Anatomy Trains | Thomas W. Myers | 3 rd | 2 |
| E002 | Python Cookbook | Brian Jones & David Beazley | 3 rd | 1 |
| B001 | Financial Accounting for BBA | Dr S N Maheshwari & CA Sharad K Maheshwari | 3 |
According to the table data, book_list table has 5 fields which are ID, Book_Name, Author_Name, Edition and Type_ID. Here, ID, Book_Name and Author_Name fields can’t be empty and Edition fields can be empty. ID field is primary key and Type_ID field is foreign key for this table. Now, follow the following steps to create these tables under ‘Online_Library’ database using pgAdmin4.
Step-1:
Click on ‘Schemas’ section of ‘Online_Library’ database. Expand ‘public’ section and find out ‘Tables’ section.

Step-2:
Right click on ‘Tables’, select ‘Create’ and click ‘Table…’ option.

Step-3:
The following dialog box will appear to create a new table. Type ‘book_type’ in Name field, select Owner of the table (here, admin is selected as owner) and select Schema and Tablespace.

Step-4:
Select ‘Columns’ tab and click on ‘+’ button to create a new field for the table.

Step – 5:
Add three mandatory fields of ‘book_type’ table like the following dialog box. Set ‘bigserial’ as data type (for adding auto increment attribute) and set ‘Yes’ in ‘Not Null’ and ‘Primary key’ fields of ID column. The value of Category and Type column can vary. So select ‘character varying’ as data type for these fields. Click ‘Save’ button to create the table.

Step-6:
Open the following dialog box again for creating another table named ‘book_list’. Type ‘book_list’ in Name field and select other values of others fields like step-3.

Step-7:
Click on Column tab and add the fields according to table requirements. Here, ID column will contain data of fixed length (4 characters). For this, ‘character’ data type is selected for ID column. The value of Book_Name, Author_Name and Edition can vary. So, ‘character varying’ data type is selected for these columns. ‘Not Null’ option is set to ‘Yes’ for Edition column to accept Null value when no data will submit.

Step-8:
Click ‘Constraints’ tab to set primary and foreign keys. This tab contains other 5 tabs. First tab is ‘Primary Key’. This tab will display primary key information of the table. One primary key is set in the previous step which is displaying here. If you want to add or remove any primary key then you can do this task from this tab.

Step-9:
This table contains a foreign key based on the table information mentioned above. Click ‘Foreign Key’ tab to define foreign key. Click on ‘+’ button for adding foreign key.

Step-10:
Click on Edit () button open tab for creating foreign key.

Step-11:
Type the name of foreign key in Name field. Here, ‘Book_Type’ is set as foreign key name. Next, click Columns tab.

Step-12:
Select Local column, References and Referencing from dropdown list. For this table, Type_ID field is a foreign key and it is set as Local column. ‘book_type’ table is selected as Reference table and ID field of ‘book_type’ is selected as Referencing column. After setting, click on the ‘+’ button to add foreign key.

Step-13:
Added foreign key information will be shown in the bottom. Click on ‘Action’ to add particular action on update and delete data of reference table.

Step-14:
Select ‘CASCADE’ option for both update and delete operation. When the ID value of book_type table will update or delete then the related record(s) of book_list table will be effected. Click ‘Save’ button to complete the table creation task.

After completing the above steps, Tables section will contain the following two table names. If you want to change the structure of the table then right click on the particular table name and click properties to open the dialog box for modifying the table structure.

After creating database and tables, you can execute different types of SQL commands like select, insert, update and delete in a particular table. You can also perform other database operations like creating function, view, trigger etc. in pgAdmin4. Hope, you will be able to do basic database operations in pgAdmin4 after reading this tutorial.
About the author
Fahmida Yesmin
I am a trainer of web programming courses. I like to write article or tutorial on various IT topics. I have a YouTube channel where many types of tutorials based on Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel etc. are published: Tutorials4u Help.
