Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ud / lab4.docx
Скачиваний:
8
Добавлен:
09.04.2015
Размер:
50.53 Кб
Скачать

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

Московский государственный университет печати имени Ивана Фёдорова

Кафедра «Медиасистемы и технологии»

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

По дисциплине «Управление данными»

Выполнил: студент группы ДЦИТД 4-1 Ананьев Ф.С.

Проверил: старший преподаватель Куракин П.В.

Москва, 2012 г.

Постановка задачи

В ходе выполнения лабораторной нужно продолжить освоение среды DreamCoder, создав базу данных с двумя таблицами, в предыдущих лабораторных не используемыми; еще раз проверив целостность базы данных и произведя несколько новых запросов.

Ход выполнения

В первую очередь я создал базу данных лабораторной работы: lab_base5:

CREATE database lab_base5;

Далее я создал таблицу продавцов с полями номера, имени и комиссии продавца. После этого я заполнил данными таблицу.

DROP TABLE IF EXISTS salespeople, products, orders, categories;

CREATE TABLE salespeople

(sid int not null auto_increment,

sname text not null,

comm decimal(5,5),

primary key (sid))

engine = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO salespeople

(sid, sname, comm) VALUES

(1, "Иван Жадов", "0.12"),

(2, "Федор Захапов", "0.15"),

(3, "Максим Хитров", "0.14"),

(4, "Алиса Тырь", "0.12");

Далее я создал таблицу категорий с двумя полями — порядкового номера категории (он стал первичным ключом) и названия категории. После этого я заполнил таблицу тремя строками.

CREATE TABLE categories

(pcategory_id int not null auto_increment,

pcname text not null,

primary key (pcategory_id))

engine = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO categories

(pcategory_id, pcname) VALUES

(1, "Чайники"),

(2, "Микроволновки"),

(3, "Телевизоры");

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

CREATE TABLE products

(pid int not null auto_increment,

pbrand text,

pcategory_id int,

pname text,

pquantity int,

pcost decimal (15,2),

primary key (pid),

foreign key(pcategory_id) references categories(pcategory_id)

ON UPDATE CASCADE)

engine = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO products

(pid, pbrand, pcategory_id, pname, pquantity, pcost) VALUES

(1, "Samsung", 1, "Выхлоп", 3, "650.5"),

(DEFAULT, "Samsung", 1, "Фонтан", 5, "790.0"),

(DEFAULT, "Black mesa", 2, "Black mesa-1", 7, "2200.0"),

(DEFAULT, "Black mesa", 3, "Излучатель-3", 9, "9000.0");

Так выглядит таблица продуктов после заполнения:

pid

pbrand

pcategory_id

pname

pquantity

pcost

1

Samsung

1

Выхлоп

3

650,5

2

Samsung

1

Фонтан

5

790

3

Black mesa

2

Black mesa-1

7

2200

4

Black mesa

3

Излучатель-3

9

9000

Последней таблицей стала таблица заказов, содержащая поля номера заказа, даты, суммы заказа, а также номера участвовавших покупателя и продавца. В таблице два поля выступают в роли внешних ключей: одно ссылается на номер продукта, другое — на номер продавца. Эту таблицу так же, как и предыдущие, я заполнил данными.

CREATE TABLE orders

(oid int not null auto_increment,

odate DATE,

amt DECIMAL(15,2),

pid int,

sid int,

primary key(oid),

foreign key(pid) references products(pid)

ON DELETE CASCADE ON UPDATE CASCADE,

foreign key(sid) references salespeople(sid)

ON DELETE CASCADE ON UPDATE CASCADE)

engine = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO orders

(oid, odate, amt, pid, sid) VALUES

(DEFAULT, "2009-09-1", "650.5", 1, 1),

(DEFAULT, "2009-09-10", "790.0", 2, 2),

(DEFAULT, "2009-10-1", "2200.0", 3, 3),

(DEFAULT, "2009-11-15", "9000.0", 4, 1),

(DEFAULT, "2009-12-4", "650.5", 1, 2);

Так выглядит таблица заказов после заполнения:

oid

odate

amt

pid

sid

1

01.09.2009

650,5

1

1

2

10.09.2009

790

2

2

3

01.10.2009

2200

3

3

4

15.11.2009

9000

4

1

5

04.12.2009

650,5

1

2

Соседние файлы в папке ud