Министерство образования и науки РФ
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Новосибирский государственный технический университет
«Ознакомление с основами PostgreSQL»
Студенты:
Эйрих Н.
Мельник Ю.
Преподаватель: Трошина Г.В.
Факультет: АВТ
Группа: АМ-710
Вариант: 7
Цель работы: Изучить базовые операции по работе с базой данных. Изучить синтаксис команд. Приобрести навыки создания пользователей и баз данных, создания, заполнения и модификации таблиц, работы с транзакциями, выгрузки и загрузки баз данных в PostgreSQL.
Задание. Общая часть: Ознакомиться с теоретическими сведениями о возможностях создания пользователей и баз данных, использования транзакций в PostgreSQL. Создать нового пользователя и зайти под его именем. Создать и заполнить базу данных своего варианта. Таблицы (минимум по 5 записей в каждой) связать между собой полями идентификаторов. С помощью команд интерактивного терминала psql просмотреть структуру базы данных, структуру таблиц, просмотреть данные в них. Создать транзакционный блок, в котором производится добавление в таблицы произвольных полей, создать несколько производных таблиц, просмотреть структуру измененных таблиц. Не завершая транзакции параллельно запустить еще одно окно терминала, подключиться к базе и попробовать добавить и удалить записи в таблицы. Сделать откат транзакций, просмотреть структуру таблиц. Сохранить базу данных в файл. Удалить базу данных и восстановить ее из файла. Сохраненная база данных необходима для выполнения последующих работ.
Вариант 7: Создать и заполнить базу данных для учета работы типографии, состоящую из трех таблиц. Первая таблица должна содержать поля: тип продукции (этикетка, упаковка и т.п.), количество, стоимость заказа. Вторая: имя заказчика, адрес, способ расчета (наличный, безналичный). Третья: срок выполнения (до какого числа нужно выполнить заказ), тип используемого материала, количество материала, стоимость расходных материалов. На основании созданных таблиц создать таблицу, содержащую поля: имя заказчика, тип продукции, тип используемого материала, стоимость заказа.
1. Создание первой таблицыtbl1, содержащей поля : тип продукции, количество, стоимость заказа.
CREATE TABLE TLB(TYPE CHAR (10),NUM NUMERIC (3),PRICE NUMERIC (3),id SERIAL);
Заполнение полей таблицы TLB:
INSERT INTO TLB VALUES (‘ETIKETCA’, 400, 200);
2. Создание и заполнение второй таблицы tbl2, содержащей поля: имя заказчика, адрес, способ расчета (наличный, безналичный).
CREATE TABLE TBL2 (NAME CHAR (12), ADRESS CHAR (15),PAY CHAR (6));
INSERT INTO TBL2 VALUES (‘ANNA’, ‘NSK’, 'NAL');
3. Создание и заполнение третьей таблицы tlb3, содержащей поля: срок выполнения, тип используемого материала, количество материала, стоимость расходных материалов.
CREATE TABLE TLB3(SROK DATE,TYPE_M CHAR (12), NUM_M NUMERIC (5),PRICE_M NUMERIC (5));
INSERT INTO TLB3 VALUES ('2010-01-27', 'LIST', 50, 4);
Далее для каждой таблицы были добавлены поля (id, id_name и id_srok).
На основании созданных таблиц создали таблицу TEMP, содержащую поля: 1. имя заказчика, тип продукции, тип используемого материала, стоимость заказа.
create table temp as (select tbtmp2.name, tbtmp1.type, tbtmp3.type_m, tb
tmp1.price from tlb as tbtmp1, tbl2 as tbtmp2, tlb3 as tbtmp3 where tbtmp1.id=tb
tmp2.id_name and tbtmp1.id=tbtmp3.id_srok);
2. Метод inner join:
create table TEMPT as( select tlb.type, tlb.num, tbl2.name, tbl2.pay, tl
b3.srok, tlb3.num_m from tlb inner join tbl2 on tlb.id=tbl2.id_name inner join t
lb3 on tlb3.id_srok=tlb.id);
3. Методinherits;
create table tempt3(pole2 int) inherits(tempt);
Редактирование таблиц
1. Добавить новое поле (pole2) в таблицу tempt:
ALTER TABLE temp7 ADD pole int;
2. Обновить значение в pole2 в таблице tempt в записи num_m=70:
update tempt set pole2=300 where num_m=70;
3. Удалить запись num=200:
delete from tempt where num=200;
Транзакции
Вход в транзакцию: begin;
Применить изменения: commit;
Создать точку останова: savepoint point1;
Вернуться на точку останова: rollback;
Пример 1:
В первом окне входим в режим транзакции и удаляем запись в таблице tempt:
begin;
delete from tempt where num=100;
select *from tempt;
Во втором окне открываем таблицу tempt и просматриваем:
select *from tempt;
Запись не удалилась!
В первом окне делаем команду commit и сохраняем изменения:
commit;
Во втором окне делаем просмотр и видим:
Запись удалена!
Пример 2:
В первом окне входим в режим транзакции, делаем точку останова point1 и удаляем запись в таблице tempt:
begin;
savepoint point1;
delete from tempt where num=100;
select *from tempt;
Во втором окне открываем таблицу tempt и просматриваем:
select *from tempt;
Запись не удалилась!
В первом окне делаем команду rollback и просматриваем таблицу:
rollback;
Вернулись в исходное состояние.
Выводы:
В ходе лабораторной работы мы изучили набор базовых операций по работе с базой данных. Изучили синтаксис команд. Приобрели навыки создания пользователей и баз данных, создания, заполнения и модификации таблиц, работы с транзакциями, выгрузки и загрузки баз данных в PostgreSQL.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.