Lição 1
O que é SQL?
Entenda SQL como linguagem declarativa para consultar e alterar dados relacionais.
SQL é uma linguagem para trabalhar com dados relacionais. Em vez de descrever cada passo que o banco deve executar, você descreve o resultado que quer: linhas de uma tabela, linhas que correspondem a um filtro, linhas unidas a outra tabela, ou linhas resumidas agrupadas por categoria.
Isso torna SQL diferente de código de aplicação comum. Um statement SELECT é mais próximo de um pedido:
SELECT id, email
FROM users
WHERE status = 'active'
ORDER BY created_at DESC;
Você está dizendo: retorne as colunas id e email de users, mantenha só usuários ativos e ordene as contas mais recentes primeiro.
Por que desenvolvedores encontram SQL
Mesmo usando um ORM, SQL ainda está por baixo de muitos comportamentos em produção:
- Endpoints de API que leem e escrevem dados relacionais
- Dashboards admin e queries de relatório
- Logs de slow query e mensagens de erro de banco
- Migrations, constraints, índices e scripts de reparo de dados
- Pull requests em que revisores precisam entender mudanças de acesso a dados
A habilidade prática não é memorizar cada recurso de banco. É aprender a ler a forma da query, identificar suposições arriscadas e dividir um statement denso em partes compreensíveis.
SQL não é uma linguagem idêntica em todo lugar
SQL tem um núcleo compartilhado, mas cada banco tem detalhes de dialeto. PostgreSQL, MySQL, SQLite, SQL Server e outros sistemas diferem em funções, aspas, tratamento de datas, suporte a JSON, paginação e sintaxe procedural.
Quando um formatador ou parser pede um dialeto, escolha o banco de origem quando souber. SQL genérico é útil para queries simples, mas queries reais de aplicação frequentemente usam sintaxe específica do vendor.
Resumo
Comece lendo SQL como texto estruturado: colunas selecionadas, tabelas de origem, filtros, joins, agrupamento, ordenação e limites. Quando essa estrutura fica visível, depurar fica bem menos misterioso.
Pratique colando uma query no Formatador SQL e identificando cada cláusula antes de alterar o SQL.