Фирме принадлежит небольшая флотилия рыболовных катеров.

Фирме принадлежит небольшая флотилия рыболовных катеров. Каждый катер имеет «паспорт», куда занесены его название, тип, водоизмещение и дата постройки. Фирма регистрирует каждый выход на лов, записывая название катера, имена и адреса членов команды с указанием их должностей (капитан, боцман и т. д.), даты выхода и возвращения, а также вес пойманной рыбы отдельно по сортам (например, трески). За время одного рейса катер может посетить несколько рыболовных мест (банок). Фиксируется дата прихода на каждую банку и дата отплытия, качество выловленной рыбы (отличное, хорошее, плохое). На борту улов не взвешивается.

CREATE DATABASE RIBALKA;

SHOW DATABASES;

USE RIBALKA;

таблица 1-выход

таблица 1 - выход

№ выхода

№ катера

дата выхода

дата возрата


CREATE TABLE vihod (№_vihoda VARCHAR(128), №_katera VARCHAR(128), data_vihoda VARCHAR(128), data_vozrata VARCHAR(128));

INSERT INTO vihod VALUES('1', '1', '01.02.13', '03.02.13');

LOAD DATA LOCAL INFILE 'D:/sql/vihod. txt' INTO TABLE vihod;

SELECT * FROM vihod;

таблица 2-катер

таблица 2 - катер

№ катера

название

водоизмещение

год постройки


CREATE TABLE KATER (№_KATERA VARCHAR(128), №_NAZVANIE VARCHAR(128), VODOIZMESCHENIE VARCHAR(128), GOD_POSTROYKI VARCHAR(128));

INSERT INTO KATER VALUES('1', '1', '300', '2000');

LOAD DATA LOCAL INFILE 'D:/sql/KATER. txt' INTO TABLE KATER;

SELECT * FROM KATER;

ТАБЛИЦА 3 КОМАНДА

таблица 3 - команда

№катера

№ выхода

№ моряка


CREATE TABLE KOMANDA (№_KATERA VARCHAR(128), №_VIHODA VARCHAR(128), №_MORYAKA VARCHAR(128));

НЕ нашли? Не то? Что вы ищете?

INSERT INTO KOMANDA VALUES('1', '1', '1');

LOAD DATA LOCAL INFILE 'D:/sql/KOMANDA. txt' INTO TABLE KOMANDA;

SELECT * FROM KOMANDA;

ТАБЛИЦА 4 – ТИП

таблица 4- тип

№ катера

тип катера


CREATE TABLE TIP (№_KATERA VARCHAR(128), TIP_KATERA VARCHAR(128));

INSERT INTO TIP VALUES('1', 'Antique');

LOAD DATA LOCAL INFILE 'D:/sql/TIP. txt' INTO TABLE TIP;

SELECT * FROM TIP;

ТАБЛИЦА 5 – БАНКА

таблица 5 - банка

№ банки

местоположение

широта

долгота



CREATE TABLE BANKA (№_BANKI VARCHAR(128), SCHIROTA VARCHAR(128), DOLGOTA VARCHAR(128));

INSERT INTO BANKA VALUES('1', '28.57', '40.58');

LOAD DATA LOCAL INFILE 'D:/sql/BANKA. txt' INTO TABLE BANKA;

SELECT * FROM BANKA;

ТАБЛИЦА 6 – МОРЯК

таблица 6 - моряк

№ моряка

фио

ДР


CREATE TABLE MORYAK (№_MORYAKA VARCHAR(128), FIO VARCHAR(128), DR VARCHAR(128));

INSERT INTO MORYAK VALUES('1', 'IVANOV_I. P', '01.01.1960');

LOAD DATA LOCAL INFILE 'D:/sql/MORYAK. txt' INTO TABLE MORYAK;

SELECT * FROM MORYAK;

ТАБЛИЦА 7 – ДОЛЖНОСТЬ

таблица 7 - должность

№ моряка

должность


CREATE TABLE DOLGNOST (№_MORYAKA VARCHAR(128), DOLGNOST VARCHAR(128));

