Nozioni fondamentali sulle query

Le query sono richieste di dati archiviati in SQL Server. Possono essere eseguite in modi diversi:

  • In MS Query e Microsoft Access è possibile utilizzare un'interfaccia utente grafica (GUI) per selezionare i dati che si desidera visualizzare da una o più tabelle di SQL Server.

  • In SQL Server Management Studio o nell'utilità osql è possibile eseguire un'istruzione SELECT.

  • In un'applicazione client o di livello intermedio, quale un'applicazione Microsoft Visual Basic, è possibile mappare i dati di una tabella SQL Server in un controllo associato, ad esempio una griglia.

Pur interagendo con l'utente in diversi modi, le query consentono di eseguire la stessa operazione, ovvero visualizzare il set di risultati di un'istruzione SELECT. Anche nei casi in cui l'istruzione SELECT non viene specificata, ad esempio in strumenti grafici quali Visual Studio Query Designer, il software client trasforma le singole query dell'utente in un'istruzione SELECT che viene inviata a SQL Server.

L'istruzione SELECT recupera i dati da SQL Server e li presenta all'utente in uno o più set di risultati. Un set di risultati è una rappresentazione in formato tabulare dei dati richiesti con l'istruzione SELECT. Analogamente a una tabella SQL, il set di risultati è costituito da colonne e righe.

La sintassi completa dell'istruzione SELECT è complessa. La maggior parte delle istruzioni SELECT tuttavia descrive quattro proprietà principali di un set di risultati:

  • Numero e attributi delle colonne del set di risultati. Per ogni colonna è necessario definire gli attributi seguenti:

    • Tipo di dati

    • Dimensioni e, nel caso di colonne numeriche, precisione e scala

    • Origine dei valori restituiti

  • Tabelle da cui vengono recuperati i dati per il set di risultati e le relazioni logiche tra le tabelle.

  • Condizioni che le righe delle tabelle di origine devono soddisfare per essere incluse nel risultato dell'istruzione SELECT. Le righe che non soddisfano le condizioni specificate vengono ignorate.

  • Ordinamento delle righe nel set di risultati.

L'istruzione SELECT seguente consente di trovare l'ID prodotto, il nome e il prezzo di listino di tutti i prodotti il cui prezzo unitario è maggiore di $40:

SELECT ProductID, Name, ListPrice
FROM Production.Product
WHERE ListPrice > $40
ORDER BY ListPrice ASC

I nomi delle colonne elencate dopo la parola chiave SELECT (ProductID, Name e ListPrice) rappresentano l'elenco di selezione. Tramite questo elenco viene specificato che il set di risultati include tre colonne, a ciascuna delle quali sono associati il nome, il tipo di dati e le dimensioni della colonna corrispondente nella tabella Product. Poiché la clausola FROM specifica una sola tabella di base, tutti i nomi di colonna indicati nell'istruzione SELECT fanno riferimento alle colonne di tale tabella.

La clausola FROM riporta la tabella Product nell'elenco di quelle da cui è necessario recuperare i dati.

La clausola WHERE specifica che le uniche righe della tabella Product che soddisfano le condizioni dell'istruzione SELECT sono quelle in cui il valore della colonna ListPrice è maggiore di $40.

La clausola ORDER BY specifica che il set di risultati deve essere disposto in ordine crescente (ASC) in base al valore della colonna ListPrice.