Eu diria que existem dois tipos de coisas a saber em relação ao SQL (isso é verdade para muitas tecnologias), existem coisas técnicas específicas, como junções, subconsultas, uniões, etc., que você entende ou não, e então há coisas como design de banco de dados e modelagem de dados, com um gradiente de habilidade, como arte. Você melhora com o tempo com essas coisas mais suaves, mas nunca as "conhece" porque não há "elas funcionam dessa maneira" com elas.
Dito isto, aqui está um layout geral com o qual eu iria e estou absolutamente aberto a comentários / pensamentos de outras pessoas em que posso estar errado.
Principiante
- Cláusulas Where (entre, etc)
- Sintaxe de atualização
- Entendimento e uso da junção interna x esquerda x direita
- Sintaxe para alterar e criar estruturas
- Tabelas temporárias e seu uso
- Cursores
- Ideia básica para que servem os índices, embora não como eles funcionam
- Compreensão de que servem as chaves estrangeiras e como contorná-las (exclusões em cascata etc.)
- Compreende o básico das transações
- Compreende restrições
Intermediário
- Como os índices funcionam, a diferença entre agrupados, não agrupados, etc., o que é uma página e como eles são exibidos
- Compreensão das subconsultas e pode pensar em usá-las em junções e onde
- Pivôs
- Consegue pensar em ingressar em uma tabela quando relevante
- Pode gerar relatórios de dados complexos por meio de agrupamentos com funções agregadas
- Pode criar perfis básicos apenas em uma capacidade de monitoramento / depuração, como a leitura de um log
- Entende a diferença entre OLAP e OLTP e quando / onde usar estruturas OLAP
- Sabe como usar gatilhos e não usá-los
- Entende as transações e pode colocá-las em camadas, manipulando falhas na pilha
Avançado
- Pode ler um plano de execução e entender como as diferentes partes da consulta o afetam
- Pode ajustar consultas com dicas de execução sem prejudicar o desempenho (dicas de paralelismo, dicas de índice, dicas de loop etc.)
- Pode criar um perfil e usar rastreamentos para identificar e entender estatísticas de execuções sob carga do mundo real
- Sabe quais são as estruturas de dados no disco
- Pode usar contadores de desempenho e entender qual é a carga e o comportamento do banco de dados monitorando-os
- Sabe como projetar um cubo OLAP e fazer mineração de dados avançada com um
- Sabe como usar gatilhos e como usá-los com segurança, com risco mínimo
- Sabe como usar transações distribuídas, mesmo com camadas
Era tudo o que eu conseguia pensar em cima da minha cabeça. Por favor, deixe comentários mencionando outras pessoas que eu perdi ou se coloquei algo no lugar errado. Eu não sou avançado o suficiente para conhecer uma enorme lista de técnicas avançadas para derrubar heh