Il DDL è il linguaggio usato per descrivere la struttura del Data Base. Con questo linguaggio possiamo quindi creare nuovi DB, e all'interno di questi creare nuove tabelle e modificarne la struttura.
L'istruzione SQL per creare un nuovo DB è:
CREATE DATABASE nome;
Per creare una tabella, bisogna aver selezionato un Data Base tra quelli disponibili,
all'interno del quale la tabella verrà, creata. L'istruzione è:
CREATE TABLE nome-tabella (nome-dato tipo(dimensione), ....);
Tra le parentesi compare un elenco delle colonne della tabella: per ognuna bisogna specificare il nome,
il tipo di dato e la lunghezza massima prevista.
Es: CREATE TABLE alunni (
cognome CHAR(25),
nome CHAR(20),
classe CHAR(3) );
Nella creazione della tabella è possibile aggiungere delle clausole per creare degli indici (chiavi).
Anzi, la creazione della chiave primaria è, da considerarsi obbligatoria, anche se MySQL consente anche di creare tabelle senza indici,
che possono essere aggiunti successivamente.
Sono possibili le seguenti clausole:
Es: CREATE TABLE prova (
id TINYINT UNSIGNED AUTO_INCREMENT,
chiave_unica CHAR (20),
chiave CHAR (50),
PRIMARY KEY(id),
UNIQUE(chiave_unica),
INDEX(chiave) ) ;
N.B.: Le chiavi esterne non esistono nelle tabelle di tipo MySql, ma solo in quelle di tipo InnoDB.
Per dichiarare una chiave esterna si usa la clausola:
FOREIGN KEY (colonna/e)
REFERENCES nome_tabella (colonna/e)
ON DELETE opzione
ON UPDATE opzione
dove l'opzione indica il vincolo di integrità referenziale e può essere scelta tra le seguenti:
Modificare la struttura della tabella può voler dire aggiungere altre colonne,
o degli indici (chiavi). L'istruzione da usare è:
ALTER TABLE nome ADD COLUMN nome-dato tipo(dimensione);
N.B.: si può specificare alla fine la clausola opzionale: FIRST oppure AFTER nome-dato,
in modo da posizionare la colonna dove si desidera
ALTER TABLE nome ADD INDEX nome-indice (nome-dato, ...);
N.B.: se la chiave è composta, compare più di un nome-dato.
E' possibile anche eliminare colonne o indici:
ALTER TABLE nome DROP COLUMN nome-dato;
ALTER TABLE nome DROP INDEX nome-indice;
L'istruzione per aggiungere una nuova istanza dell'entità è:
INSERT INTO tabella (nome-dato, ...) VALUES ('valore', ...);
Per ogni dato specificato, ci deve essere il valore corrispondente.
Non è obbligatorio inserire tutte le colonne, solo quelle per cui è stata
specificata la clausola NOT NULL
L'istruzione di cancellazione è la seguente:
DELETE FROM tabella WHERE chiave='valore';
La clausola WHERE specifica quale riga deve essere cancellata. Specificando il valore
di una chiave univoca si cancella solo una riga, ma con una condizione più generica
si possono cancellare contemporaneamente anche più righe, tutte quelle che
soddisfano la condizione.
ATTENZIONE: se la clausola WHERE non è specificata, viene cancellato il contenuto
dell'intera tabella.
L'istruzone per aggiornare una o più colonne della tabella è:
UPDATE tabella SET nome-dato='valore', ... WHERE chiave='valore';
E' possibile modificare contemporaneamente più di una colonna (al posto dei ...)
Anche qui la clausola WHERE indica quale riga o quali righe si desidera modificare,
se la clausola WHERE non è specificata, le modifiche vengono applicate a tutte le righe
della tabella
![]() |
![]() |