Comandi Base SQL
Comandi Base SQL
Data Definition Language (DDL) statements are used to define the database structure or schema.
Some examples:
DML
Data Manipulation Language (DML) statements are used for managing data within schema objects.
Some examples:
TCL
Transaction Control (TCL) statements are used to manage the changes made by DML statements. It
allows statements to be grouped together into logical transactions.
DCL
Data Control Language (DCL) statements. Some examples:
INSERT
SELECT
DELETE
UPDATE
INSERT
Il comando di INSERT serve per inserire nuovi record (righe di dati) in tabella.
Supponiamo di voler inserire nella nostra tabella di anagrafica due record; per farlo
scriveremo:
INSERT
INTO Anagrafica
VALUES(‘Mario’, ‘Rossi’, 20000, ‘Impiegato’);
INSERT
INTO Anagrafica
VALUES(‘Carlo’, ‘Verdi, 35000, ‘Quadro’);
Il comando INSERT, così come scritto sopra, può essere utilizzato solo quando nella parte
VALUES vengono forniti valori per tutte le colonne della tabella.
Nel caso in cui, invece, si vogliono inserire solo i dati di alcune colonne (rispettando gli
eventuali vincoli di obbligatorietà della tabella) bisognerà utilizzare la sintassi che
possiamo definire completa. Essa, oltre alla parte vista precedentemente, prevede anche
l’'elenco dei campi della tabella per cui saranno forniti i valori nella rispettiva parte
VALUES:
INSERT
INTO Anagrafica
(Nome, Cognome, Stipendio)
VALUES(‘Lucia’, ‘Bianchi', 20000);
SELECT
L'’istruzione di SELECT viene, invece, utilizzata per interrogare le tabelle:
SELECT *
FROM Anagrafica;
Con la sintassi appena vista otterremo in risultato tutte le colonne per ogni record
appartenente alla nostra tabella.
Per ottenere solo specifiche colonne, invece, scriveremo:
DELETE e UPDATE
L'’istruzione DELETE viene utilizzata per eliminare uno o più record dalla tabella. Vediamo
un esempio:
DELETE
FROM Anagrafica
WHERE Nome = ‘Carlo’;
Mentre l'istruzione UPDATE viene utilizzata per aggiornare uno o più record presente in
tabella:
UPDATE Anagrafica
SET Ruolo = ‘Impiegato’
WHERE Cognome = ‘Bianchi’
AND Nome = ‘Lucia’;
Eccezion fatta per la SELECT, che non effettua alcuna modifica in tabella, dopo ognuna
delle altre istruzioni elencate in questo capitolo, per far si che le modifiche vengano
effettivamente salvate sulla tabella, bisogna effettuare la COMMIT.
Tale istruzione, ed altre di questo tipo, saranno trattate in maniera approfondita nel
capitolo seguente.
I comandi DDL
Lo Structured Query Language - di SQL è l'acronimo - è un linguaggio utilizzato per
l'’interrogazione e la gestione di basi di dati. I comandi SQL si distinguono principalmente
in tre categorie:
Oggetto di questo capitolo sono i comandi DDL, cioè i comandi del tipo:
Create
Alter
Drop
CREATE
Supponiamo di voler costruire una tabella di anagrafica degli impiegati di un'’azienda.
Volendo farlo senza ricorrere alla funzionalità automatica vista in precedenza, dovremo
utilizzare una query del genere:
ALTER
Supponiamo ora di voler modificare la nostra tabella inserendo la colonna Ruolo. Per farlo
scriveremo:
Otterremo così che la nostra tabella sarà costituita da quattro colonne (Nome, Cognome,
Stipendio e Ruolo) dove le prime due e la quarta colonna saranno di tipo alfanumerico con
lunghezza fino a 80 byte mentre la terza colonna sarà di tipo numerico.
DROP
Per finire vediamo come procedere alla cancellazione della nostra tabella di prova:
Da notare che Oracle committa implicitamente la transazione corrente prima e dopo ogni
comando DDL. Questo comporta che non è possibile effettuare il Rollback ma bisogna
effettuare le operazioni “inverse”. Questi concetti sono solo anticipati, verranno trattati
approfonditamente in un successivo capitolo.
I comandi TCL
Oggetto di questo capitolo sono invece le istruzioni DCL (Transaction Language), ovvero le
istruzioni che agiscono sulla transazione. Esse sono del tipo:
COMMIT
ROLLBACK
SAVEPOINT
In Oracle, per transazione si intende una serie di istruzioni SQL che vengono trattate come
se fossero una singola unità.
Come accennato nel capitolo precedente, Oracle non consolida, ovvero non rende
permanenti le modifiche apportate dalle istruzioni di Data Manipulation Language (DML)
fino a quando non viene eseguita una istruzione di COMMIT.
In poche parole, quindi, è con la COMMIT che le modifiche effettuate in una transazione
diventano permanenti.
La ROLLBACK, invece, effettua l'’operazione opposta a quella della COMMIT: essa infatti
non fa altro che riportare lo stato del database all’'ultima COMMIT eseguita, annullando, in
sostanza, tutte le operazioni effettuate dopo quel momento.
INSERT
INTO Anagrafica
VALUES (‘Carlo’,’Neri’,35000,’Quadro’);
SAVEPOINT sp1;
INSERT
INTO Anagrafica
VALUES (‘Maria’,’Viola’,35000,’Quadro’);
SAVEPOINT sp2;
INSERT
INTO Anagrafica
VALUES (‘Marco’,’Marrone’,25000,’Impiegato’);
ROLLBACK TO sp1;
avremmo:
Se invece scrivessimo:
ROLLBACK TO sp2;
avremmo:
Se invece scrivessimo:
ROLLBACK;
Se invece scrivessimo:
COMMIT;