тестовая база sql для тренировки
r_d media
6 бесплатных ресурсов для практики в SQL
Где прокачать навыки написания запросов.
SQL (structured query language) — это язык структурированных запросов в таблицы баз данных (БД). Он обеспечивает соединение с БД, а также поиск и обновления информации. SQL используют бэкендеры, аналитики и тестировщики.
Рассказываем, где бесплатно потренироваться в написании SQL-запросов.
SQLZoo
Рекомендуем тем, кто начинает изучать язык. На сайте 9 разделов с задачами по sql. Их решение займет 18–20 часов. Среди тем — вложенные запросы или обработка значений null. Также доступны разборы решений. В SQLZoo есть справочник терминов.
SQLTest
В SQLTest можно изменять или замещать значения и масштабировать их. Это позволяет имитировать взаимодействие с БД произвольного количества пользователей или запросов. Сервис генерирует запросы к базе данных SQL Server и поддерживает MySQL и Oracle.
SQLTest доступен в десктопной и облачной версии.
Pgexercises
Сайт состоит из 80 упражнений для работы с объектно-реляционной системой PostgreeSQL. Доступен один набор данных, который состоит из 3 таблиц: members, booking и facilities. Упражнения начинаются с предложений select и where, затем рассматриваются оконные функции и рекурсивные запросы. Курс разделен на блоки:
SQL Fiddle
SQL Fiddle — сервис с открытым исходным кодом. Сайт позволяет делиться информацией с другими пользователями.
Он поддерживает БД Oracle, SQLite, MySQL. Также есть возможность экспортировать данные в разных форматах: иерархические файлы (например, XML-документы), текстовые и таблицы.
Oracle LiveSQL
Live SQL — это облачная платформа для тестирования и обмена сценариями SQL и PL/SQL. Среди функций — инструмент меню Quick SQL, который позволяет создавать операторы с помощью сокращенного синтаксиса.
Система сохраняет информацию о предыдущих сеансах, наборах операторов, которые можно перезапустить или сохранить как сценарии. Также сценарии можно воспроизвести повторно или загрузить созданные на сторонних ресурсах.
В последней версии СУБД Oracle Database 19c разработчики добавили функцию Automatic Indexing, которая автоматически создает индексы к БД.
HackerRank
Социальная платформа для соревновательного программирования предлагает упражнения для разных языков. Среди них — сложные практические задачи по SQL. К некоторым задачам нет опубликованных ответов, а за лучшие решения пользователь получает больше баллов в рейтинге сообщества.
5 заданий по SQL с реальных собеседований
Авторизуйтесь
5 заданий по SQL с реальных собеседований
SQL — один из самых востребованных навыков в современной IT индустрии (на 3 месте по популярности согласно StackOverflow Developer Survey 2020, даже Python идет на 4 месте).
Само собой, конкуренция в этой сфере огромна и собеседования порой превращаются в сущую пытку — кандидатам дают огромные задачи, задают десятки каверзных вопросов, устраивают дизайн-интервью и все это на позицию Junior аналитика…
Сегодня Елизавета, аналитик и эксперт IT Resume, делится 5 задачами и вопросами, которые входят в программу подготовки к собеседованию SQL Interview. Это задачи с реальных собеседований в крупные IT-компании, и они разбиты по уровням — Junior, Middle и Senior. Попробуйте и вы свои силы — сможете их решить без подсказки 😉
аналитик и эксперт в IT Resume
Вводные данные
Есть таблица анализов Analysis:
Есть таблица групп анализов Groups:
Есть таблица заказов Orders:
Далее мы будем работать с этими таблицами.
Задача 1. Уровень: Junior
Формулировка: вывести название и цену для всех анализов, которые продавались 5 февраля 2020 и всю следующую неделю.
Это задача для начинающих специалистов. В ней проверяется базовое знание SELECT-запросов и умение работать с датой-временем.
Примечание На собеседованиях редко придираются к специфике диалекта — если Вы привыкли работать в PostgreSQL, то используйте привычные функции. Главное — правильно решить задачу.
Задача 2. Уровень: Middle
Формулировка: нарастающим итогом рассчитать, как увеличивалось количество проданных тестов каждый месяц каждого года с разбивкой по группе.
Эта задача уже более высокого уровня: ее можно давать как Middle, так и Junior специалистам. Здесь проверяется базовое понимание оконных функций, джоинов и группировок.
Примечание После того, как вы написали первую версию своего запроса, попробуйте его оптимизировать. Например, в данном примере мы используем CTE — обобщенные табличные выражения.
Задача 3: Уровень Senior
В этой задаче мы будем работать с другой таблицей (да, она будет всего одна). Сам запрос в этой задаче не сложный, но для его написания необходимо как бы уметь «мыслить на SQL».
Рассмотрим таблицу балансов клиентов:
ClientBalance(client_id, client_name, client_balance_date, client_balance_value)
Формулировка: в данной таблице в какой-то момент времени появились полные дубли. Предложите способ для избавления от них без создания новой таблицы.
Вопрос 1. Уровень: Junior
Есть категория «хитрых» вопросов, которые особенно любят задавать Junior-специалистам. Хотя чего уж там, любым специалистам.
Один из таких видов — вопросы по темам, на которые в повседневной жизни не обращаешь внимания и о которых не задумываешься. Просто делаешь на автомате, а на собеседовании это стреляет. Ну или на проекте, когда код начинает работать неправильно. Но это другая история…
Вопрос: Как оператор GROUP BY обрабатывает поля с NULL?
Если Вы не знаете ответ на этот вопрос, то после прочтения ответа обязательно проверьте свои проекты — может у вас где-то закралась ошибка? 😉
Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:
Тогда запрос select sum(score) from table group by name даст:
Вопрос 2. Уровень Middle
Этот вопрос не такой хитрый, как предыдущий, а вполне себе конкретный. Однако, он требует знания оконных функций и их тонкостей, а это исконное Middle требование.
Примечание Кстати говоря, по мотивам этого вопроса очень любят давать задачи на собеседованиях в разных вариациях: пронумеровать строки с одинаковыми значениями без разрывов, с разрывами и так далее. Так что потренируйтесь на досуге 🙂
Эпилог
Мы разобрали с вами всего 5 возможных заданий, которые судьба и рекрутеры могут подкинуть вам на собеседовании. Однако, вариантов, на самом деле, масса. И чтобы реально подготовиться к собеседованию, нужно нарешать как можно больше задач, понять и прочувствовать теоретические аспекты и буквально научиться «мыслить на SQL». Именно на это и нацелена программа SQL Interview — так что будем рады помочь вам получить работу мечты!
И, помимо этого, не забывайте: SQL — чисто прикладной инструмент. Чтобы его освоить, нужно практиковаться, практиковаться и практиковаться. Выучить его можно буквально за несколько недель интенсивных занятий, а вот освоить на уровне Senior… порой на это уходят годы.
«Попробуй SQL!»
тренажёр для изучения языка SQL
Что это такое?
Программа «Попробуй SQL!» — это тренажёр для экспериментов с простой базой данных при изучении языка SQL. В качестве движка используется встраиваемая СУБД SQLite. Все её функции объединены в одной библиотеке общего доступа sqlite3.dll. Её можно скачать, например, с официального сайта. Кроме того, эта библиотека входит в архив с программой, который можно скачать на этой странице (см. далее).
Как работать с программой?
В верхней части окна вводится имя базы данных. Справа расположена кнопка для выбора каталога, по умолчанию программа работает с базами данных в текущем каталоге. Если базы данных с указанным именем нет в каталоге, она будет создана при первом обращении.
В следующем поле нужно ввести SQL-запрос, возможно, многострочный. При нажатии на клавишу F9 или при щелчке по кнопке запрос выполняется. Если это был запрос на выборку (SELECT), в следующем окне будут показаны выбранные данные в виде таблицы.
Если текущий запрос — это не запрос на выборку (а, например, на удаление или добавление строк), в таблице отображаются обновленные результаты предыдущего запроса на выборку. Например, сначала можно выбрать все данные из какой-то таблицы запросом SELECT * FROM имя_таблицы. Затем мы с помощью запросов выполняем какие-то операции с таблицей (изменяем, добавляем или удаляем данные), и сразу (без дополнительных запросов) видим результат этих изменений в таблице.
Кнопка позволяет прочитать метаданные, то есть, получить информацию о структуре базы данных таблицах, индексах и т.п.). При этом выполняется запрос
SELECT * FROM SQLITE_MASTER;
Если при выполнении запроса произошла ошибка, в нижней части окна появляется дополнительное поле с сообщением об ошибке (на английском языке).
В архиве, который можно скачать с этой страницы, находится инструкция для выполнения практической работы с тренажёром (11 класс, тема «Базы данных»).
Скачать
Программа является бесплатной для некоммерческого использования. Исходные тексты программы не распространяются.
Программа поставляется «as is», то есть, автор не несет никакой ответственности за всевозможные последствия ее использования, включая моральные и материальные потери, вывод оборудования из строя, физические и душевные травмы.
Пароль к архиву — kpolyakov.spb.ru
В архив с программой «Попробуй SQL!» включены следующие файлы:
trysql.exe | программа-тренажёр |
trysql.ini | файл с настройками (там хранится путь к базам данных) |
test.db | тестовая база данных, с которой можно начать эксперименты |
sqlite3.dll | библиотека СУБД SQLite |
trySQL_example.doc | инструкция к практической работе |
После распаковки архива программа сразу же находится в работоспособном состоянии и не требует никаких дополнительных настроек.