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:
| Tabela | Linhas | Conteúdo |
|---|---|---|
| penguins | 344 | pinguins e suas medidas |
| little_penguins | 10 | amostra de 10 pinguins |
| department | 4 | departamentos |
| staff | 10 | funcionários |
| experiment | 50 | experimentos |
| performed | 65 | funcionários ↔ experimentos |
| plate | 256 | placas de ensaio |
| invalidated | 30 | placas invalidadas |
| machine | 3 | aparelhos do laboratório |
| person | 15 | pessoas |
| usage | 8 | registro de uso dos aparelhos |
| contact | 8 | contatos |
Estrutura das tabelas
Clique em uma tabela para ver suas colunas, uma linha de exemplo e as chaves.
Lista de tabelas
- identID do departamento
- nameNome do departamento
- buildingNome do prédio
| ident | name | building |
|---|---|---|
| gen | Genetics | Chesson |
- 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 |
- 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 |
- 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 |
- 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;
| ident | kind | started | plates |
|---|---|---|---|
| 1 | calibration | 2023-08-25 | 1 |
| 2 | calibration | 2023-02-14 | 1 |
| 3 | trial | 2023-02-22 | 10 |
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;
| personal | family | kind | started |
|---|---|---|---|
| Nitya | Lal | calibration | 2023-08-25 |
| Indrans | Sridhar | calibration | 2023-02-14 |
| Kartik | Gupta | trial | 2023-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.
- Fundamentos de SQL 1
- Consultas Analíticas 2
- Consultas de Manipulação de Dados (DML) 1
- Linguagem de Definição de Dados (DDL) 13
Por onde começar
Os primeiros exercícios do banco Querynomicon:
- Dados de departamentos
- Nomes dos funcionários
- Organize os pinguins
- Espécies de pinguins
- Pinguins leves
- Lista de pinguins
- Distribuição dos pinguins por ilhas
- Distribuição Populacional (Pivot)
- Encontre pequenos pinguins
- 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.