Inizio con SQL Server: 1. Semplice query SELECT

In questa serie di lezioni imparerete come interrogare Microsoft SQL Server usando l’istruzione SQL SELECT. Dopo aver letto questa lezione sarai in grado di:

  • Identificare tutte le tabelle in un database SQL Server SSMS (SQL Server Management Studio).
  • Capire come elencare le colonne di una tabella.
  • Per visualizzare le colonne, creare risultati testuali e matematici e impostare valori distinti, usa l’istruzione SQL SELECT.
  • Impara alcune tecniche per eseguire il debug dei tuoi comandi e correggere gli errori.

Importante! Seguite gli esempi nel vostro database e fateli. Se non l’hai ancora fatto, iscriviti alla mia Guida per iniziare con SQL Server. Puoi ricevere una guida per scaricare il software gratuito e il database di esempio.

Comprendere il tuo database

Una semplice istruzione select consiste di due parti. La prima parte descrive quali colonne vogliamo visualizzare e la seconda parte quale tabella stiamo visualizzando. Un’istruzione di selezione assomiglia a:

SELECT LastName FROM Person.Person

In questo esempio LastName è la colonna e Person la tabella. Le colonne vengono dopo la parola chiave SELECT; mentre la tabella è preceduta da FROM.

Nome delle tabelle

Ti starai chiedendo perché la tabella Person è chiamata Person. Person nella dichiarazione di cui sopra. Questo ha a che fare con il modo in cui gli oggetti sono organizzati sul server. Il database può essere pensato come una serie di contenitori annidati. I contenitori sono:

  • Server/Instance – L’istanza di SQL Server in esecuzione sul computer.
  • Database – Uno o più database creati sull’istanza.
  • Schemi – Un modo per raggruppare logicamente tabelle e altri oggetti del database.

Il nome pienamente qualificato per una tabella è …. Quindi se volessimo davvero essere espliciti potremmo usare qualcosa come

SELECT LastName FROM ...

per fare una query. Fortunatamente scriviamo tipicamente le query nel contesto di un database, quindi abbiamo solo bisogno di specificare lo Schema e il TableName come segue:

SELECT LastName FROM Person.Person

Ma le parentesi ? Quelle sono usate se la vostra tabella ha uno spazio nel nome. Quindi

SELECT Last NameFROM Person.Person Table

sarebbe un errore

SELECT FROM Person.

Va bene. Il mio consiglio? Se potete dare un nome alle vostre tabelle, non usate spazi, le parentesi sono brutte! Se dovete, fate come quelli di Oracle e usate i trattini bassi. Person_Table è molto più facile da leggere che, personalmente, preferisco PersonTable.

Utilizzare l’Object Explorer

Per scrivere le query devi sapere quali tabelle e colonne sono disponibili nei tuoi database. Quando usi SSMS (SQL Server Management Studio) puoi semplicemente espandere la cartella tabelle del database per elencare tutte le tabelle che si trovano nel tuo database. Una volta trovata una tabella di cui vorresti sapere di più, clicca semplicemente sul nome della tabella per espanderla, e poi sulla cartella delle colonne per elencare tutte le colonne.

Eseguire le query in SSMS

Prima di andare troppo lontano lascia che ti mostri come eseguire una query in SSMS. In realtà è molto facile. Una volta che hai lanciato SQL Server Management Studio, vorrai selezionare il tuo database. Poi cliccate sul pulsante New Query che si trova nella barra degli strumenti in alto. Questo visualizza una finestra di query sulla destra. Puoi digitare qualsiasi cosa tu voglia in questa finestra, dato che è fondamentalmente un editor di testo. Taglia e incolla o scrivi un’istruzione SQL, quindi fai clic su Execute per eseguire l’istruzione. I risultati sono mostrati nella parte inferiore della finestra e qualsiasi messaggio, come gli errori, sono mostrati nella scheda messaggi.

Seleziona colonne multiple

Per selezionare più di una colonna, basta separarle con una virgola. Per esempio,

SELECT FirstName, LastNameFROM Person.Person

restituisce come risultato sia il nome che il cognome. Nel caso vi stiate chiedendo, potete mischiare i casi quando scrivete le query. Cioè

SELECT FirstName, LastNameFROM Person.Person

Funziona altrettanto bene come

select FirstName, LastNamefrom Person.Person

Tip! Una convenzione comune è quella di mettere in maiuscolo tutte le parole chiave. Alcuni DBA sentono che è più facile leggere i comandi scritti in questo modo. Personalmente non lo faccio, ma per questo blog ci proverò. 🙂

Rinomina le colonne SQL

Puoi rinominare le colonne che risultano dalle tue istruzioni select. Per fare questo usa l’istruzione AS in questo modo:

SELECT LastName as SirNameFROM Person.Person

Questo mostra il risultato come “SirName” piuttosto che “LastName”. Questa è una bella caratteristica dal punto di vista della vanità, ma è anche utile quando vogliamo restituire un risultato di calcolo e abbiamo bisogno di dargli un nome. Per esempio, supponiamo di voler restituire il LastName in tutte le maiuscole. Potreste scrivere

SELECT UPPER(LastName) AS SirNameFROM Customers

