Задача 00. Лабораторные работы

Максимальный балл:100   Ограничение времени:1 сек
  Ограничение памяти:512 Мб

Задача 001. Экзамен

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:100  

Задача 00A. Выборка двух полей

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Схема реляционной БД содержит таблицу Clients, в которой хранится список клиентов с полями:

Требуется вывести только ID и фамилию клиента.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 01A. Выборка всех полей

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Схема реляционной БД содержит таблицу SomeTable структура которой неизвестна. Требуется выбрать все поля всех записей данной таблицы.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 01B. Телефонный код города

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Требуется из таблицы TelephoneCodesOfCities со структурой:

выбрать телефонный код города "krasnoyarsk". Города хранятся в БД в нижнем регистре.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 01C. Суммирование полей

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Для таблицы ListOfNumbers, состоящей из двух полей A и B, нужно составить запрос, выводящий абсолютное значение (модуль) суммы значений этих полей.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 01D. Добавление городов

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

В таблицу Cities нужно добавить города Vladivostok, Novosibirsk, Lesozavodsk. Для города Vladivostok нужно указать население: 604901. Структура таблицы:

Решение следует представить в виде текстового файла, содержащего несколько SQL-запросов. Запросы следует завершать символом ';'.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 01E. Деловые люди (SQL)

Входной файл:data.csv   Ограничение времени:1 сек
Выходной файл:test.log   Ограничение памяти:256 Мб
Максимальный балл:4  

Условие

Требуется на языке SQL реализовать запрос, который обращается к таблице data и возвращает список ID пользователей, совершивших 20 и более международных звонков.

В таблице data присутствуют следующие поля:

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос. При отправке следует выбирать среду разработки Python.

Ограничения

Для работы с базой данных используется SQLite3.


Задача 02A. Создание таблицы с заметками

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

В пустой БД требуется создать таблицу Notes со структурой:

ID: INTEGER;
Note: TEXT;
TimeOfCreation: DATETIME;
ProgressMade: REAL;
Status: TEXT.

Дополнительно, нужно прописать параметры полей:

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02B. Добавление поля в таблицу

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

В таблицу Customers реляционной БД требуется добавить новое поле Email типа "TEXT", со значение по умолчанию "@mail.ru".

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02C. Удаление тестовой таблицы

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Необходимо удалить таблицу TestTable из реляционной БД.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02D. Классификация целых чисел

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

База данных представлена одной таблицей Numbers, в которой хранится набор целых чисел Value. Требуется классифицировать числа на положительные "positive", отрицательные "negative" и ноль "zero". Ниже представлено детальное DDL-описание таблицы:


TABLE Numbers ( -- хранит список целых чисел
    Value INTEGER NOT NULL -- целое число
                DEFAULT (0) 
);

Результатом выполнения запроса должен быть список кортежей (Value, Classification). Описание полей запроса:

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Формат входного файла

Пример тестовой БД.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02E. Выборка уникальных значений

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Требуется из таблицы Books со структурой:

вывести список уникальных инициалов авторов.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02F. Поиск клиентов по первой букве

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Для таблицы Customers нужно выбрать имена клиентов начинающихся с буквы "G" и отсортировать их по убыванию возраста. Структура таблицы:

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02G. Опытные сотрудники

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Требуется из таблицы Employees выбрать ФИО сотрудников мужчин в возрасте от 35 до 70 включительно. Поля таблицы Employees:

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02H. Удаление NULL-значений

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Из таблице Magazines нужно удалить все записи, где поле Edition имеет значение "NULL".

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 02I. Обновление значений поля

Автор:О. Константинов   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

В таблице Animals нужно изменить все значения поля Sex с длинных вариантов: "male", "female" на короткие: "m", "w". Для прочих значений поля Sex, нужно указать "unknown", если они не "NULL".

Решение следует представить в виде текстового файла, содержащего несколько SQL-запросов.

Ограничения

Полагается, что для работы с базой данных используется SQLite3.


Задача 06A. Где боеприпасы?

Автор:Лунев Александр, Монастырный Иван   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

В момент нападения врага на наш пункт контроля, командир Женя обратил внимание, что на самом пункте не было достаточного количества вооружения.

На что Женя воскликнул «Где боеприпасы?».

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


    CREATE TABLE BattlePoints
(
    point_id      INT PRIMARY KEY,
    point_name    VARCHAR(255),
    point_type_id INT,
    FOREIGN KEY (point_type_id) REFERENCES BattlePointTypes (point_type_id)
);


CREATE TABLE BattlePointTypes
(
    point_type_id   INT PRIMARY KEY,
    point_type_name VARCHAR(255)
);


CREATE TABLE Weapons
(
    weapon_id   INT PRIMARY KEY,
    weapon_name VARCHAR(255),
    weapon_type VARCHAR(255)
);


CREATE TABLE WeaponsOnBattlePoints
(
    record_id INT PRIMARY KEY,
    point_id  INT,
    weapon_id INT,
    quantity  INT,
    FOREIGN KEY (point_id) REFERENCES BattlePoints (point_id),
    FOREIGN KEY (weapon_id) REFERENCES Weapons (weapon_id)
);


