SQL non ti temo. Ci sono diversi modi per integrare Tableau con delle tabelle, dei database o dei file di testo, e uno di questi è il linguaggio SQL. Ora lo so, può spaventare questa parola che in realtà è una sigla e che andando ancora più nello specifico è un codice. Vedrete tuttavia che una volta affrontato si rivela essere un valido aiutante e un linguaggio molto semplice.
Partiamo dalla definizione. “SQL è un linguaggio per interrogare e gestire basi di dati mediante l’utilizzo di costrutti di programmazione denominati query. Con SQL si leggono, modificano, cancellano dati e si esercitano funzioni gestionali ed amministrative sul sistema dei database“.
SQL che sta per Structured Query Language permette quindi di entrare in un database e “giocarci”, leggendolo, modificandolo e soprattutto facendogli più domande possibili, le query appunto.
Con una query è possibile estrarre, inserire, aggiornare e cancellare record da un database oltre a creare nuovi database, nuove tabelle in un database, view, stored procedure e ancora, settare permessi su tabelle, procedure e view.
Come funziona SQL?
Iniziamo ad addentrarci nel vocabolario o lessico di SQL. Come comunica e come noi dovremo comunicare con lui?
Facciamo subito degli esempi semplici (con il database di Superstore):
Con [Tabella$] intendiamo una intera tabella. Ad esempio: [Orders$], dove il simbolo del dollaro significa “prendi tutto”.
Se invece vogliamo solo una colonna scriveremo [Colonna] ovvero il nome della colonna, ad esempio [Category]
E se invece voglio dei valori? Se lo scriviamo tra virgolette, tipo “Valore” sarà di tipo stringa, come “Forniture”, senza virgolette invece sarà di tipo numerico (es: 80).
Il SELECT
Ora ci serve un comando che dica a SQL di andare a prendere questi valori, tabelle, colonne e quant’altro, ovvero il SELECT. Facciamo un esempio subito:
SELECT column_name, column_name
FROM table_name;
Stiamo dicendo, vammi a prendere le colonne che ti chiedo, dalla tabella che voglio. Se invece volessi tutto e non solo determinate colonne, metto un asterisco (occhio quindi, il dollaro è per una intera tabella, qui invece stiamo dicendo una cosa diversa, lo vediamo subito)
Due esempi:
SELECT * FROM [Orders$]
Seleziona tutto dalla tabella Orders, non facciamo gli schizzinosi
Se invece volessi solo le colonne Category e Sales della tabella Orders:
SELECT [Category], [Sales]
FROM [Orders$]
Le condizioni, il WHERE
Ora poniamo delle condizioni, non vogliamo prendere tutto tutto o tutta una colonna, ma solo determinati dati che corrispondono a una nostra condizione. Per fare ciò useremo il comando WHERE.
SELECT column_name, column_name
FROM table_name
WHERE column_name operator value
Selezionami determinate colonne, da una certa tabella dove il valore nella colonna è uguale alla condizione che pongo
Estrai tutte le righe della tabella Orders completa, in cui la categoria è Furniture
SELECT * FROM [Orders$]
WHERE [Category]=”Furniture”
Ricordate? Se una stringa, allora tra virgolette
Estrai tutte le righe delle colonne Category, Sales e Profit della tabella Orders dove il profitto è maggiore di 2000:
SELECT [Category], [Sales], [Profit]
FROM [Orders$]
WHERE [Profit]>2000
2000 non è una stringa, quindi niente virgolette.
Le Wildcards
Un altro modo per ficcare il naso in un database sono le wildcards, ovvero usare i metacaratteri per effettuare ricerche in stringhe di testo, per porre dei criteri alfabetici
Esempio di sintassi:
SELECT column_name, column_name
FROM table_name
WHERE column_name LIKE wildcards
Esempio concreto: seleziona dalla tabella Orders le colonne Category e SubCategory, filtrando solo le righe in cui la SubCategory comincia per “T”
SELECT [Category], [SubCategory]
FROM [Orders$]
WHERE [SubCategory] LIKE “T%”
Posso fare le stesse cose con Tableau senza SQL?
Certo. Ed è anche più semplice in quanto diventa una questione di drag and drop. Ad esempio per il SELECT per una intera tabella basterà trascinarla dentro l’area
Cliccando su Add… possiamo selezionare le colonne e in seguito porre le nostre condizioni, le wildcards e tutto quello che ci interessa.
Nel prossimo articolo vedremo invece come effettuare delle join e delle union.