Il DML (Data Manipulation Language) è l’equivalente dell’acronimo italiano “linguaggio per la manipolazione dei dati”. Si tratta dell’insieme dei comandi SQL che permettono di manipolare i record all’interno delle strutture definite dal DDL (Data Definition Language).
Un record è l’insieme di dati che descrive un singolo oggetto all’interno della tabella, un record di tipo Persona è definito come la composizione di dati che descriver una ed una sola persona all’interno della tabela.
Le istruzioni che caratterizzano questa porzione di linguaggio sono l’inserimento, la modifica e l’eliminazione di un record. Si tratta di un sottoinsieme dell’acronimo CRUD:
- C – Creation: Inserimento di un nuovo record all’interno di una tabella;
- R – Read: Ricerca e consultazione di record all’interno della tabella;
- U – Update: Modifica di un record preesistente all’interno della tabella;
- D – Delete: Eliminazione di un record preesistente all’interno della tabella;
a cui viene sottratta la consultazione e la ricerca dei dati che sarà peculiarità di un altro insieme di istruzioni del linguaggio SQL chiamato QL (Query Language).
1. Inserimento
L’inserimento di un record può essere effettuato tramite diverse metodologie derivanti dalla stessa radice.
Prendiamo in esempio la tabella definita nel precedente esempio:
--------------------------------------------------
| personaID | nome | cognome | num_tel | cod_fis |
--------------------------------------------------
| | | | | |
--------------------------------------------------
L’inserimento di un record può essere effettuato tramite INSERT INTO <nome_tabella> (<elenco_colonne>) VALUE (<elenco_valori>);
INSERT INTO Persona ('nome', 'cognome', 'num_tel', 'cod_fis')
VALUE ('Giovanni', 'Pace', '+39 123456', 'PCAGNN');
Le caratteristiche che si evincono dallo statement appena illustrato sono:
- Sto popolando la tabella Persona solo nei campi nome, cognome, num_tel e cod_fis ignorando esplicitamente personaID poiché essendo stato dichiarato come valore AUTO_INCREMENT verrà inserito automaticamente dal sistema.
- Ogni nome di colonna è racchiuso da un apice come ad esempio ‘nome’. La chiusura tra apici non è necessaria quando si hanno nomi di colonne composti da una singola parola. Se ad esempio ci fosse una colonna chiamata ‘codice fiscale’ allora gli apici sarebbero obbligatori pena un errore nell’esecuzione dello statement.
- Ogni valore di tipo VARCHAR è stato contornato dagli apici poiché corrispondono ad un contenitore di sequenze di caratteri ASCII da inserire all’interno del Database. Se all’interno della tabella fosse presente un campo numerico (di tipo INTEGER, FLOAT, ecc…) gli apici non sarebbero necessari.
Il risultato della query appena inserita sarà:
------------------------------------------------------------
| personaID | nome | cognome | num_tel | cod_fis |
------------------------------------------------------------
| 1 | Giovanni | Pace | +39 123456 | PCAGNN |
------------------------------------------------------------