- •Теория Базы данных и sql
- •Контейнеризация и Docker
- •Rest api и проектирование
- •Машинное обучение
- •Асинхронное программирование
- •Мобильная разработка и безопасность
- •Архитектура приложений
- •Практические задания Задание 1: sql (анализ оценок студентов)
- •Выполнение:
- •Задание 2: Docker (запуск FastApi-приложения в контейнере) доделать
- •Задание 3: rest api / FastApi (проектирование api для курсов)
- •Задание 4: Машинное обучение (определить тип ml-задачи)
Практические задания Задание 1: sql (анализ оценок студентов)
Памятка по SQL
-- выборка всех колонок из таблицы SELECT col1, col2, ...colN FROM tableName;
-- выборка уникальных значений (без дубликатов) SELECT DISTINCT col1, col2, ...colN FROM tableName;
-- выборка с условием фильтрации SELECT col1, col2, ...colN FROM tableName WHERE condition;
-- выборка с несколькими условиями (И/ИЛИ) SELECT col1, col2, ...colN FROM tableName WHERE condition1 AND|OR condition2;
-- выборка значений, входящих в указанный список SELECT col2, col2, ...colN FROM tableName WHERE colName IN (val1, val2, ...valN);
-- выборка значений в диапазоне (включая границы) SELECT col1, col2, ...colN FROM tableName WHERE colName BETWEEN val1 AND val2;
-- выборка по шаблону (с подстановочными символами % и _) SELECT col1, col2, ...colN FROM tableName WHERE colName LIKE pattern;
-- сортировка результатов по возрастанию или убыванию SELECT col1, col2, ...colN FROM tableName WHERE condition ORDER BY colName [ASC|DESC];
-- группировка с вычислением суммы по группам SELECT SUM(colName) FROM tableName WHERE condition GROUP BY colName;
-- подсчет количества записей SELECT COUNT(colName) FROM tableName WHERE condition;
-- группировка с условием для групп (после GROUP BY) SELECT SUM(colName) FROM tableName WHERE condition GROUP BY colName HAVING (function condition);
-- создание новой таблицы с указанием колонок и их типов CREATE TABLE tableName ( col1 datatype, col2 datatype, ... colN datatype, PRIMARY KEY (одна или более колонка) );
-- удаление таблицы из базы данных DROP TABLE tableName;
-- создание уникального индекса для ускорения поиска CREATE UNIQUE INDEX indexName ON tableName (col1, col2, ...colN);
-- удаление существующего индекса ALTER TABLE tableName DROP INDEX indexName;
-- вывод структуры таблицы (колонки, типы, ключи) DESC tableName;
-- быстрое удаление всех данных из таблицы (без возможности отката) TRUNCATE TABLE tableName;
-- добавление, удаление или изменение типа колонки ALTER TABLE tableName ADD|DROP|MODIFY colName [datatype];
-- переименование таблицы ALTER TABLE tableName RENAME TO newTableName;
-- вставка новой записи в таблицу INSERT INTO tableName (col1, col2, ...colN) VALUES (val1, val2, ...valN);
-- обновление существующих записей UPDATE tableName SET col1 = val1, col2 = val2, ...colN = valN [WHERE condition];
-- удаление записей, соответствующих условию DELETE FROM tableName WHERE condition;
-- создание новой базы данных (если не существует) CREATE DATABASE [IF NOT EXISTS] dbName;
-- удаление базы данных (если существует) DROP DATABASE [IF EXISTS] dbName;
-- переключение на указанную базу данных для работы USE dbName;
-- фиксация всех изменений текущей транзакции COMMIT;
-- отмена всех изменений с момента последнего COMMIT ROLLBACK; |
Условие: Есть таблицы:
students(id, name, group_name)
grades(id, student_id, subject, mark)
Задача: Вывести студентов группы *"БВТ-2"*, у которых оценка по предмету "Информационные технологии" выше 80. В результате должны быть: имя студента, группа, предмет, оценка.
Что нужно сделать:
Составить SQL-запрос с использованием JOIN и WHERE.
Что нужно объяснить:
Зачем нужен JOIN?
Какие условия указываются в WHERE?
Почему данные студентов и оценки могут храниться в разных таблицах?
