O SQL tem isto de particular: não se aprende olhando. Uma consulta se entende quando se escreve, quando se erra, e quando se vê voltar três linhas em vez de trinta. Mas é preciso ter um banco para consultar.
O SQL é uma das linguagens mais acessíveis que se pode ensinar: a sintaxe se lê quase como uma frase, e um iniciante produz uma consulta útil em poucos minutos. O obstáculo está em outro lugar.
Antes de escrever um único SELECT, é preciso ter um banco de dados à disposição. E é aí que as formações de SQL perdem o primeiro meio dia:
DELETE desastrado destrói os dados de todo o grupo.A solução mais simples é dar a cada um o seu próprio banco, no seu navegador, já preenchido. Ninguém instala nada, ninguém destrói o trabalho dos outros, e um DROP TABLE infeliz custa apenas uma recarga de página.
A escolha do conjunto de dados pesa mais do que se imagina no sucesso de uma formação. Um banco rico demais obriga a explicar o negócio antes de explicar a linguagem; um banco pobre demais não permite nenhuma junção interessante.
O modelo que funciona em qualquer lugar cabe em quatro tabelas: clientes, produtos, pedidos e os itens desses pedidos. Todo mundo entende o sentido sem preâmbulo, e essa estrutura basta para cobrir o essencial do programa:
Mantenha o volume modesto: umas dez linhas por tabela. Um resultado que se pode ler por inteiro na tela permite verificar por si mesmo que a consulta fez o que se pensava.
A progressão clássica dos manuais segue a ordem da sintaxe. A ordem que funciona em aula segue a dificuldade real, e ela não está onde se espera.
Comece lendo, não escrevendo. Uma consulta já escrita, que se executa e cujo resultado se observa, instala o essencial: uma consulta devolve uma tabela. Depois faça modificá-la — mudar uma cidade, acrescentar uma ordenação — antes de pedir que escrevam uma do zero.
Introduza a junção cedo. É contraintuitivo, mas a junção é o coração do SQL e a origem da maioria dos bloqueios. Empurrá-la para o fim do programa faz acreditar que o resto está aprendido, quando metade do grupo trava já na primeira.
Deixe o GROUP BY para o fim. O agrupamento exige pensar em conjuntos e não em linhas: é um salto conceitual de verdade, que merece tempo e exemplos visuais.
Três mal-entendidos voltam em cada grupo, qualquer que seja o nível. Antecipá-los economiza uma hora.
FROM, nenhuma condição de ligação, e a consulta devolve o produto de todas as linhas. O resultado é enorme e ninguém entende por quê. Mostre isso de propósito uma vez: é a demonstração mais eficaz.Esses três casos têm um ponto em comum: a consulta não quebra. Ela devolve um resultado falso, em silêncio. Daí a importância de trabalhar com um conjunto de dados pequeno o bastante para que se possa verificar o resultado a olho.
O SQL se presta particularmente bem à correção coletiva: uma consulta cabe em poucas linhas, e o resultado é imediatamente visível para todos.
O dispositivo mais eficaz é projetar a sua própria tela enquanto cada um trabalha na dele. Você escreve uma consulta, ela aparece na tela deles; eles a adaptam sem ter de copiá-la de memória. Na hora de corrigir, mostre primeiro o resultado esperado — a tabela, não a consulta. O grupo passa então a procurar o caminho, que é exatamente o exercício.
Deixe o gabarito escrito com antecedência, mas oculto, e revele-o só depois. Um gabarito visível cedo demais transforma um exercício de raciocínio num exercício de cópia.
Um banco no navegador cobre tudo o que se consulta. Ele não cobre o que se administra, e é uma distinção que vale a pena deixar clara diante do grupo.
Restam para tratar num ambiente real: os direitos e os usuários, as cópias de segurança, a otimização e os índices em volumes consideráveis, as transações concorrentes, e as diferenças de dialeto entre os bancos. Esses assuntos pertencem mais ao ofício de administrador do que à escrita de consultas.
Para uma iniciação, uma atualização ou um módulo de SQL dentro de uma formação maior, o navegador basta de sobra — e libera o meio dia que se gastava instalando.
Não para aprender a escrever consultas. Um banco SQLite que roda no navegador cobre a filtragem, as ordenações, os agregados, as junções e os agrupamentos — ou seja, o essencial de uma iniciação. Um servidor passa a ser necessário para tratar a administração: direitos, cópias de segurança, índices, transações.
Não, se cada um tiver o seu próprio banco, no seu próprio navegador. É a vantagem principal dessa abordagem: um DELETE ou um DROP TABLE desastrado só atinge a cópia do seu autor, e uma recarga de página põe tudo no lugar.
Quatro tabelas bastam: clientes, produtos, pedidos e itens de pedido. Todo mundo entende o sentido sem explicação de negócio, e essa estrutura já permite a filtragem, os agregados, a junção simples e o agrupamento. Mantenha umas dez linhas por tabela, para que um resultado continue verificável a olho.
Primeiro fazer executar e modificar consultas já escritas, introduzir a junção cedo — é o verdadeiro ponto de bloqueio — e guardar o agrupamento para o fim, porque exige pensar em conjuntos e não em linhas.
Instalar um ambiente em vinte máquinas come o começo de cada aula. Veja como fazer escrever e executar código no navegador, o que isso permite de verdade, e onde estão os limites.
Primeiros passosUm exercício escrito uma vez deveria servir dez vezes. Veja como montar um banco que se encontra, sem gastar nele mais tempo do que se ganha.
ConduçãoO roteiro que se redige para um dossiê e o que se mantém sob os olhos em sala não têm o mesmo conteúdo. Veja como escrever o segundo.
PedagogiaPython, JavaScript, HTML/CSS e SQL rodando no navegador, 36 quizzes de informática prontos para jogar, um banco de exercícios e a lista de presença: o panorama completo para um formador em desenvolvimento.
Crie a sua primeira sala interativa em menos de 5 minutos. Plano gratuito, sem cartão de crédito.
Começar gratuitamente