Читать книгу SQL для аналитика. 50 задач с решениями на PostgreSQL - Ар'лан ис'Дрекхэм - Страница 4

Часть 1. Установка. Повторение SQL
Глава 2. Устанавливаем схему. Что есть в нашей схеме

Оглавление

Для дальнейшей работы нам нужно создать демо-базу данных и заполнить её информацией.

Что скачиваем

Вам понадобится загрузить файл market. sql. Он находится в специальном репозитории на GitHub.

Ссылка на репозиторий: https://github.com/atvcross/postgresql_analyst


Как скачать файл:

– Нажмите на зелёную кнопку Code

– Выберите Download ZIP

– Распакуйте архив в любую папку

– Внутри найдите файл market. sql

Устанавливаем схему через pgAdmin

– Откройте pgAdmin.

– Создайте новую базу данных.

В дереве слева нажмите правой кнопкой на Databases → Create → Database.

В поле Database введите book_analytics. Остальные поля менять не нужно. Нажмите Save.

– Откройте Query Tool. (Главное меню -> Tools -> Query Tool)

Нажмите правой кнопкой на book_analytics → Query Tool.

– Загрузите файл market. sql.

В редакторе Query Tool нажмите на значок папки (Open File). Выберите скачанный файл market. sql.

Также можно открыть файл в текстовом редакторе (например, Блокнот) и перенести текст в Query Tool через буфер обмена.

– Выполните скрипт.

Нажмите кнопку Execute (или клавишу F5).

Будут созданы нужные таблицы и заполнены данными.

Проверка установки

В левой панели (дерево объектов) нажмите правой кнопкой на book_analytics → Refresh.

Раскройте Schemas → public → Tables. Здесь должны отобразиться все восемь таблиц:

– users

– categories

– products

– orders

– order_items

– payments

– users_log

– user_comments

Если таблиц нет или их меньше – схема установилась не полностью, или произошла ошибка. Попробуйте выполнить скрипт заново.


Если всё хорошо, выполните проверочный запрос в Query Tool:

text

SELECT COUNT (*) FROM users;


Должно вернуться 15.

Что есть в нашей схеме

Это схема интернет-магазина, который торгует разными товарами. Здесь есть товары, заказы, пользователи, платежи. Давайте подробнее о каждой таблице.


users – пользователи.

Колонки: user_id, user_name, registered_at, country, is_active.

Хранит идентификатор, имя, дату регистрации, страну, активен ли пользователь.


categories – категории товаров.

Колонки: category_id, name, parent_id.

Построена как дерево: у каждой категории может быть родитель (parent_id). Это позволяет делать иерархические запросы.


products – товары.

Колонки: product_id, name, category_id, price.

Название, цена, привязка к категории.


orders – заказы.

Колонки: order_id, user_id, order_date, shipped_date, delivered_date, status.

Кто заказал, когда, статус заказа, даты отгрузки и доставки.


order_items – состав заказа.

Колонки: order_id, product_id, quantity, price_per_unit.

Какие товары и в каком количестве купили. Цена за единицу фиксируется на момент покупки.


payments – платежи.

Колонки: payment_id, order_id, amount, payment_date, payment_method.

Сумма, дата, способ оплаты. Привязан к заказу.


users_log – лог событий.

Колонки: log_id, user_id, action, dt_tm, log_data.

Действия пользователя: enter, show, add_to_cart, buy, exit, error. Плюс время события и дополнительные данные в формате JSONB.


user_comments – отзывы.

Колонки: comment_id, user_id, product_id, rating, comment_text, comment_date.

Текст отзыва, оценка от 1 до 5, дата. Привязан к пользователю и товару.

Вопросы и ответы. А вдруг что-то пошло не так

В: Ошибка: база book_analytics уже существует

О: Удалите старую: нажмите правой кнопкой на book_analytics → Delete/Drop. Затем создайте заново.

В: Ошибка: duplicate key violates unique constraint

О: Та же проблема. Удалите старую базу и повторите установку.

В: Ошибка: permission denied

О: Запустите pgAdmin от имени администратора.

В: Пустой результат при проверке

О: Выполнили SELECT COUNT (*) FROM users, а вернулся 0? Значит, данные не загрузились. Запустите market. sql ещё раз.

Что в итоге

Если всё сделали правильно – переходите к главе 3. Если таблиц нет или запрос вернул не 15 – перечитайте раздел «Устанавливаем схему через pgAdmin’ и выполните скрипт заново.

SQL для аналитика. 50 задач с решениями на PostgreSQL

Подняться наверх