Главная страница
Навигация по странице:

  • ОТЧЁТ по лабораторной работе №1 «Ознакомление с основами работы в среде PostgreSQL» по дисциплине: « Базы данных »

  • Создание базы и подключение к ней.

  • Создание таблиц.

  • Редактирование таблицы

  • Добавление данных.

  • Объединение таблиц

  • Отчёт по лабораторной работе 1 Ознакомление с основами работы в среде Postgresql по дисциплине Базы данных


    Скачать 176.18 Kb.
    НазваниеОтчёт по лабораторной работе 1 Ознакомление с основами работы в среде Postgresql по дисциплине Базы данных
    Дата27.02.2023
    Размер176.18 Kb.
    Формат файлаdocx
    Имя файлаAVT-018_Abdykadyrov_DB_LAB1V7.docx
    ТипДокументы
    #958004

    МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
    ФЕДЕРАЛЬНОЕ государственное БЮДЖЕТНОЕ

    образовательное учреждение

    высшего образования

    «НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

    __________________________________________________________________
    Факультет автоматики и вычислительной техники

    Кафедра вычислительной техники



    ОТЧЁТ

    по лабораторной работе №1

    «Ознакомление с основами работы в среде PostgreSQL»

    по дисциплине: «Базы данных»

    Вариант №7

    Выполнил:Преподаватель:

    студент гр. АВТ-018 Булатов А. Д.

    Абдыкадыров Э.А.______________

    (оценка, подпись)

    Новосибирск

    2022г.
    1. Цель работы


    Изучить базовые операции по работе с базой данных. Изучить синтаксис команд. Приобрести навыки создания баз данных, создания, заполнения и модификации таблиц в PostgreSQL.
    1. Задание


    Создать и заполнить базу данных своего варианта в PostgreSQL. Таблицы (минимум по 10 записей в каждой) связать между собой полями идентификаторов. С помощью команд интерактивного терминала psql просмотреть структуру базы данных, структуру таблиц, просмотреть данные в них, изменить структуру таблиц, добавить столбцы, добавить данные, создать столбцы с пользовательскими типами данных. Предусмотреть наличие таблиц-справочников и таблиц, использующих справочники.

    Вариант 7: Создать и заполнить базу данных для учета работы типографии, состоящую из пяти таблиц. Первая таблица должна содержать поля: идентификатор продукции, идентификатор типа продукции (например, этикетка, коробка, блокнот и т.п.), идентификатор материала, количество, стоимость заказа и другие поля при необходимости. Вторая: идентификатор заказчика, наименование заказчика, идентификатор города, где находится заказчик, способ расчета (наличный, безналичный) и другие поля при необходимости. Третья: идентификатор материала, тип используемого материала, количество материала, стоимость расходных материалов и другие поля при необходимости. Четвертая: справочник городов. Пятая: справочник типов продукции. На основании созданных таблиц создать таблицу, содержащую, например, поля: наименование заказчика, город, где находится заказчик, тип продукции, тип используемого материала, стоимость заказа.

    1. Ход работы




    Рис 1. Диаграмма базы данных

    Создание базы и подключение к ней.

    Для создания базы в PostgreSQL используется команда create database.

    Синтаксис:

    CREATE DATABASE имя_базы;

    Для подключения к БД используется команда \c.

    Синтаксис:

    \c имя_базы;

    Результаты выполнения:

    Создание таблиц.

    Для создания таблицы также используется команда create table. У этой команды существует много вариантов, и мы рассмотрим лишь основные ее параметры

    Синтаксис:

    CREATE TABLE таблица [( имя_поля тип_поля[(размерность)] [....])] [AS запрос];

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

    Результаты выполнения:



    Редактирование таблицы

    Для редактирования таблицы используется команда alter table. У нее много вариантов, однако нам интересны лишь варианты, позволяющие добавлять и удалять колонки

    Синтаксис добавления колонки:

    ALTER TABLE ADD имя тип[(размерность)];

    Синтаксис удаления колонки

    ALTER TABLE DROP имя;

    Результаты выполнения:



    Добавление данных.

    Для добавления данных используется команда insert.

    Синтаксис:

    INSERT INTO таблица [(имя_поля [...])] VALUES (значение [...]);

    Параметр имя_поля позволяет явно указать поля, для которых задаются значения.

    Результаты выполнения:



    Объединение таблиц

    Для объединения таблиц создается новая таблица с помощью команды create table с использованием секции as. В этой секции указывается запрос, объединяющий таблицы с помощью параметра left join. Синтаксис команды select для такой операции приведен ниже.

    Синтаксис:

    FROM таблица1 [ LEFT | RIGHT ] JOIN таблица2 ON таблица1.поле1 оператор_сравнения таблица2.поле2

    Операции LEFT JOIN и RIGHT JOIN состоят из следующих элементов:

    Часть

    Описание

    таблица1,

    таблица2

    Имена таблиц, содержащих объединяемые записи.

    поле1,поле2

    Имена объединяемых полей. Поля должны относиться к одному типу данных и содержать данные одного вида. Однако имена этих полей могут быть разными

    оператор_сравнения

    Любой оператор сравнения: "=," "<," ">," "<=," ">=," или "<>."

    Результаты выполнения:


    1. Выводы.


    В ходе работы создана учебная база данных, состоящая из 5 таблиц. Получены базовые знания по использованию основных команд терминала PostgreSQL, созданию баз данных и таблиц, добавлению, удалению и редактированию данных, добавлению и удалению полей таблицы, объединению таблиц, формированию запросов. Кроме того, изучены основные типы данных, применяемы при создании таблиц в PostgreSQL.

    Приложение.


    create database dblabs;

    \c dblabs;

    CREATE SCHEMA lab1v7;

    CREATE TABLE lab1v7.product_type (id SERIAL PRIMARY KEY, name_product VARCHAR NOT NULL);

    CREATE TABLE lab1v7.material (id SERIAL PRIMARY KEY, title VARCHAR NOT NULL, amount INT NOT NULL, order_cost REAL NOT NULL);

    CREATE TABLE lab1v7.cities (id SERIAL PRIMARY KEY, name_city VARCHAR NOT NULL);

    CREATE TABLE lab1v7.order (id SERIAL PRIMARY KEY, product_id INT NOT NULL, product_type_id INT NOT NULL, material_id INT NOT NULL, amount INT NOT NULL, order_price REAL NOT NULL, FOREIGN KEY (product_type_id) REFERENCES lab1v7.product_type(id), FOREIGN KEY (material_id) REFERENCES lab1v7.material(id));

    CREATE TABLE lab1v7.order_details (order_id INT PRIMARY KEY, city_id INT NOT NULL, customer_id INT NOT NULL, customer_name VARCHAR NOT NULL, FOREIGN KEY (order_id) REFERENCES lab1v7.order(id), FOREIGN KEY (city_id) REFERENCES lab1v7.cities(id));

    INSERT INTO lab1v7.product_type(name_product) values('box');

    INSERT INTO lab1v7.product_type(name_product) values('label');

    INSERT INTO lab1v7.product_type(name_product) values('label');

    INSERT INTO lab1v7.product_type(name_product) values('notepad');

    INSERT INTO lab1v7.product_type(name_product) values('laptop');

    INSERT INTO lab1v7.product_type(name_product) values('brochure');

    INSERT INTO lab1v7.product_type(name_product) values('note');

    INSERT INTO lab1v7.cities(name_city) values('Oslo');

    INSERT INTO lab1v7.cities(name_city) values('Moscow');

    INSERT INTO lab1v7.cities(name_city) values('Novosibirsk');

    INSERT INTO lab1v7.cities(name_city) values('Omsk');

    INSERT INTO lab1v7.cities(name_city) values('Tomsk');

    INSERT INTO lab1v7.cities(name_city) values('Saint Petersburg');

    INSERT INTO lab1v7.cities(name_city) values('Seoul');

    INSERT INTO lab1v7.cities(name_city) values('Berlin');

    INSERT INTO lab1v7.cities(name_city) values('Stockholm');

    INSERT INTO lab1v7.cities(name_city) values('Tirion');

    INSERT INTO lab1v7.cities(name_city) values('Kiyv');

    INSERT INTO lab1v7.material(title, amount, order_cost) values('paper', 312, 2107);

    INSERT INTO lab1v7.material(title, amount, order_cost) values('box', 573, 3009);

    INSERT INTO lab1v7.material(title, amount, order_cost) values('paint', 968, 1005);

    INSERT INTO lab1v7.material(title, amount, order_cost) values('duct tape', 95, 958);

    INSERT INTO lab1v7.material(title, amount, order_cost) values('plastiс', 684, 987);

    INSERT INTO lab1v7.material(title, amount, order_cost) values('metal', 309, 5600);

    INSERT INTO lab1v7.material(title, amount, order_cost) values('offset paper', 862, 9852);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(1, 2, 2, 87, 8469);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(2, 5, 5, 49, 2946);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(2, 5, 3, 49, 2946);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(3, 8, 6, 85, 9411);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(3, 2, 6, 85, 9411);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(4, 1, 14, 16, 3210);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(4, 1, 6, 16, 3210);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(5, 6, 8, 91, 1234);

    insert into lab1v7.order (product_id, product_type_id, material_id, amount, order_price) values(6, 2, 4, 31, 8246);

    INSERT INTO lab1v7.order_details (order_id, city_id, customer_id, customer_name) values(1, 3, 2, 'Lil Wayne');

    INSERT INTO lab1v7.order_details (order_id, city_id, customer_id, customer_name) values(4, 2, 1, 'Lil Skies');

    INSERT INTO lab1v7.order_details (order_id, city_id, customer_id, customer_name) values(6, 5, 4, 'Aragorn II was the son of Arathorn II');

    INSERT INTO lab1v7.order_details (order_id, city_id, customer_id, customer_name) values(8, 7, 3, 'Vadim');

    INSERT INTO lab1v7.order_details (order_id, city_id, customer_id, customer_name) values(10, 3, 7, 'Max');

    INSERT INTO lab1v7.order_details (order_id, city_id, customer_id, customer_name) values(11, 8, 10, 'Turis');

    INSERT INTO lab1v7.order_details (order_id, city_id, customer_id, customer_name) values(14, 2, 8, 'JoJo');

    CREATE TABLE lab1v7.mix AS (SELECT "order".id AS "order_id", "details".customer_name AS "customer_name","cities".name_city AS "customer_city","product_type".name_product AS "product_type", "material".title AS "material_type", "order".order_price AS "order_price" FROM lab1v7.order AS "order" LEFT JOIN LAB1v7.order_details AS "details" ON "order".id = "details".order_id LEFT JOIN lab1v7.product_type AS "product_type" ON "order".product_type_id = "product_type".id LEFT JOIN lab1v7.material AS "material" ON "order".material_id = "material".id LEFT JOIN lab1v7.cities AS "cities" ON "details".city_id = "cities".id);


    написать администратору сайта