CREATE TABLE WeaponResponsibilities
(
    responsibility_id     INT PRIMARY KEY,
    point_id              INT,
    responsible_person_id INT,
    FOREIGN KEY (point_id) REFERENCES BattlePoints (point_id),
    FOREIGN KEY (responsible_person_id) REFERENCES Employees (employee_id)
);


CREATE TABLE Employees
(
    employee_id INT PRIMARY KEY,
    first_name  VARCHAR(255),
    last_name   VARCHAR(255)
);

Схема БД в UML-нотации:

Результатом выполнения запроса должен быть список кортежей (PointTypeName, TotalQuantity, MostCommonWeapon, MostCommonWeaponType) , отсортированный по убыванию значений поля TotalQuantity.

PointTypeName – Название типа военной точки;

TotalQuantity – Общее количество вооружения;

MostCommonWeapon – Самое распространенное оружие;

MostCommonWeaponType – Самый распространенный тип оружия;

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Формат входного файла

Пример тестовой БД.

Ограничения

Предполагается, что для работы с базой данных используется SQLite3.


Задача 06B. Управление долгами

Автор:Л. Александр, М. Иван   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

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

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

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


CREATE TABLE IF NOT EXISTS client
(
    client_id INTEGER PRIMARY KEY,
    first_name TEXT,
    last_name TEXT,
    email TEXT,
    phone_number TEXT
);

CREATE TABLE IF NOT EXISTS payment
(
    payment_id INTEGER PRIMARY KEY,
    reservation_id INTEGER,
    payment_method TEXT,
    amount DECIMAL(10, 2),
    payment_date DATETIME,
    FOREIGN KEY (reservation_id) REFERENCES reservation (reservation_id)
);

CREATE TABLE IF NOT EXISTS reservation_service
(
    reservation_service_id INTEGER PRIMARY KEY,
    reservation_id INTEGER,
    service_id INTEGER,
    FOREIGN KEY (reservation_id) REFERENCES reservation (reservation_id),
    FOREIGN KEY (service_id) REFERENCES service (service_id)
);

CREATE TABLE IF NOT EXISTS reservation
(
    reservation_id INTEGER PRIMARY KEY,
    room_id INTEGER,
    client_id INTEGER,
    check_in_date DATE,
    check_out_date DATE,
    staff_id INTEGER,
    FOREIGN KEY (room_id) REFERENCES room (room_id),
    FOREIGN KEY (client_id) REFERENCES client (client_id),
    FOREIGN KEY (staff_id) REFERENCES staff (staff_id)
);

CREATE TABLE IF NOT EXISTS rooms
(
    room_id INTEGER PRIMARY KEY,
    room_number TEXT,
    room_type TEXT,
    rate DECIMAL(10, 2)
);

CREATE TABLE IF NOT EXISTS service
(
    service_id INTEGER PRIMARY KEY,
    service_name TEXT,
    price DECIMAL(10, 2)
);

CREATE TABLE IF NOT EXISTS staff
(
    staff_id INTEGER PRIMARY KEY,
    first_name TEXT,
    last_name TEXT,
    position TEXT
);

Схема БД в UML-нотации:

Результатом выполнения запроса должен быть список кортежей (client_name, remaining_amount), отсортированный по убыванию значений поля remaining_amount.

client_name – ФИО клиентов;

remaining_amount – Сумма которую осталось заплатить;

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Формат входного файла

Пример тестовой БД.

Ограничения

Предполагается, что для работы с базой данных используется SQLite3.


Задача 06C. Демократия

Автор:А. Быков   Ограничение времени:1 сек
Входной файл:test.sql   Ограничение памяти:256 Мб
Выходной файл:test.log  
Максимальный балл:1  

Условие

Правительство Демократического Государства (ДГ) начало специальную военную операцию против некоторого Тоталитарного Ближне-восточного Государства (ТБГ). В рамках этой операции предусмотрено освобождение ТБГ от пагубного нефтяного ресурса. У ДГ есть информация о нахождении нефтяных месторождений, которая получена от двойного агента. Информация хранится в базе данных.

Таблица Locations хранит информацию о нефтяных объектах: расположение (координаты) в километрах, силы противника (численность войск). Таблица Pumps связана с таблицей Locations и хранит информацию о нефтяных насосах (добыча баррелей в неделю).

Десантный отряд армии ДГ высаживается в точке с координатами x = 0, y = 0. Командир отряда приказал найти ближайшие месторождения (не более 300км по прямой), где войск противника будет меньше 500, а объем добычи более 800 баррелей/неделю.


    CREATE TABLE Locations(
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        x INTEGER NOT NULL,
        y INTEGER NOT NULL,
        forces INTEGER NOT NULL,
        pump_id INTEGER,
        FOREIGN KEY (pump_id) REFERENCES Pumps(id)
    );

    CREATE TABLE Pumps(
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        amount INTEGER NOT NULL
    );

Схема БД в UML-нотации:

Запрос должен вернуть дистанцию до месторождения, кол-во войск и объем добычи. Отсортировать по возрастанию дистанции. Дистанцию округлить до целых по правилам математического округления.

Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.

Формат входного файла

Пример тестовой БД.

Ограничения

Предполагается, что для работы с базой данных используется SQLite3.


0.621s 0.009s 65