Quelli precedenti sono esempi validi, ma singoli, di istruzioni SQL che permettano di generare, compilare e gestire una tabella SQL. Avviciniamoci, ora, ad un esempio completo.
Prova a pensare ad una tabella SQL con i seguenti oggetti: drone, visore 3D, AR glasses, 3D printer, 3D scanner, laser cutter, smartwatch, e-bike. Queste saranno le righe dalla tabella:
Drone
Visore 3D
AR glasses
3d printer
3d scanner
Laser cutter
Smartwatch
E-bike
Per ciascuno di essi inserisci marca (variabile testo da max 10 caratteri), modello (10), descrizione (20 caratteri max), quantità (un numero intero da 2 a 9), collocazione (inventa tu una sigla con 3 caratteri maiuscoli, un punto, tre cifre), prezzo (in Euro: è un numero decimale).
Queste saranno le colonne.
Per esempio, la riga relativa al drone potrebbe avere queste caratteristiche:
‘Drone’, ‘DJI’, ‘Mavic Air 2’, ‘Drone 4K’, 5, ‘OGG.001’, 1200
Questo è il codice SQL relativo alla generazione della tabella, che chiameremo “oggetti”:
CREATE TABLE oggetti ( id INT PRIMARY KEY AUTO_INCREMENT, oggetto VARCHAR(10), marca VARCHAR(10), modello VARCHAR(10), descrizione VARCHAR(10), quantita INT, collocazione VARCHAR(8), prezzo DECIMAL(8,2) );
È tutto chiaro? Anche in questo caso, hai trovato una cosa nuova: la clausola AUTO_INCREMENT. Il suo uso è intuitivo: assegna ad ogni oggetto un numero d’ordine (numero intero) che incrementa automaticamente: il primo oggetto del quale inserisci i dati avrà il numero 1, il secondo 2 e così via.
Abbiamo lasciato prezzi interi, anche se nella specifica avremmo potuto metterli decimali. Un numero intero è, comunque, anche un numero decimale privo di cifre dopo la virgola.
Ricorda che nella notazione anglosassone, spesso usata nel software, la parte decimale non usa la virgola ma il punto. Per scrivere 3,19 potresti trovare 3.19.
Sempre all’americana, abbiamo evitato le lettere accentate (la à in quantità): anche su questo punto può capitare che il sistema non le riconosca e, quindi, onde evitare guai peggiori, ci censuriamo fin dall’inizio.
Infine, se sei stato attento, avrai notato anche che la lunghezza di “descrizione” è di soli 10 caratteri: dovendoli scrivere in prima persona, meglio tagliar corto!
Passiamo, ora, all’inserimento dei valori. Abbiamo compilato una serie a nostro gusto, ma se hai fatto l’esercizio precedente avrai i tuoi valori e potrai usarli. Nella lista trovi oggetti più noti, come lo smartwatch e il drone, e oggetti meno noti come quelli che si usano in un fablab, come stampante 3D (3D printer), scanner 3D ed anche tagliatrice al laser (laser cutter). Abbiamo preferito indicare strumenti di grande rilevanza per la moderna cultura digitale, dai quali dipendono preparazione e possibilità di lavoro per chi oggi si affaccia sul mercato.
NB. Noterai, a seguire, dei valori inseriti tra virgolette; fai molta attenzione alle virgolette, perché ne esistono vari tipi che nella programmazione informatica non sono intercambiabili. Nel linguaggio scritto si usa preferibilmente la virgoletta doppia, come hai visto nel testo di questa guida. Nella programmazione spesso questa viene accettata, ma più spesso viene preferita la virgoletta singola. Esiste anche una terza virgoletta, il backtick: si scrive ` (`) ed è come un accento grave. In questa guida non viene usato.
Ed ecco una possibile lista dei valori per questo esempio.
INSERT INTO oggetti (oggetto, marca, modello, descrizione, quantità, collocazione, prezzo) VALUES ('Drone', 'DJI', 'Mavic Air 2', 'Drone 4K', 5, 'OGG.001', 1200), ('Visore 3D', 'Oculus', 'Quest 2', 'Visore VR', 3, 'OGG.002', 500), ('AR Glasses', 'Google', 'Glass Enterprise Edition 2', 'Occhiali AR', 2, 'OGG.003', 2500), ('3D Printer', 'Ultimaker', 'S5', 'Stampante 3D', 4, 'OGG.004', 2200), ('3D Scanner', 'Shining3D', 'EinScan Pro 2X', 'Scanner 3D', 3, 'OGG.005', 2800), ('Laser Cutter', 'Trotec', 'Speedy 360', 'Taglierina laser', 2, 'OGG.006', 3000), ('Smartwatch', 'Apple', 'Watch Series 7', 'Orologio intelligente', 7, 'OGG.007', 800), ('E-bike', 'Specialized', 'Turbo Vado 6.0', 'Bicicletta elettrica', 6, 'OGG.008', 2000);
Come noti, la sintassi è molto simile all’inglese corrente. Il codice spiega di inserire (INSERT) all’interno (INTO) della tabella di “oggetti” le specifiche di ciascuno di loro.
Visualizzare la tabella (come vedrai, con il comando SELECT), porta ad un output molto simile a quello che segue:
+—-+————–+———————+—————-+———-+——————+———–+
| id | marca | modello | descrizione | quantità | collocazione | prezzo |
+—-+————–+———————+—————-+———-+——————+———–+
| 1 | DJI | Phantom 4 | Drone | 2 | AA.001 | 1500.00 |
| 2 | Sony | HMZ-T3Q | Visore 3D | 4 | BB.002 | 2000.00 |
| 3 | Vuzix | Blade AR | AR glasses | 3 | CC.003 | 2500.00 |
| 4 | Ultimaker | S5 | 3D printer | 5 | DD.004 | 2800.00 |
| 5 | Artec3D | Eva | 3D scanner | 2 | EE.005 | 1800.00 |
| 6 | Epilog Laser | Zing 16 | Laser cutter | 7 | FF.006 | 3000.00 |
| 7 | Samsung | Galaxy Watch | Smartwatch | 6 | GG.007 | 1200.00 |
| 8 | Giant | Trance E+1 Pro | E-bike | 9 | HH.008 | 2900.00 |
+—-+—————–+——————-+—————+———-+—————-+————-+
La colonna id è una colonna auto-incrementale che viene generata automaticamente per ogni riga inserita nella tabella.
Può essere utile mostrare subito l’istruzione che visualizza questa tabella:
SELECT * FROM oggetti;
Si tratta di una frase semplice in inglese semplificato: scegli e visualizza (select) tutti gli oggetti (asterisco) dalla (from) tabella di nome “oggetti”.
Ma adesso basta teoria! Mettiamo, finalmente, le mani sul codice. Ma come?
Scopriamolo proseguendo la guida!