Novo mês, novos objetivos. Sua ajuda ajuda o projeto a avançar. 🖥️ Apoie o sqltest →
Código SQL copiado para a área de transferência

Banco de dados Querynomicon (SQLite): pinguins, tabelas e exercícios de SQL

Querynomicon é um pequeno banco SQLite para aprender SQL do zero: o conjunto de dados dos pinguins de Palmer e um pequeno laboratório com funcionários, experimentos e placas de ensaio. No SQLtest.online você consulta o banco direto no navegador: resolve exercícios com correção automática e executa suas próprias consultas no playground, sem instalar nada.

  • 13 tabelas
  • 344 pinguins
  • 50 experimentos
  • 49 exercícios de SQL

O que é o Querynomicon

O banco vem do Querynomicon, o tutorial gratuito de Greg Wilson "An Introduction to SQL for Wary Data Scientists". A tabela principal traz os pinguins de Palmer: medidas de 344 pinguins de três espécies de três ilhas da Antártida.

Os dados são poucos e fáceis de ler, mas têm as peculiaridades de dados reais: valores ausentes (NULL) nas medidas e na coluna de sexo. Por isso o banco é ótimo para aprender filtros, ordenação, agrupamento, tratamento de NULL e o básico de DDL e DML.

O que há no banco

As tabelas se dividem em dois grupos.

Pinguins

penguins com as 344 aves e little_penguins, uma amostra de 10 linhas para testes rápidos.

Laboratório

department, staff, experiment, performed (quem realizou cada experimento), plate e invalidated, além de machine, usage, person e contact.

As tabelas de pinguins não têm chaves: cada linha é uma ave. As tabelas do laboratório se ligam por identificadores numéricos, e performed liga funcionários e experimentos em uma relação de muitos para muitos.

Quantos dados há nas tabelas:

TabelaLinhasConteúdo
penguins344pinguins e suas medidas
little_penguins10amostra de 10 pinguins
department4departamentos
staff10funcionários
experiment50experimentos
performed65funcionários ↔ experimentos
plate256placas de ensaio
invalidated30placas invalidadas
machine3aparelhos do laboratório
person15pessoas
usage8registro de uso dos aparelhos
contact8contatos

Estrutura das tabelas

Clique em uma tabela para ver suas colunas, uma linha de exemplo e as chaves.

Lista de tabelas

department - tabela de departamentos.
  • identID do departamento
  • nameNome do departamento
  • buildingNome do prédio
ident name building
gen Genetics Chesson
little_penguins - tabela de pequenos pinguins.
  • speciesEspécie de pinguim
  • islandIlha de residência
  • bill_length_mmComprimento do bico, mm
  • bill_depth_mmProfundidade do bico, mm
  • flipper_length_mmComprimento da nadadeira, mm
  • body_mass_gMassa corporal, g
  • sexSexo
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
Gentoo Biscoe 52.1 17 230 5550 MALE
penguins - tabela de pinguins.
  • speciesEspécie de pinguim
  • islandIlha de residência
  • bill_length_mmComprimento do bico, mm
  • bill_depth_mmProfundidade do bico, mm
  • flipper_length_mmComprimento da nadadeira, mm
  • body_mass_gMassa corporal, g
  • sexSexo
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
Gentoo Biscoe 52.1 17 230 5550 MALE
staff - tabela de funcionários.
  • identNúmero do funcionário
  • personalNome do funcionário
  • familySobrenome do funcionário
  • deptDepartamento
  • ageIdade
ident personal family dept age
7 Abram Chokshi gen 23
machine - tabela de máquinas.
  • identID da máquina
  • nameNome da máquina
  • detailsJSON com detalhes
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"}

Exemplos de consultas

Estas consultas mostram como os dados se relacionam. Copie qualquer uma e execute no playground.

Experimentos e placas: uma relação de um para muitos com LEFT JOIN e contagem.

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

Quem realizou um experimento: uma relação de muitos para muitos por 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

Exercícios de SQL por tema

Há 49 exercícios no banco Querynomicon, do primeiro SELECT a views, índices e triggers. As soluções são verificadas automaticamente em um SQLite real. O número à direita é a quantidade de exercícios do tema; os pontos coloridos mostram a faixa de dificuldade.

Por onde começar

Os primeiros exercícios do banco Querynomicon:

  1. Dados de departamentos
  2. Nomes dos funcionários
  3. Organize os pinguins
  4. Espécies de pinguins
  5. Pinguins leves
  6. Lista de pinguins
  7. Distribuição dos pinguins por ilhas
  8. Distribuição Populacional (Pivot)
  9. Encontre pequenos pinguins
  10. Encontre espécies de pequenos pinguins

Todos os exercícios do Querynomicon →

Perguntas frequentes

Preciso instalar o SQLite para usar o Querynomicon?

Não. Os exercícios e o playground do SQLtest.online executam as consultas nos nossos servidores, então basta um navegador. No playground, escolha SQLite 3 Preloaded.

O que são os pinguins de Palmer?

Um conjunto de dados didático popular: medidas de pinguins-de-adélia, pinguins-de-barbicha e pinguins-gentoo coletadas na Estação Palmer, na Antártida. É muito usado como substituto moderno do conjunto de dados iris.

Este banco é bom para iniciantes?

Sim. As tabelas são pequenas e o tema dispensa explicações, então você pode se concentrar no SQL em si: SELECT, WHERE, ORDER BY, GROUP BY e tratamento de NULL.