Материал: Технологии_Баз_Данных_2020

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

25. Добыча полезных ископаемых

Минимальный список характеристик:

  • Полезное ископаемое, единица измерения, годовая потребность, цена за единицу, тип;

  • Название месторождения, запасы, способ разработки, годовая добыча, себестоимость за единицу;

  • пункт вывоза, пропускная способность путей сообщения данного пункта.

Из одного и того же пункта вывоза могут вывозиться разные полезные ископаемые и одно и то же полезное ископаемое может вывозиться с разных пунктов вывоза.

Выборки:

  • Считая, что показатели даны на текущий год, а ежегодная добыча будет возрастать на 10% каждый год, определить те месторождения, которые будут исчерпаны через 5 лет.

SELECT Месторождение.Название FROM Месторождение

WHERE (Месторождение.Запасы < 4.6 * Месторождение.Годовая добыча)

  • Определить те ископаемые, потребность в которых не удовлетворяется.

SELECT Полезное ископаемое.Название FROM Полезное ископаемое

INNER JOIN Месторождение ON Полезное ископаемое.Месторождение_ID = Месторождение.Месторождение_ID

WHERE (Искапаемое.Годовая потребность > Местрождение.Годовая добыча)

  • Определить, какие ископаемые добываются в 'Эльдорадо', и добыча каких из них является прибыльной.

SELECT Полезные ископаемые.Название FROM Полезные ископаемые

INNER JOIN Месторождение ON Полезное ископаемое.Месторождение_ID = Месторождение.Месторождение_ID

WHERE (Месторождение.Название = "Эльдорадо" AND Месторождение.Себестоимость < Полезное искапаемое.Рыночная цена)

  • Выбрать список мест, в которых добывается 'твердое топливо' 'открытым способом'.

SELECT Месторождение.Название FROM Месторождение

INNER JOIN Полезное ископаемое ON Месторождение.Полезное ископаемое_ID = Полезное ископаемое.Полезное ископаемое_ID

WHERE (Полезное ископаемое.Название = "Твердое топливо" AND Месторождение.Способ разработки = "Открытый способ")

26. Автотранспортное предприятие

Минимальный список характеристик:

  • номерной знак автомобиля, марка автомобиля, его техническое состояние, пробег, грузоподъемность, расход топлива,

  • табельный номер водителя, ФИО, дата рождения, стаж работы, оклад, категория;

  • дата выезда, дата прибытия, место назначения, расстояние, расход горючего, масса груза.

Один и тот же автомобиль может использоваться разными водителями и один водитель может использовать разные автомобили.

Выборки:

  • Выбрать автомобиль с наименьшим расходом горючего за данный период.

Возьмём за данный период - февраль 2020 select min(РасходГорючего), Автомобиль.Марка from Поездка INNER JOIN Автомобиль ON Автомобиль.ID = Поездка.АвтомобильID where ДатаВыезда > to_date(31-01-2020) AND ДатаВыезда < to_date(01-03-2020) GROUP BY min(РасходГорючего);

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

Возьмём за заданную марку автомобиля "Citroen" select Водитель.ФИО from Водитель INNER JOIN Поездка ON Водитель.ID = Поездка.ВодительID INNER JOIN Автомобиль ON Автомобиль.ID = Поездка.АвтомобильID where Автомобиль.Марка = "Citroen";

  • Подсчитать количество автомобилей, имеющих плохое техническое состояние.

select count(ID) from Автомобиль where ТехСостояние = "Плохое";

  • Выбрать водителей, которые чаще всего ездят по данному маршруту.

28. Справочная аптек

Минимальный список характеристик:

  • Название лекарства, болезнь, показания к использованию, противопоказания, производитель;

  • Наличие лекарства, тип, дозировка, цена, количество, срок годности;

  • Номер аптеки, специализация аптеки, район, телефон, и т.п.

Тип: таблетки, микстура, мазь и т.д.

ДЛЯ ДАЛЬНЕЙШЕЙ РАБОТЫ НУЖНО ДОБАВИТЬ АТРИБУТ БОЛЕЗНЬ

Выборки:

  • По ассортименту предлагаемых лекарств определить, какой болезнью чаще всего страдают жители района 'Киевский'.

SELECT болезнь, count(болезнь) FROM лекарства

INNER JOIN наличие ON лекарство.наличиеID = наличие.наличиеID

INNER JOIN аптеки ON наличие.аптекаID = аптека.аптекаID

WHERE аптека.район = “Киевский” AND count(болезнь) = max(count(болезнь))

  • Определить, какие убытки понесет аптека №47, если в течение месяца не реализует все лекарства, у которых кончается срок годности.

SELECT sum(цена) as “убытки” FROM наличие

INNER JOIN аптека ON наличие.аптекаID = аптека.аптекаID

WHERE аптека.номер_аптеки = “№47”

AND срок_годности < to_date (‘30-06-2020’)

GROUP BY sum(цена)

  • Определить, в каких аптеках дешевле всего 'анальгин'.

SELECT номер_аптеки FROM аптека

INNER JOIN наличие ON аптека.наличиеID = наличие.наличиеID

INNER JOIN лекарства ON наличие.лекарстваID = лекарство.лекарствоID

WHERE лекарство.название = “анальгин” AND наличие.цена = ( SELECT min(цена) FROM наличие)

  • Выбрать список лекарств, которые подходят для больного, страдающего болезнями 'цирроз печени' и 'ветрянка' одновременно.

SELECT лекарства FROM лекарства

WHERE болезнь = “цирроз печени” AND болезнь = “ветрянка”

30. Изучение студентами дисциплин по выбору.

Минимальный список характеристик:

  • Фамилия студента, адрес, телефон, номер зачетной книжки

  • Деканат, адрес деканата.

  • Номер группы, специальность в группе.

  • Наименование дисциплины, количество лекционных часов и лабораторных занятий.

  • Отметка о сдаче дисциплины.

Каждый студент должен изучить несколько дисциплин по выбору и каждая дисциплина может изучаться несколькими студентами.

Выборки:

  • Получить список студентов, изучающих заданную дисциплину и сдавших ее.

SELECT ФИО FROM студенты

INNER JOIN отметка ON студент.студентID = отметка.студентID

INNER JOIN дисциплина ON отметка.дисциплинаID = дисциплина.дисциплинаID

WHERE отметка.отметка = TRUE

AND Дисциплина.Название = "Математика";

  • Получить список дисциплин, изученных заданным студентом и объем дисциплины.

SELECT дисциплина, объем.дисциплин FROM дисциплина

INNER JOIN студент ON дисциплина.дисциплинаID = студент.дисциплинаID

WHERE студент.фио = ‘ХЕР’

  • Получить список адресов деканатов.

SELECT адрес.деканата FROM деканат