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


