Новый месяц, новые цели. Ваша помощь помогает проекту двигаться вперед. 🖥️ Поддержите sqltest →
SQL код скопирован в буфер обмена

База данных Querynomicon (SQLite): пингвины, таблицы и SQL-задачи

Querynomicon — небольшая база SQLite для изучения SQL с нуля: набор данных о пингвинах Палмера и крошечная лаборатория с сотрудниками, экспериментами и планшетами для анализов. На SQLtest.online с ней можно работать прямо в браузере: решать задачи с автоматической проверкой и писать свои запросы в песочнице, ничего не устанавливая.

  • 13 таблиц
  • 344 пингвина
  • 50 экспериментов
  • 49 SQL-задачи

Что такое Querynomicon

База взята из Querynomicon — бесплатного учебника Грега Уилсона «An Introduction to SQL for Wary Data Scientists». Главная таблица содержит пингвинов Палмера: измерения 344 пингвинов трёх видов с трёх островов в Антарктиде.

Данных немного, и они понятны, но в них есть особенности настоящих данных: пропуски (NULL) в измерениях и в столбце пола. Поэтому на базе удобно учиться фильтрации, сортировке, группировке, работе с NULL и основам DDL и DML.

Из чего состоит база

Таблицы делятся на две группы.

Пингвины

penguins со всеми 344 птицами и little_penguins — выборка из 10 строк для быстрых экспериментов.

Лаборатория

department, staff, experiment, performed (кто проводил какой эксперимент), plate и invalidated, а также machine, usage, person и contact.

В таблицах с пингвинами нет ключей: каждая строка — одна птица. Таблицы лаборатории связаны числовыми идентификаторами, а performed связывает сотрудников и эксперименты «многие ко многим».

Сколько данных в таблицах:

ТаблицаСтрокЧто хранит
penguins344пингвины и их измерения
little_penguins10выборка из 10 пингвинов
department4отделы
staff10сотрудники
experiment50эксперименты
performed65сотрудники ↔ эксперименты
plate256планшеты с анализами
invalidated30забракованные планшеты
machine3приборы лаборатории
person15люди
usage8журнал использования приборов
contact8контакты

Структура таблиц

Нажмите на таблицу, чтобы увидеть её столбцы, пример строки и ключи.

Список таблиц

department - таблица отделов.
  • identID отдела
  • nameНазвание отдела
  • buildingНазвание здания
ident name building
gen Genetics Chesson
little_penguins - таблица малых пингвинов.
  • speciesВид пингвина
  • island Остров проживания
  • bill_length_mmДлина клюва, мм
  • bill_depth_mmГлубина клюва, мм
  • flipper_length_mmДлина плавника, мм
  • body_mass_gМасса тела, гр
  • sexПол
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
Gentoo Biscoe 52.1 17 230 5550 MALE
penguins - таблица пингвинов.
  • speciesВид пингвина
  • island Остров проживания
  • bill_length_mmДлина клюва, мм
  • bill_depth_mmГлубина клюва, мм
  • flipper_length_mmДлина плавника, мм
  • body_mass_gМасса тела, гр
  • sexПол
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
Gentoo Biscoe 52.1 17 230 5550 MALE
staff - таблица сотрудников.
  • identНомер сотрудника
  • personalИмя сотрудника
  • familyФамилия сотрудника
  • deptПодразделение
  • ageВозраст
ident personal family dept age
7 Abram Chokshi gen 23
machine - таблица машин.
  • identИдентификатор машины
  • nameНазвание машины
  • detailsИнформация о машине в формате JSON
ident name details
1 WY401 {"acquired": "2023-05-01"}
2 Inphormex {"acquired": "2021-07-15", "refurbished": "2023-10-22"}
3 AutoPlate 9000 {"note": "needs software update"}

Примеры запросов

Эти запросы показывают, как связаны данные. Скопируйте любой и запустите в песочнице.

Эксперименты и планшеты — связь «один ко многим» с LEFT JOIN и подсчётом:

SELECT e.ident, e.kind, e.started, COUNT(p.ident) AS plates
FROM experiment e
LEFT JOIN plate p ON p.experiment = e.ident
GROUP BY e.ident
ORDER BY e.ident
LIMIT 3;
identkindstartedplates
1calibration2023-08-251
2calibration2023-02-141
3trial2023-02-2210

Кто проводил эксперимент — связь «многие ко многим» через performed:

SELECT s.personal, s.family, e.kind, e.started
FROM performed pf
JOIN staff s ON s.ident = pf.staff
JOIN experiment e ON e.ident = pf.experiment
ORDER BY e.ident, s.ident
LIMIT 3;
personalfamilykindstarted
NityaLalcalibration2023-08-25
IndransSridharcalibration2023-02-14
KartikGuptatrial2023-02-22

SQL-задачи по темам

Задач на базе Querynomicon: 49 — от первого SELECT до представлений, индексов и триггеров. Решение проверяется автоматически на настоящем SQLite. Число справа — количество задач в теме, цветные метки — диапазон сложности.

С чего начать

Первые задачи по базе Querynomicon:

  1. Данные отделов
  2. Имена сотрудников
  3. Отсортируйте пингвинов
  4. Виды пингвинов
  5. Выбрать легких пингвинов
  6. Список пингвинов
  7. Распределение пингвинов по островам
  8. Распределение популяции (Pivot)
  9. Найти маленьких пингвинов
  10. Виды мелких пингвинов

Все задачи по Querynomicon →

Частые вопросы

Нужно ли устанавливать SQLite, чтобы работать с Querynomicon?

Нет. Задачи и песочница на SQLtest.online выполняют запросы на сервере, достаточно браузера. В песочнице выберите SQLite 3 Preloaded.

Что такое пингвины Палмера?

Популярный учебный набор данных: измерения пингвинов Адели, антарктических и папуанских пингвинов, собранные на станции Палмер в Антарктиде. Его часто используют как современную замену набору данных об ирисах.

Подходит ли эта база для начинающих?

Да. Таблицы маленькие, а предметная область не требует пояснений, поэтому можно сосредоточиться на самом SQL: SELECT, WHERE, ORDER BY, GROUP BY и работе с NULL.