INSERT INTO DOLGNOST VALUES('1', 'KAPITAN');

LOAD DATA LOCAL INFILE 'D:/sql/DOLGNOST. txt' INTO TABLE DOLGNOST;

SELECT * FROM DOLGNOST;

ТАБЛИЦА 8 - ПОСЕЩЕНИЕ БАНОК

таблица 8 - посещение банок

№ посещения

№ банки

№ выхода

дата

захода

ухода


CREATE TABLE POSESCHENIE_BANOK (№_POSESCHENIYA VARCHAR(128), №_BANKI VARCHAR(128), №_VIHODA VARCHAR(128), DATA_ZAHODA VARCHAR(128), DATA_UHODA VARCHAR(128));

INSERT INTO POSESCHENIE_BANOK VALUES('1', '1', '1', '02.06.', '03.06');

LOAD DATA LOCAL INFILE 'D:/sql/POSESCHENIE_BANOK. txt' INTO TABLE POSESCHENIE_BANOK;

SELECT * FROM POSESCHENIE_BANOK;

ТАБЛИЦА 9 УЛОВ

таблица 9 - улов

№ выхода

название рыбы

вес


CREATE TABLE ULOV (№_VIHODA VARCHAR(128), NAZVANIE_RYBA VARCHAR(128), VES VARCHAR(128));

INSERT INTO KOMANDA VALUES('1', 'SELEDKA', '300_KG');

LOAD DATA LOCAL INFILE 'D:/sql/ULOV. txt' INTO TABLE ULOV;

SELECT * FROM ULOV;

ТАБЛИЦА 10 - УЛОВ НА БАНКЕ

таблица 10 - улов на банке

№ посещения

№сорт

качество


CREATE TABLE ULOV_NA_BANKE (№_POSESCHENIYA VARCHAR(128), №_SORTA VARCHAR(128), KACHESTVO VARCHAR(128));

INSERT INTO ULOV_NA_BANKE VALUES('1', '1', 'OTLICHNOE');

LOAD DATA LOCAL INFILE 'D:/sql/ULOV_NA_BANKE. txt' INTO TABLE ULOV_NA_BANKE;

SELECT * FROM ULOV_NA_BANKE;

ТАБЛИЦА 11 – СОРТА

таблица 11 - сорты

№ сорта

название


CREATE TABLE SORTA (№_SORTA VARCHAR(128), NAZVANIE VARCHAR(128));

INSERT INTO SORTA VALUES('1', 'KILKA');

LOAD DATA LOCAL INFILE 'D:/sql/SORTA. txt' INTO TABLE SORTA;

SELECT * FROM SORTA;

Запросы

1) По указанному типу и интервалу дат вывести все катера, осуществлявшие выход в море, указав для каждого в хронологическом порядке записи о выходе в море и вес улова.

2) Предоставить возможность добавления выхода катера в море с указанием команды.

3) Для указанного интервала дат вывести для каждого сорта рыбы список катеров с наибольшим уловом.

4) Для указанного интервала дат вывести список банок с указанием среднего улова за этот период. Для каждой банки вывести список катеров, осуществлявших лов.

5) Предоставить возможность добавления новой банки с указанием данных о ней.

6) Для заданной банки вывести список катеров, которые получили улов выше среднего.

7) Вывести список сортов рыбы и для каждого сорта — список рейсов с указанием даты выхода и возвращения, величины улова. При этом список показанных рейсов должен быть ограничен интервалом дат. S'

8) Для выбранного пользователем рейса и банки добавить данные о сорте и количестве пойманной рыбы.

9) Предоставить возможность пользователю изменять характеристики выбранного катера.

10) Для указанного интервала дат вывести в хронологическом порядке список рейсов за этот период времени с указанием для каждого рейса веса пойманной рыбы.

11) Предоставить возможность добавления нового катера.

12) Для указанного сорта рыбы и банки вывести список рейсов с указанием количества пойманной рыбы. Список должен быть отсортирован в порядке уменьшения количества.