Codice SQL per i capitoli 6 e 7
Questa è la tabella ‘dottori’ CREATE TABLE agenda (id integer PRIMARY KEY AUTO_INCREMENT, dottore varchar(30), data DATE, giorno varchar(10), ospedale varchar(30), citta varchar(10), Stato varchar(2)); INSERT INTO agenda (dottore, data, giorno, ospedale, citta, Stato) VALUES (‘Gregory House’, ‘2023-04-25’, ‘Lunedì’, ‘Plainsboro’, ‘Princeton’, ‘NJ’); INSERT INTO agenda (dottore, data, giorno, ospedale, citta, Stato) VALUES (‘Randolph Bell’, […]
Codice SQL per il capitolo 5
In questo capitolo si usano gli esempi dei due precedenti, collegati alla tabella ‘oggetti’, e poi il seguente codice, prima relativo alla tabella ‘fornitori’, poi dall’unione dei due. Questa è la tabella ‘fornitori’ CREATE TABLE fornitori (id integer PRIMARY KEY AUTO_INCREMENT, marca varchar(50), distributore varchar(2), provenienza varchar(50), percentuale DECIMAL(5,2)); INSERT INTO fornitori (marca, […]
Codice SQL per i capitoli 3 e 4
Questa è la tabella ‘oggetti’ CREATE TABLE oggetti (id integer PRIMARY KEY AUTO_INCREMENT, oggetto varchar(50), marca varchar(50), modello varchar(50), descr varchar(10), collocazione VARCHAR(8), quantita integer, prezzo decimal); INSERT INTO oggetti (oggetto, marca, modello, descr, collocazione, quantita, prezzo) VALUES (‘Drone’, ‘DJI’, ‘Mavic Air 2’, ‘descr’, ‘OGG.001’, 10, 1000); INSERT INTO oggetti (oggetto, marca, modello, descr, collocazione, […]
Sviluppi successivi a questa guida SQL

In questa guida hai visto le basi elementari della gestione di basi di dati a partire da tabelle che vengono manipolate e messe in relazione tra loro. Senza entrare nel dettaglio operativo, è opportuno che tu sappia fin d’ora in quale ambiente ti troverai a lavorare realmente in questo mondo. Per ridurre al massimo i […]
Commenti in SQL

Se hai prestato attenzione nella pagina precedente, avrai certamente notato che nel codice abbiamo inserito nuovi caratteri, composti dal doppio trattino — o da una combinazione di slash ed asterisco (/*, */). Tutti i linguaggi di programmazione permettono di inserire dei commenti utili per modificare il codice, ma che non vengono eseguiti. In genere nelle […]
AVG, MIN e MAX SQL
Funzioni di aggregazione come AVG, MIN e MAX per calcolo statistiche sui dati. Vediamo come fare una media e trovare massimo e minimo dei tre numeri nella colonna da_1_genn. SELECT AVG(da_1_genn) AS media, MIN(da_1_genn) AS minimo, MAX(da_1_genn) AS massimo FROM agenda; Essendo una SELECT, non modifica la tabella ‘agenda’ ma presenta direttamente i […]
COUNT, SUM; AND, OR, NOT SQL

Passeremo velocemente su questa parte, poiché davvero semplice. Avrai comunque modo di eseguire alcune operazioni che ti mostrino in pratica le possibilità di base e ti consentano, se avrai voglia, di fare autonomamente sperimentazioni più ampie con le clausole che vedrai. Inoltre, avrai le basi per cercare autonomamente le altre clausole ed istruzioni offerte dal […]
ALTER TABLE / DROP SQL
Per cancellare un campo da una tabella serve l'istruzione ALTER TABLE. Ad esempio, per cancellare il campo "giorno" dalla tabella "agenda", puoi usare il seguente comando: ALTER TABLE agenda DROP COLUMN giorno; Una volta eseguita, questa istruzione riduce la tabella. Chiedendo al sistema di mostrare il risultato con la solita SELECT, otterrai questa […]
ALTER TABLE / ADD / UPDATE SQL
Se hai fatto attenzione, hai notato anche che rispetto alla lista discorsiva alla tabella manca una informazione: l’orario. I tre appuntamenti sono infatti rispettivamente alle 16, 18 ed 11 in orario locale. Per completare la tabella bisogna quindi aggiungere un campo. A questo serve l'istruzione ALTER TABLE, ovvero modifica la tabella. Per aggiungere alla tabella […]
Aggiungere e modificare campi in SQL

Per aggiungere, cancellare o modificare i campi si usano le istruzioni ALTER. Per fare degli esempi senza creare confusione su MySQL online useremo una tabella a parte, un calendario di appuntamenti. Supponiamo di avere i seguenti appuntamenti: Lunedì 25/04 ore 16 visita da Gregory House al Plainsboro Teaching Hospital di Princeton, NJ (New […]
JOIN SQL

Per unire più tabelle, dato che ne abbiamo solo ‘oggetti’, ne serve una seconda. Eccola: la chiameremo ‘fornitori’. CREATE TABLE fornitori (id integer PRIMARY KEY AUTO_INCREMENT, marca varchar(50), distributore varchar(2), provenienza varchar(50), percentuale DECIMAL(5,2)); INSERT INTO fornitori (marca, distributore, provenienza, percentuale) VALUES (‘DJI’, ‘sì’, ‘Olanda’, 30.32); INSERT INTO fornitori (marca, distributore, provenienza, percentuale) VALUES […]
UNION SQL

L'operatore UNION unisce il risultato di due o più SELECT in un unico risultato. Il risultato dell'UNION contiene tutte le righe restituite dalle query coinvolte nell'operazione senza duplicati. Ad esempio, potremmo unire le righe della tabella "oggetti" dove il prezzo è uguale a 1000 con quelle dove la collocazione è "OGG.002". Ecco un esempio di […]
HAVING SQL
Supponi, ora, di voler conoscere il numero totale di oggetti presenti solo per le marche con almeno un oggetto con prezzo uguale a 1000. La clausola HAVING filtra i dati raggruppati: SELECT marca, SUM(quantita) as totale_oggetti FROM oggetti WHERE prezzo = 1000 GROUP BY marca HAVING totale_oggetti > 0; Questa query restituisce una tabella […]
ORDER SQL

Un tipo di filtro molto interessante è l’ordinamento dei dati. Vari tipi di ordinamento sono fondamentali per un uso efficace dei database. Sempre partendo dall’istruzione SELECT, le clausole usate sono ORDER e GROUP. Per ordinare gli oggetti in base al prezzo, dal più basso al più alto, puoi usare ORDER BY: SELECT * […]
GROUP SQL

Un’altra clausola molto usata con SELECT è GROUP. Supponi di voler conoscere il numero totale di oggetti presenti per collocazione. Puoi usare la clausola GROUP BY. Per fare le cose un po’ più interessanti, nell’esempio che segue trovi alcune variazioni sul tema, con le clausole COUNT, AS e SUM: capisci a che servono? […]
WHERE SQL

WHERE e HAVING sono due clausole dell’istruzione SELECT. Vediamo come funzionano. Supponi di voler selezionare solo gli oggetti con marca 'Trotec'. SELECT * FROM oggetti WHERE marca='Trotec'; Questo restituirebbe solo le righe della tabella 'oggetti' in cui la marca è 'Trotec', nel nostro esempio, il laser cutter. Invece, per scegliere tutti […]
SELECT SQL

La prima modalità di filtro è l’uso di SELECT per il suo vero utilizzo: scegliere alcune colonne e non altre. Finora l’hai visto con l’asterisco, che indica tutte le colonne e, quindi, non fa alcuna scelta. Se dall’esempio corrente usi una SELECT diversa puoi nascondere le colonne che vuoi. SELECT marca, modello, prezzo FROM […]
Il primo esempio
Ti avevamo promesso mani in pasta, ed eccoci qui: diamo un po' di concretezza a quanto detto! Con MySQL Online, l’esempio teorico visto nei capitoli precedenti appare scritto così: CREATE TABLE oggetti (id integer PRIMARY KEY AUTO_INCREMENT, oggetto varchar(50), marca varchar(50), modello varchar(50), descr varchar(10), collocazione VARCHAR(8), quantita integer, prezzo decimal); INSERT INTO oggetti […]