Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6 СЕМЕСТР / ЛР / ЛР6 / БД ЛР6

.pdf
Скачиваний:
10
Добавлен:
25.06.2023
Размер:
900.03 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

ассистент

 

 

 

В.В. Боженко

 

 

 

 

 

 

 

 

 

должность, уч. степень, звание

 

подпись, дата

 

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №6

ЗНАКОМСТВО С СУБД POSTGRESQL

по курсу: БАЗЫ ДАННЫХ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

подпись, дата

 

инициалы, фамилия

Санкт-Петербург 2022

Цель работы

Познакомиться с СУБД PostgreSQL и языком запросов SQL.

Индивидуальный вариант

Индивидуальный вариант №10

Формулировка запросов:

-Найти сотрудника, фамилия которого состоит более чем из одного

слова.

-Найти минимальные зарплаты по отделам, но вывести только те, которые больше 10000.

Ход работы

1)Создали БД student и настроили подключение к ней в соответствии

срисунком 1.

Рисунок 1 – Создание и настройка подключения к БД

2) Создали схему «hr» и указали путь для создания таблиц к ней в соответствии с рисунком 2. Код всех пунктов находится в Приложении А.

Рисунок 2 – Создание схемы и добавления ее в путь

2

3) Создали и заполнили таблицу «jobs» в соответствии с рисунками 3-4.

Рисунок 3 – Код создания и заполнения таблицы «jobs»

Рисунок 4 – Результат создания и заполнения таблицы «jobs»

4) Создали и заполнили таблицу «Departments» в соответствии с рисунком 5-6.

Рисунок 5 – Код создания и заполнения таблицы «Departments»

3

Рисунок 6 – Результат создания и заполнения таблицы «Departments»

5) Создали и заполнили таблицу «Employees» в соответствии с рисунком 7-8.

Рисунок 7 – Код создания и заполнения таблицы «Employees»

Рисунок 8 – Результат создания и заполнения таблицы «Employees»

4

6) Добавили внешний ключ таблице «departments» при помощи скрипта в соответствии с рисунками 9-10.

Рисунок 9 – Код добавления внешнего ключа таблицы «departments»

Рисунок 10 – Результат добавления внешнего ключа таблицы «departments»

7) Первый запрос находит сотрудника, фамилия которого состоит более чем из одного слова. Код и результат запроса в соответствии с рисунком 11.

Рисунок 11 – Результат первого запроса

8) Второй запрос находит минимальные зарплаты по отделам и выводит только те, которые больше 10000. Код и результат запроса в соответствии с рисунком 12.

Рисунок 12 – Результат второго запроса

5

9) «Бонусный» запрос находит количество менеджеров, менеджеров

отделов и остальных сотрудников. Код и результат запроса в соответствии с

рисунком 13.

Рисунок 13 – Результат второго запроса

6

Вывод

В ходе данной лабораторной работы приобрели навыки работы с БД в менеджере СУБД DBeaver. Научились создавать БД, схему данных в ней и таблицы, заполнять таблицы данными и выполнять сложные запросы на выборку дынных.

Чтобы выполнить запросы мы изучили следующие команды: like для сравнения значения поля таблицы с маской; join для осуществления связи между таблицами; distinct для выбора уникальных значения из поля таблицы; union all для постолбчатого объединения результатов нескольких выборок.

7

Список использованных источников

1)Лабораторная работа №6 «Знакомство с субд PostgreSQL»

2)Официальный сайт PostgreSQL URL: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

3)Официальный сайт DBeaver URL: https://dbeaver.io/download

8

Приложение А. Код программы.

--Создание БД students CREATE DATABASE students;

--Создание схемы hr CREATE SCHEMA hr;

--Указываем путь к данной схеме

ALTER DATABASE students SET search_path = hr;

-- Проверка пользователя

SELECT current_user;

--Создание таблицы Jobs CREATE TABLE jobs (

job_id varchar(10) PRIMARY KEY, job_title varchar(35) NOT NULL, min_salary integer,

max_salary integer

);

--Заполнение таблицы jobs

INSERT INTO jobs values

('AD_PRES', 'President', 20080, 40000),

('AD_VP', 'Administration Vice President', 15000, 30000),

('AD_ASST', 'Administration Assistant', 3000, 6000), ('FI_MGR', 'Finance Manager', 8200, 16000), ('FI_ACCOUNT', 'Accountant', 4200, 9000),

9

('SA_MAN', 'Sales Manager', 10000, 20080), ('PU_MAN', 'Purchasing Manager', 8000, 15000), ('PU_CLERK', 'Purchasing Clerk', 2500, 5500), ('ST_MAN', 'Stock Manager', 5500, 8500), ('ST_CLERK', 'Stock Clerk', 2008, 5000), ('IT_PROG', 'Programmer', 4000, 10000), ('MK_MAN', 'Marketing Manager', 9000, 15000),

('HR_REP', 'Human Resources Representative', 4000, 9000);

--Создание таблицы Departments CREATE TABLE departments (

department_id integer PRIMARY KEY, department_name varchar(30) NOT NULL, manager_id integer

);

--Заполнение таблицы Departments

INSERT INTO departments VALUES (10, 'Administration', 51), (20, 'Marketing', 52), (30, 'Purchasing', 15),

(40, 'Human Resources', 53), (50, 'Shipping', 22),

(60, 'IT', 4), (80, 'Sales', 46),

(90, 'Executive', 1), (100, 'Finance', 9);

-- Создание таблицы employees

10

Соседние файлы в папке ЛР6