Per capire che cosa fa una query, ho sempre pensato che quanto segue fosse la procedura sulla valutazione di una query:
-
Forma la tabella come specificato nella clausola FROM.
-
Scegli le righe da quella tabella come specificato nella clausola WHERE.
-
Mostra le colonne delle righe risultanti, come specificato nella clausola SELECT.
Ma il problema è; tutt'intorno, vedo che SQL è un linguaggio dichiarativo . Cioè, non c'è nessuna garanzia come verrà eseguita una particolare query. Detto questo, la mia domanda è:
Il ragionamento sul risultato di una query è nel modo in cui io sbaglio? In tal caso, come dovrei ragionare sul risultato di una query? In altre parole, se non sono in grado di ragionare passo dopo passo, come dovrei prevedere quale sarà il risultato di una determinata query?
Il fatto è che, sebbene questo non sia un grosso problema nelle query banali, dato che le query diventano più complesse, ad esempio incorporando varie sottoquery correlate, non riesco a vedere come dovrei capire cosa fa una query, senza pensando alla query in un'esecuzione passo-passo. Quindi, vorrei imparare come ragionare sulle query SQL.