
Контрольная работа №3. БД
.pdf
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ
ОЦЕНКА |
|
|
ПРЕПОДАВАТЕЛЬ |
|
|
канд. техн. наук, доц. |
подпись, дата |
Е. Л. Турнецкая |
должность, уч. степень, звание |
инициалы, фамилия |
КОНТРОЛЬНАЯ РАБОТА №3
Связь СУБД PostgreSQL и Python
по дисциплине: Базы данных
РАБОТУ ВЫПОЛНИЛ |
|
|
|
|
|
СТУДЕНТ гр. № |
Z1411 |
|
|
Я. Н. Тюттерин |
|
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
|
|
|
|
||
Студенческий билет № |
2022 / 4886 |
|
|
|
|
|
|
|
|
|
|
Шифр ИНДО
Санкт-Петербург 2024

Контрольная работа № 3. Связь СУБД PostgreSQL и Python
Цель работы: произвести связь базы данных в PostgreSQL и Python, изучить операции по манипулированию с данными БД, а также созданию простейших пользовательских функций.
С помощью метода connect() создается подключение к экземпляру базы данных
PostgreSQL
Результат запрос на получение данных из таблицы jobs представлен на рисунке 1.
Рисунок 1 - Получение всех записей из таблицы jobs

Рисунок 2 - Создание таблицы locations
Рисунок 3 - Результат создания таблицы locations

Рисунок 4 - Вставка записей в таблицу locations
Рисунок 5 - Получение записей из таблицы locations
Рисунок 6 - Создание новой функции и ее вызов

Рисунок 7 - Вызов функции из Python
Рисунок 8 - Создание функции из Python

Рисунок 9 - Вызов созданной функции
Рисунок 10 - Результат получения записей из таблицы jobs

Рисунок 11 - Построенный график
Рисунок 12 - Вставка записей в таблице locations

Рисунок 13 - Создание колонки location_id в таблице работников Текст запроса: alter table employees add column location_id integer;
Рисунок 14 - Создание fkey на таблицу locations для таблицы работников
Рисунок 15 - Результат заполнения колонки location_id в таблице работников

Рисунок 16 - Установка ограничения not null на новую колонку
Рисунок 17 - Схема БД
На момент работы над данной контрольной работой - мой номер в группе - 16 (Рисунок 18). Таким образом, в качестве варианта был выбран номер 6.
Рисунок 18 - Номер в группе
Вариант 6:
- Найти первых трёх сотрудников с наименьшей разницей между их зарплатой и минимальной зарплатой по должности.
Рисунок 19 - Результат запроса

Текст запроса:
select e.*, abs(abs(e.salary) - abs(j.min_salary)) diff from employees e left join jobs j on j.job_id = e.job_id
order by abs(abs(e.salary) - abs(j.min_salary)) limit 3
- Найти самое популярное имя (first_name).
Рисунок 20 - Самое часто встречающееся имя среди работников Имя john встречается 3 раза.
Текст запроса:
SELECT first_name, count(first_name) FROM employees
GROUP BY first_name
ORDER BY count(first_name) DESC
LIMIT 1
Рисунок 21 - Создание пользовательской функции для получения большей разницы между минимальной зарплатой и текущей у работника