Вернуться к содержанию курса
Основы баз данных и SQL
Материалы для самоподготовки
Основные материалы - SQL
- Презентация Реляционные базы данных
- Презентация Проектирование БД
- Презентация Язык SQL
- Курс на w3schools
- Учебник SQL на русском
- Нормальные формы
Дополнительные материалы - SQL
- Документация MySQL
- Возможности MySQL Workbench
- Работа в MySQL
Практическая работа
Первое задание
Вам необходимо выполнить задания на сайте sql-ex.ru из следующих разделов:
Второе задание
- Вам необходимо создать схему БД «Интернет-аукцион» в соответствии со следующей EER-диаграммой:

- Загрузить схему на сервер (MySQL)
- Заполнить таблицы произвольными данными.
- Написать запросы в соответствии:
- Список ставок данного пользователя
- Список лотов данного пользователя
- Поиск лотов по подстроке в названии
- Поиск лотов по подстроке в описании
- Средняя цена лотов каждого пользователя
- Максимальный размер имеющихся ставок на каждый лот
- Список действующих лотов данного пользователя
- Добавить нового пользователя
- Добавить новый лот
- Удалить ставки данного пользователя
- Удалить лоты данного пользователя
- Увеличить стартовые цены товаров данного пользователя вдвое
- Создать дамп базы данных.
- Прикрепить запросы и дамп к цели в гроу.
Вопросы для самоконтроля
DB basics - SQL
- Что такое «база данных»?
- Что такое «система управления базами данных»?
- Что такое «реляционная база данных»?
- Что такое «первичный ключ» (primary key)? Каковы критерии его выбора?
- Что такое «внешний ключ» (foreign key)?
- Какие существуют операторы SQL?
- Что означает NULL в SQL?
- Что такое «представление» (view) и для чего оно применяется?
- Каков общий синтаксис оператора SELECT?
- Что такое JOIN?
- Какие существуют типы JOIN?
- Что лучше использовать JOIN или подзапросы?
- Для чего используется оператор HAVING?
- чем различие между операторами HAVING и WHERE?
- Для чего используется оператор ORDER BY?
- Для чего используется оператор GROUP BY?
- Как GROUP BY обрабатывает значение NULL?
- В чем разница между операторами GROUP BY и DISTINCT?
- Перечислите основные агрегатные функции.
- В чем разница между COUNT(*) и COUNT({column})?
- Что делает оператор EXISTS?
- Для чего используются операторы IN, BETWEEN, LIKE?
- Для чего применяется ключевое слово UNION?
- Какие ограничения на целостность данных существуют в SQL?
- Может ли значение в столбце, на который наложено ограничение FOREIGN KEY, равняться NULL?
- Что такое «нормализация»?
- Какие существуют нормальные формы?
- Что такое «денормализация»? Для чего она применяется?
- Какие существуют типы связей в базе данных? Приведите примеры.
- Что такое «индексы»? Для чего их используют? В чём заключаются их преимущества и недостатки?
- В чем отличие между кластерными и некластерными индексами?
- Что такое «транзакция»?
- Назовите основные свойства транзакции.
- Какие существуют уровни изолированности транзакций?
- Какие проблемы могут возникать при параллельном доступе с использованием транзакций?