Индексы, ограничения и язык запросов в Postgres

Страницы работы

Содержание работы

Министерство образования и науки Российской Федерации

Новосибирский государственный технический университет

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

Лабораторная работа №5

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

Индексы, ограничения и язык запросов в Postgres.

Факультет: АВТ                                                                         Преподаватель:

Группа:       АМ-610                                                                   Менжулин С. А.

Вариант:     9

Студенты:  Королевская В.Е.

                    Таратухин И.И.

Новосибирск, 2009


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

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

2.  Задание

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

3.  индивидуальная часть

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

4.  Ход работы

·  Создаем нового пользователя и заходим под его именем

C:\Users\Виталинка>psql -U postgres

Password for user postgres:

psql (8.4.2)

WARNING: Console code page (866) differs from Windows code page (1251)

         8-bit characters might not work correctly. See psql reference

         page "Notes for Windows users" for details.

Type "help" for help.

postgres=# create user lab01 with password 'postgres' createdb createuser valid until 'infinity';

CREATE ROLE

postgres=# \q

C:\Users\Виталинка>psql -U lab01

Password for user lab01:

psql: FATAL:  database "lab01" does not exist

C:\Users\Виталинка>psql -U lab01 template1

Password for user lab01:

psql (8.4.2)

WARNING: Console code page (866) differs from Windows code page (1251)

         8-bit characters might not work correctly. See psql reference

         page "Notes for Windows users" for details.

Type "help" for help.

template1=# create database remont;

CREATE DATABASE

template1=# \q

C:\Users\Виталинка>psql -U lab01 remont

Password for user lab01:

psql (8.4.2)

WARNING: Console code page (866) differs from Windows code page (1251)

         8-bit characters might not work correctly. See psql reference

         page "Notes for Windows users" for details.

Type "help" for help.

remont=#

·  Создать  и заполнить базу данных ремонтной мастерской, состоящую из трех таблиц. Первая таблица должна содержать поля: дата заказа, количество ремонтируемых предметов.

remont=# CREATE TABLE zakaz

(

  data_z date,

  kol_p integer,

  id integer

);

CREATE TABLE

remont=# \dt zakaz

       List of relations

 Schema | Name  | Type  | Owner

--------+-------+-------+-------

 public | zakaz | table | lab01

(1 row)

Вторая: вид ремонтируемого предмета, стоимость ремонта.

remont=# CREATE TABLE predmet

(  vid text,

   stoimost double precision,

   id integer

);

CREATE TABLE

remont=# \dt predmet

         List of relations

 Schema |   Name   | Type  | Owner

--------+----------+-------+-------

 public | predmet  | table | lab01

(1 row)

Третья: имя, фамилия, дата рождения, адрес проживания.

remont=# CREATE TABLE zakazchik

(

  fam character varying(30),

  "name" character varying(20),

  birthdate date,

  adress text,

  id integer

);

CREATE TABLE

remont=# \dt zakazchik

         List of relations

 Schema |   Name    | Type  | Owner

--------+-----------+-------+-------

 public | zakazchik | table | lab01

(1 row)

Заполнение базы данных

remont=# INSERT INTO zakaz (data_z,kol_p,id) VALUES ('2008-03-12',2,1);

INSERT 0 1

Похожие материалы

Информация о работе

Предмет:
Базы данных
Тип:
Отчеты по лабораторным работам
Размер файла:
53 Kb
Скачали:
0