Guida SQL
L'SQL (Structured Query Language) è il linguaggio standard per la manipolazione di database relazionali. SQL è oggi utilizzato nella maggior parte dei sistemi DBMS (i software utilizzati per la gestione dei database) sia open-source che commerciali.
Lo standard si limita alla sintassi ed al nome dei comandi principali, ma ogni DBMS in commercio parla un "dialetto proprietario" che si differenzia, sia pur minimamente, dagli altri. Alcuni DBMS, ad esempio, utilizzano dei comandi proprietari di quello stesso DBMS che non esistono su altri programmi. La sintasi di SQL, quindi, è data da un insieme di regole e funzioni comunemente presenti su tutti i DBMS, fermo restando che ognuno di questi può avere una sintassi proprietaria che si differenzia in parte dal linguaggio SQL o, più frequentemente, lo arricchisce di nuovi strumenti e funzionalità.
In questa guida ci limiteremo, pertanto, a descrivere i costrutti di base di SQL senza entrare nel merito degli specifici DBMS.
Un po' di storia...
Il linguaggio SQL è il frutto dell'evoluzione di un linguaggio di interrogazione del database System R sviluppato, intorno alla metà degli anni '70, presso i laboratori di ricerca di IBM. Il nome originale del linguaggio era SEQUEL (Structured English Query Language) che, in seguito, venne trasformato in SQL.
SQL ebbe subito un grande successo tanto da divenire uno standard di fatto già agli inizi degli anni '80. In seguito SQL fu oggetto di standardizzazione da parte di ANSI e ISO che lo dichiararono standard per la prima volta nel 1986.
A cosa serve SQL
Con l'SQL è possibile creare una tabella, modificarne la struttura o cancellarla. E' possibile effettuare ricerche più o meno precise tra i record di una tabella, inserire nuovi dati, modificare o cancellare dati esistenti. E' anche possibile mettere in relazione due o più tabelle in funzione della struttura delle tabelle e delle esigenze di estrazione e manipolazione dei dati.
Scopo di questa guida è fornire una buona introduzione al lettore neofita e di chiarire alcuni dubbi al lettore più esperto circa il mondo dei database ed il modo in cui interagire con loro e con i dati in essi archiviati. La prima lezione sarà dedicata ai concetti di base: cercherò di dare una risposta alle domande più comuni tra le quali "cos'è un database" e come funziona.
Cos’è un database, come funziona e com’è strutturato (tabelle, campi e record)
La base di qualsiasi esigenza pratica da parte di una qualsiasi organizzazione è quella di gestire dei dati in maniera logica e conservarli in modo ordinato. In ambito informatico il modo per gestire questa esigenza consiste nel fare ricorso ad una base dati (in inglese database).
Cos'è un database?
Con il termine "database" si fa riferimento ad un insieme di informazioni...
SQL: tipi di dato numerici, stringa e temporali
Nella precedente lezione abbiamo spiegato cos'è un database e abbiamo detto che, per immagazzinare i dati, esso ricorre a tabelle a loro volta organizzate in colonne e righe. All'interno di ogni colonna i dati immagazzinati devono essere tra loro omogenei, cioè essere dello stesso tipo.
Dichiarare i tipi di dato
Quando si definisce la struttura di una tabella bisogna dichiarare, per...
Operatori SQL: di confronto, aritmetici e logici
Come un qualsiasi linguaggio di programmazione, anche SQL utilizza una serie di simboli atti a definire uguaglianze, a fare confronti e calcoli. Questi simboli prendono il nome di operatori.
Anche in questo caso esistono una serie di operatori comuni, presenti in ogni DBMS, ed altri peculiari di uno specifico software. In questa lezione illustreremo gli operatori di SQL comuni a...
SQL CREATE TABLE – Creazione di una tabella
Chiunque abbia mai utilizzato un database come Access o un tool come phpMyAdmin sa benissimo che è possibile creare una tabella in maniera visuale in pochi passaggi... ma all'interno della nostra Guida SQL non possiamo esimerci dall'imparare a creare una tabella mediante il comando CREATE TABLE. La sintassi per la creazione di una tabella è la seguente:
CREATE TABLE nome_tabella...
SQL ALTER TABLE – Modifica strutturale di una tabella
Come abbiamo visto alla lezione dedicata al comando CREATE TABLE, la struttura di una tabelle viene definita in fase di creazione. Una volta creata la tabella, tuttavia, non è inmutabile ma è possibile apportarvi delle modifiche strutturali.
Per modifiche alla struttura di una tabella si intende, ad esempio, l'aggiunta di un campo, la modifica del nome di un campo esistente,...
SQL DROP TABLE – Cancellazione di una tabella
L'eliminazione di una tabella da un database è un'operazione molto delicata da eseguire con estrema attenzione e non tanto per prova: la cancellazione di una tabella è un'operazione che non può essere annullata e con essa saranno irrimediabilmente persi tutti i dati in essa contenuti. Prima di procedere, quindi, è bene prestare ma massima attenzione.
Rimuovre una tabella dal database
Per...
SQL INSERT INTO – Inserimento di dati in una tabella
Fino a questo momento abbiamo visto come creare e modificare la struttura di una tabella ed eventualmente come cancellarla fisicamente dal database, utilizzando i comandi della categoria DDL (Data Definition Language). Da questo capitolo inizia il percorso con cui impareremo a gestire i dati di una tabella utilizzando i comandi della categoria DML (Data Manipulation Language).
Nel capitolo della guida...
SQL SELECT – Interrogazione di una tabella
Eccoci arrivati ad una delle lezioni più importanti della nostra Guida, ovvero la lezione dedicata al comando SQL SELECT. Con l'istruzione SELECT di SQL possiamo effettuare delle interrogazioni al database per estrarne i dati in esso contenuti. Queste interrogazioni prendono il nome di query (in italiano, appunto, "interrogazione").
Estrarre i dati da una tabella
La sintassi base di una SELECT SQL...
SQL ORDER BY – ASC e DESC per ordinare in modo ascendente o discendente
Nella lezione dedicata all SELECT abbiamo visto come interrogare il database per estrarre i dati in esso contenuti. Abbiamo anche visto come utilizzare la clausola WHERE per filtrare la selezione in base a diversi criteri. In questa lezione della nostra guida SQL vedremo come ordinare i risultati ottenuti attraverso la SELECT.
Al fine di effettuare l'ordinamento di un resultset si...
SQL UPDATE – Aggiornamento dei dati di una tabella
Vediamo in questa lezione quando e come utilizzare il comando SQL UPDATE grazie al quale è possibile aggiornare i dati già presenti all'interno di una tabella di un database.
I dati di una tabella, infatti, sono spesso soggetti a cambiamenti ed a modifiche. Un esempio di modifica che potremmo dover effettuare all'interno della nostra tabella dei "libri" (cui abbiamo fatto...
SQL DELETE e TRUNCATE – Cancellazione di dati da una tabella
Vediamo in questa lezione quando e come utilizzare il comando SQL DELETE per effettuare la cancellazione (massiva o selettiva) dei dati in essa contenuti. Per prima cosa, però, cerchiamo di individuare la casistica in cui il comando DELETE può esserci utile.
Nel cilco di vita di un sito web o di un'applicazione (basata su un database) può capitare che i...
JOIN SQL: Creare relazioni tra più tabelle di un database
In questa lezione della nostra Guida al linguaggio SQL vedremo come creare relazioni tra le tabelle utilizzando le cosiddette JOIN, termine anglosassone traducibile in italiano come "giunzione".
Prima di affrontare la tematica in oggetto, tuttavia, è opportuno fare una premessa introducendo i concetti di ridondanza e normalizzaione in quanto propedeutici all'utilizzo delle JOIN.
Normalizzazione e Ridondanza
Lo scopo di una database è...
SQL GROUP BY, HAVING e le funzioni di aggregazione
Le funzioni di aggregazione effettuano un calcolo all'interno di un set di valori e restituiscono un singolo valore (un unico record): sono dette di aggregazione appunto perché "aggregano" più record per trarne uno.
Le funzioni di aggregazione vengono utilizzate di frequente con le clausole GROUP BY e HAVING che consentono, appunto, di aggregare i risultati secondo alcuni criteri che vedremo...
SQL Alias – cosa sono e come funzionano
Nella lezione dedicata alle funzioni di aggregazione, abbiamo incontrato gli alias, ovvero dei nomi temporanei assegnati ai risultati di specifiche funzioni. In realtà gli alias SQL possono essere utilizzati anche per assegnare un nome temporaneo ad una tabella o a una colonna (ad esempio per migliorarne la "leggibilità" all'interno di una estrazione di dati).
E' bene precisare che la creazione...