Ознакомление с основами работы в среде PostgreSQL
Автор: Арина Старченко • Ноябрь 24, 2023 • Лабораторная работа • 2,894 Слов (12 Страниц) • 126 Просмотры
Лабораторная работа №1
«Ознакомление с основами работы в среде PostgreSQL»
По дисциплине «Базы данных»
Вариант 4
Факультет:
Группа:
Преподаватель:
Новосибирск 2023
Цель работы
Изучить базовые операции по работе с базой данных. Изучить синтаксис команд. Приобрести навыки создания баз данных, создания, заполнения и модификации таблиц в PostgreSQL.
Задание
Создать и заполнить базу данных своего варианта в PostgreSQL. Таблицы (минимум по 10 записей в каждой) связать между собой полями идентификаторов. Предусмотреть наличие связей типа: «один ко многим». С помощью команд интерактивного терминала psql просмотреть структуру базы данных, структуру таблиц, просмотреть данные в них, изменить структуру таблиц, добавить столбцы, добавить данные, создать столбцы с пользовательскими типами данных. Предусмотреть наличие таблиц-справочников и таблиц, использующих справочники.
Вариант 4: Создать и заполнить базу данных для обработки данных по работе книжной лавки, состоящую из четырех таблиц. Первая таблица должна содержать поля: идентификатор жанра, наименование жанра и другие поля при необходимости. Вторая: идентификатор книги, название книги, автор книги, тираж, идентификатор жанра книги, идентификатор издательства, идентификатор города проживания автора и другие поля при необходимости. Третья: идентификатор издательства, наименование 3 издателя, адрес издательства и другие поля при необходимости. Четвертая: справочник городов. На основании созданных таблиц создать таблицу, содержащую, например, поля: название книги, автор книги, город проживания автора, жанр, издательство.
Ход работы
Создание базы данных book_shop
postgres=# CREATE DATABASE book_shop;
CREATE DATABASE
postgres=# \c book_shop
Вы подключены к базе данных "book_shop" как пользователь "postgres".
Создание пользовательского типа данных
CREATE TYPE genre_type AS ENUM('детектив', 'фантастика', 'комедия', 'мелодрама', 'боевик', 'ужасы', 'трагедия', 'приключения', 'поэзия', 'триллер');
CREATE TYPE
Создание таблицы genres
book_shop=# CREATE TABLE genres (id_genre serial PRIMARY KEY, name_genre genre_type);
CREATE TABLE
book_shop=# \d genres;
[pic 1]
Рисунок 1. Результат создания таблицы genres
Создание таблицы production
book_shop=# CREATE TABLE production (id_production serial PRIMARY KEY, name_production VARCHAR(75), address VARCHAR(75));
CREATE TABLE
book_shop=# \d production
[pic 2]
Рисунок 2. Результат создания таблицы production
Создание таблицы cities
book_shop=# CREATE TABLE cities (id_city serial PRIMARY KEY, name_city VARCHAR(25));
CREATE TABLE
book_shop=# \d cities
[pic 3]
Рисунок 3. Результат создания таблицы cities
Создание таблицы books
book_shop=# CREATE TABLE books (id_book serial PRIMARY KEY, name_book VARCHAR(75), author VARCHAR(50), tirag INTEGER, id_genre INTEGER REFERENCES genres (id_genre), id_production INTEGER REFERENCES production (id_production), id_city INTEGER REFERENCES cities (id_city));
CREATE TABLE
book_shop=# \d books;
[pic 4]
Рисунок 4. Результат создания таблицы books
Заполнение таблицы genres
book_shop=# INSERT INTO genres VALUES
(DEFAULT, 'детектив'),
(DEFAULT, 'фантастика'),
(DEFAULT, 'комедия'),
(DEFAULT, 'мелодрама'),
(DEFAULT, 'боевик'),
(DEFAULT, 'ужасы'),
(DEFAULT, 'трагедия'),
(DEFAULT, 'приключения'),
(DEFAULT, 'поэзия'),
(DEFAULT, 'триллер');
INSERT 0 10
book_shop=# SELECT * FROM genres;
[pic 5]
Рисунок 5. Заполненная таблица genres
Заполнение таблицы production
book_shop=# INSERT INTO production VALUES
(DEFAULT, 'Эксмо', 'Россия, Москва, Зорге 1/1'),
(DEFAULT, 'ЛЕМА', 'Россия, Санкт-Петербург, Проспект Средний В.О. 24'),
(DEFAULT, 'Росмэн', 'Россия, Москва, Октябрьская 4/2'),
(DEFAULT, 'Фламинго', 'Россия, Москва, Верхняя Масловка 16'),
...