Considerações Finais
Obrigado por chegar até o fim! Espero que tenha sido uma leitura agradável e esclarecedora.
Neste ponto, cobrimos a maioria dos comandos e funções SQL importantes, mas espero que os maiores aprendizados sejam as técnicas e heurísticas para pensar sobre consultas. Algumas das principais foram:
-
Comparar o formato das tabelas disponíveis com o resultado desejado para decidir que agregação fazer.
-
Examinar onde estão as informações de que precisamos. Elas estão em uma linha adjacente? Ou em um grupo? Ou em todo o conjunto de dados?
-
Interpretar consultas dentro da estrutura lógica correta. Por exemplo, visualizar cláusulas como essencialmente verdadeiras ou falsas; visualizar
<table1> JOIN <table2> ON ...como uma grande tabela.
Para completar sua formação em SQL, provavelmente vale a pena estudar funções de janela e expressões de tabela comuns. Você pode reproduzir o comportamento delas com as técnicas que aprendeu aqui, mas elas tornam a vida muito mais fácil e apresentam um novo paradigma valioso. Omiti esses conceitos porque, no momento da escrita, o SQLite não suportava funções de janela, e eu queria evitar a complexidade de um novo banco de dados e dialeto SQL.
Até agora, também aprendemos apenas sobre o consumo de dados (consultas). Existe toda uma outra área do SQL para manipulação de dados. Ela envolve ações como criação de tabelas e inserção e exclusão de dados. Compreender esses conceitos pode ser útil mesmo que você não administre bancos de dados, porque isso ajuda a entender, entre outras coisas, por que as tabelas são estruturadas da maneira que são.
Mais importante ainda, você ainda precisa de muita prática para se tornar eficaz em problemas do mundo real. A próxima seção oferece alguns exercícios, mas a dificuldade aumenta acentuadamente. Talvez você queira sair pelo mundo e praticar o que cobrimos até agora e voltar quando estiver pronto.
Questões Desafio
Os exercícios dos capítulos anteriores foram projetados para reduzir a complexidade e criar um ambiente acolhedor. Este capítulo marca a fronteira para o mundo selvagem e indomado dos problemas de SQL. A ideia aqui é aprender na prática—as questões são otimizadas para utilidade em vez de facilidade de aprendizado. Até mesmo quem tem experiência escrevendo SQL pode ter dificuldades; e há muito valor nessa dificuldade.
Convite para Problemas
A qualidade dos problemas define um tutorial. Se você tiver uma ideia para um novo problema ou seção, eu adoraria ajudar a publicá-la aqui com todo o crédito para você. Envie um e-mail para zichongkao@gmail.com ou envie um pull request. Lembre-se de que bons problemas não são necessariamente difíceis—eles apresentam técnicas que têm aplicações abrangentes.
Conjunto de Dados de Coautoria no Senado
Autoria: Kao
Nesta seção, apresentamos um novo conjunto de dados da 114ª sessão do Congresso (2015-2016) compilado por James Fowler e outros. Eu reformulei o conjunto de dados para permitir que estudássemos as relações de coautoria entre senadores.
O senador que apresenta o projeto de lei é chamado de “patrocinador”. Outros senadores podem demonstrar seu apoio tornando-se coautores do projeto. Os coautores no momento da apresentação são chamados de “coautores originais” (Fonte). Cada linha da tabela mostra o projeto de lei, o patrocinador, um coautor original e os estados que os senadores representam. Observe que pode haver vários coautores de um projeto de lei.