Новосибирский государственный технический университет
Кафедра вычислительной техники
Лабораторная работа
по дисциплине Базы данных
«Ознакомление с основами PostgreSQL»
Факультет: АВТ
Группа: АМ-809
Студент: Барсуков Д.О.
Преподаватель: Трошина Г.В
Вариант: 1
Новосибирск 2011
Цель работы. Изучить базовые операции по работе с базой данных. Изучить синтаксис команд. Приобрести навыки создания баз данных, создания, заполнения и модификации таблиц в PostgreSQL.
Задание. Создать и заполнить базу данных своего варианта в PostgreSQL. Таблицы (минимум по 5 записей в каждой) связать между собой полями идентификаторов. С помощью команд интерактивного терминала psql просмотреть структуру базы данных, структуру таблиц, просмотреть данные в них, изменить структуру таблиц, добавить столбцы, добавить данные, создать столбцы с пользовательскими типами данных.
Вариант 1. Создать и заполнить базу данных игроков хоккейной команды, состоящую из четырех таблиц. Первая таблица должна содержать поля: имя, фамилия, дата рождения, рост, вес. Вторая: игровая позиция (вратарь, защитник, нападающий), игровой номер, размер коньков, хват клюшки (левый или правый). Третья: оклад, премия (выплата за каждое очко по системе «гол+пас»), штраф (за каждую минуту штрафного времени в игре, начиная с 30% игрового времени). Четвертая: количество голов, количество голевых передач, штрафное время, игровое время. На основании созданных таблиц создать таблицу, содержащую поля: имя, фамилия, игровая позиция, игровой номер, оклад, игровое время.
Выполнениеработы
postgres=# create database var1;
CREATE DATABASE
postgres=# \c var1
You are now connected to database "var1".
var1=# create type pos as enum('goalkeeper','defender','forward');
CREATE TYPE
var1=# create type grip as enum('left','right');
CREATE TYPE
var1=# create table people(id int, name char(15), surname char(15), birthday date);
CREATE TABLE
var1=# alter table people add height int;
ALTER TABLE
var1=# alter table people add weight int;
ALTER TABLE
var1=# create table players(id int, position pos, number int, size int, gr grip);
CREATE TABLE
var1=# create table money(id int, salary int, bonus int, penalty int);
CREATE TABLE
var1=# create table statistics(id int, totalgoals int, totalassists int, penaltytime int, gametime int);
CREATE TABLE
var1=# insert into people values(1,'dmitry','kosoy','1991-02-12',184,72);
INSERT 0 1
var1=# insert into people values(2,'vasya','lenin','1950-01-01',163,90);
INSERT 0 1
var1=# insert into people values(3,'elena','bobruiskaya','1993-02-05',170,65);
INSERT 0 1
var1=# insert into people values(4,'victor','zhoi','1976-08-08',180,78);
INSERT 0 1
var1=# insert into people values(5,'evgenii','oslov','1990-01-05',190,86);
INSERT 0 1
var1=# select * from people;
var1=# insert into players values(1,'forward',1,44,'right');
INSERT 0 1
var1=# insert into players values(2,'goalkeeper',1,40,'left');
INSERT 0 1
var1=# update players set number=2 where id=2;
UPDATE 1
var1=# insert into players values(3,'defender',3,37,'right');
INSERT 0 1
var1=# insert into players values(4,'defender',4,44,'right');
INSERT 0 1
var1=# insert into players values(5,'defender',5,43,'right');
INSERT 0 1
var1=# select * from players;
var1=# insert into money values(1,40000,500,500);
INSERT 0 1
var1=# insert into money values(2,30000,400,800);
INSERT 0 1
var1=# insert into money values(3,20000,700,700);
INSERT 0 1
var1=# insert into money values(4,25000,300,300);
INSERT 0 1
var1=# insert into money values(5,27000,300,300);
INSERT 0 1
var1=# select * from money;
var1=# insert into statistics values(1,15,45,10,300);
INSERT 0 1
var1=# insert into statistics values(2,0,0,50,250);
INSERT 0 1
var1=# insert into statistics values(3,4,7,150,170);
INSERT 0 1
var1=# insert into statistics values(4,10,25,40,200);
INSERT 0 1
var1=# insert into statistics values(5,12,30,20,250);
INSERT 0 1
var1=# select * from statistics;
var1=# create table out as select people.id,people.name,people.surname,players.p
osition,players.number,money.salary,statistics.gametime from people inner join p
layers on people.id = players.id inner join money on people.id = money.id inner
join statistics on people.id = statistics.id;
SELECT 5
var1=# select * from out;
var1=# \d+
var1=# \d+ players
var1=# \d+ out
Выводы
В результате выполнения лабораторной работы я изучил базовые возможности СУБД PostgreSQL 9.0, в частности: освоил команды создания баз данных и таблиц, изменения таблиц; команды вставки, изменения и удаления записей; некоторые способы реорганизации таблиц. На практике ощутил ценность и мощь современных СУБД.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.