Direi che ci sono due tipi di cose da sapere in merito a SQL (questo è vero per molte tecnologie in realtà), ci sono cose tecniche specifiche come join, sottoquery, sindacati, ecc che tu comprendi o no, e poi ci sono cose come la progettazione di database e la modellazione dei dati che ha un gradiente di abilità in esso, come l'arte. Migliora nel tempo con quelle cose più morbide, ma non le "conosci" mai perché non c'è "loro funzionano così" con loro.
Detto questo, ecco un layout generale con cui andrei, e sono assolutamente aperto a commenti / pensieri da altri in cui potrei sbagliarmi.
principianti
- Clausole Where (in, between, ecc.)
- Aggiorna sintassi
- Interno vs sinistra e destra uniscono comprensione e utilizzo
- Sintassi per la modifica e la creazione di strutture
- Tabelle temporali e loro utilizzo
- Cursori
- Idea di base su quali sono gli indici, anche se non su come funzionano
- Comprensione delle chiavi esterne e su come aggirarle (eliminazioni a cascata, ecc.)
- Comprende le nozioni di base sulle transazioni
- Comprende i vincoli
Intermedio
- Come funzionano gli indici, differenza tra cluster, non in cluster, ecc. cos'è una pagina e come sono layout
- Comprensione delle sottoquery e può pensare di utilizzarle in join e in cui
- perni
- Puoi pensare di unirti a un tavolo su se stesso quando pertinente
- Può generare report di dati complessi tramite group by con funzioni aggregate
- Può eseguire il profiling di base solo in una capacità di monitoraggio / debug come leggere un log
- Comprende la differenza tra OLAP e OLTP e quando / dove utilizzare le strutture OLAP
- sa usare i trigger e non usarli
- Comprende le transazioni e può stratificarle gestendo i fallimenti nello stack
Avanzate
- È in grado di leggere un piano di esecuzione e capire in che modo le diverse parti della query hanno effetto su
- È possibile regolare le query con suggerimenti di esecuzione senza compromettere le prestazioni (suggerimenti sul parallelismo, suggerimenti sugli indici, suggerimenti sul loop, ecc.)
- Può profilare e utilizzare le tracce per identificare e comprendere le statistiche delle esecuzioni sotto carico reale
- Conosce le strutture dei dati sul disco
- È possibile utilizzare i contatori delle prestazioni e comprendere il carico e il comportamento del database dal loro monitoraggio
- Conosce come progettare un cubo OLAP e fare un data mining avanzato con uno
- Conosce come utilizzare i trigger e come usarli in modo sicuro, con un rischio minimo
- Sa utilizzare le transazioni distribuite anche con i livelli
Questo è tutto ciò che potrei inventarmi. Si prega di lasciare commenti che menzionino gli altri che ho perso o se ho inserito qualcosa nel posto sbagliato. Non sono abbastanza avanzato da conoscere un enorme elenco di tecniche avanzate per mettere giù heh