• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите С Запросом Sql

  • Автор темы sery80
  • Дата начала
S

sery80

Есть 4 таблицы:

студенты
SQL:
create table stud(
id integer not null primary key,
fio varchar2(50) not null unique
);

преподаватели
SQL:
create table teach(
id integer not null primary key,
fio varchar2(50) not null unique
);

лекции
SQL:
create table lect(
stud integer not null references stud(id),
teach integer not null references teach(id),
subj varchar2(20) not null, -- изучаемый предмет
lectdate timestamp not null, -- начало лекции
lectdur integer not null, -- длительность лекции в минутах
room varchar2(20) not null
);
-- аудитория
Если есть запись в этой таблице - значит студент был на лекции. Если хотя бы один студент был на лекции, лекция была. Все студенты из одной группы.


Для продвинутого уровня:
Таблица лабиринт
SQL:
create table maze(
room1 varchar2(20) not null,
room2 varchar2(20) not null
);
если в таблице есть запись, значит между комнатой1 и комнатой2 есть проход.

1.
Вывести "журнал пропусков". Колонки: имя студента, "математика", "физика", "программирование", "экономика", "всего", "всего за посл. месяц". Строки - количество пропущеных лекций.
2.
Продвинутый уровень. Найти кратчайший путь в лабиринте из комнаты1 в комнату2, которые передаются как параметры запроса. НЕ PL/SQL! Один запрос на SQL.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!