UPPER è conosciuta come una funzione. SQL Server ha molte funzioni che potete usare per eseguire molti tipi di calcoli. Le esamineremo tutte più tardi, ma per ora, sappiate che potete stringere diverse funzioni insieme per creare un’espressione complessa per emettere i dati come vi serve.

Espressioni di colonne complesse

La nostra tabella degli impiegati contiene campi separati per nome e cognome. Supponiamo che l’ufficio del personale abbia bisogno di vedere il nome completo in maiuscolo. Come fareste? Semplice! Potresti scrivere

SELECT UPPER(FirstName) + ' ' + UPPER(LastName) AS FullNameFROM Person.Person

Questa dichiarazione può sembrare complicata, ma una volta che l’avremo scomposta, vedrai che è solo composta da un mucchio di semplici elementi.

  • Come hai appena imparato, UPPER è usato per restituire le maiuscole di una colonna.
  • Il + dice a SQL di combinare due valori insieme.

Tutto ciò che è tra apici singoli (‘) viene letteralmente visualizzato così com’è. Nel nostro caso il ‘ ‘ significa emettere un singolo spazio. Se leggete la nostra espressione, in inglese, si leggerebbe come “Prendete la maiuscola di FirstName combinatela con uno spazio e poi aggiungeteci la maiuscola di LastName.”

Fate matematica con SQL!

Potete anche far fare a SQL trucchi matematici per voi. Può fare dell’aritmetica piuttosto complicata se glielo permetti. Per oggi, vi mostrerò come moltiplicare due numeri, ma potete facilmente aggiungere, sottrarre o dividere. Più tardi la faremo più complicata, così potrai rivivere i tuoi giorni di Algebra II 🙂 Ecco alcuni operatori matematici comuni che puoi usare in SQL:

  • * Moltiplicare
  • / Dividere
  • + Aggiungere
  • – Sottrarre

Useremo la tabella OrderDetails e calcoleremo il prezzo totale moltiplicando il prezzo unitario per la quantità.

SELECT UnitPrice, OrderQty, UnitPrice * OrderQty AS TotalFROM Purchasing.PurchaseOrderDetail

Il bit ” UnitPrice * OrderQty” dice di moltiplicare UnitPrice per Quantity.

Be Distinct and Debug

Finora abbiamo usato l’istruzione select per recuperare tutti i record di una tabella indipendentemente dal fatto che alcuni valori si ripetano o meno. Se volete, potete usare la parola chiave DISTINCT per rimuovere i duplicati dai vostri risultati. Per esempio, se volessi solo restituire una lista unica di titoli dei dipendenti, useresti questa istruzione SQL:

SELECT DISTINCT JobTitleFROM HumanResources.Employee

L’istruzione DISTINCT funziona anche su più di una colonna. Se vuoi, puoi ottenere un elenco distinto di titoli di lavoro e generi digitando

SELECT DISTINCT JobTitle, GenderFROM HumanResources.Employee

! Curiosità: la parola chiave ALL è la controparte di DISTINCT ed è il comportamento predefinito. Questo è il motivo per cui non la scriviamo nelle nostre dichiarazioni.

Trovare e correggere gli errori

Prima o poi sbaglierete a digitare una dichiarazione select nella linea di comando e il computer vi urlerà – “Errore di sintassi!” o “Nome colonna non valido” Cosa fare? Basta ricordare che l’istruzione di selezione è composta da due parti principali: la parte SELECT e la parte FROM. In generale, il database prima guarda se queste parole chiave sono presenti, e se non lo sono si innesca un errore di sintassi.

Questa è solo una frase di fantasia per “hai scritto male una parola chiave o l’hai fuori ordine” (ad esempio hai il Distinct prima di Select come in DISTINCT SELECT). Una volta controllate le parole chiave, lo statement viene ispezionato per assicurarsi che abbiate specificato una tabella. Una volta che la tabella è nota può controllare le colonne. Quindi l’ordine è di controllare prima le parole chiave, poi le tabelle e infine le colonne corrette. Ogni volta che viene visualizzato un errore leggilo attentamente. È probabile che tu abbia scritto male qualcosa. Il computer ti dirà cosa hai scritto male tra virgolette; il tuo lavoro è trovare l’errore e correggerlo.

Esercizi SQL Select

È importante fare pratica! Usa il database di esempio per rispondere a queste domande.

  1. Come puoi trovare tutti i nomi delle tabelle nel database AdventureWorks2012?
  2. Quali sono due modi per ottenere i nomi di tutte le colonne nella tabella Person.Person?
  3. Seleziona JobTitle e BirthDate per tutti i dipendenti.
  4. Quale sarebbe l’UnitPrice di ogni articolo di PurchaseOrderDetail se ci fosse una vendita a metà prezzo?

Le risposte sono qui

Congratulazioni! Hai appena imparato ad usare il comando select per interrogare un database. Seguiranno altri tutorial, nei quali ci immergeremo in alcune delle aree che abbiamo sorvolato oggi, come gli operatori matematici e le funzioni. Ricordate! Voglio ricordare a tutti voi che se avete altre domande a cui volete una risposta, allora postate un commento o twittatemi. Sono qui per aiutarvi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.