Sommario della Sintassi - Solo per veri masochisti

Qui potete trovare le forme generalizzate dei comandi discussi in questi appunti, più alcuni aggiuntivi che possono risultare comodi e la cui spiegazione e' data a latere. ATTENZIONE!!! non e' detto che tutti questi comandi siano esattamente in questa forma, controllate sul vostro sistema per avere la certezza del loro funzionamento e della loro disponibilità:

ALTER TABLE <Nome Tabella> ADD|DROP|MODIFY (Specifiche Colonna[e]...vedere Create Table);--vi permette di aggiungere o cancellare una o più colonne da una tabella, o di cambiare i parametri di una colonna esistente (tipi di dato ecc..); questo comando e' utilizzato spesso anche per cambiare le specifiche fisiche di una tabella (dove e come viene salvata ecc.), ma in questo caso dipende direttamente dal DBMS che state usando, quindi vi rimando ai manuali del vostro database. Oltre che con questo comando le specifiche fisiche della tabella possono venire generalmente date all' interno del comando Create Table quando una tabella viene creata per la prima volta.

Begin Transaction;inizia a considerare i comandi seguenti come facenti parte di un' unico blocco (transazione) che vanno eseguiti in un blocco unico al raggiungimento di una istruzione di commit o scartati tutti insieme al raggiungimento di una istruzione rollback

COMMIT; effettua i cambiamenti fatti sul database dall' ultima istruzione Begin Transaction (in alcuni DBMS dall' ultima commit) e li rende permanenti -- questo blocco di istruzioni viene definito una Transazione

CREATE [UNIQUE] INDEX<Nome Indice>
ON <Nome Tabella> (<Lista Colonne>); -- UNIQUE e' opzionale e va usato senza parentesi quadre.

CREATE TABLE<Nome Tabella>
(<Nome Colonna> <Tipo di Dato> [(<Dimensione>)] <Limitazioni sulle colonne>,
...altre colonne[PRIMARY KEY (colonna, colonna,...)]); (sintassi valida anche per ALTER TABLE)
--dove Dimensione viene usato solo su alcuni tipi di dato, e le limitazioni includono quelle qui sotto riportate (controllate automaticamente dal dbms. una tentata violazione causa la generazione di un errore):

1. NULL o NOT NULL (vedi sotto)

2. UNIQUE obbliga a non avere due valori uguali all' interno della colonna

3. PRIMARY KEY dice al database che questa colonna e' la chiave primaria della tabella (utilizzato solo se la chiave primaria e' composta da una sola colonna, altrimenti una clausola PRIMARY KEY (colonna, colonna, ...) comparirà dopo l'ultima definizione di colonna.

4. CHECK permette ad una condizione di essere testata quando i dati vengono inseriti o aggiornati in una determinata colonna; per esempio, CHECK (Prezzo >= 0) impone al sistema di controllare che il prezzo sia maggiore o uguale a zero prima di accettare il valore; a volte viene implementato con l’istruzione CONSTRAINT.

5. DEFAULT inserisce il valore nel database per una determinata colonna se una riga viene inserita senza un valore per la colonna stessa; per esempio, BENEFITS INTEGER DEFAULT = 10000

6. FOREIGN KEY funziona esattamente come l’istruzione Primary Key, ma è seguita da: REFERENCES <Nome Tabella> (<Nome Colonna>), che riferisce la chiave riferita ad una chiave primaria.

CREATE VIEW<Nome Tabella> AS <Query>;

DELETEFROM <Nome Tabella> WHERE <Condizione>;

INSERTINTO <Nome Tabella> [(<Lista Colonne>)]
VALUES (<Lista Valori>);

ROLLBACK;-- Annulla le modifiche effettuare al database che sono state effettuate dopo l' ultimo comando COMMIT. ATTENZIONE! vedere il funzionamento delle istruzioni COMMIT, ROLLBACK e BEGIN TRANSACTION sui propri RDBMS particolari in quanto il funzionamento di tali comandi varia moltissimo da un sistema all' altro

SELECT [DISTINCT|ALL] <Lista Colonne, Funzioni, Costanti, ecc.>
FROM <Lista di tabelle o di viste>
[WHERE <Condizione/i>]
[GROUP BY <raggruppamento colonna/e>]
[HAVING <condizione>]
[ORDER BY <colonna/e di ordinamento> [ASC|DESC]]; --dove ASC|DESC permettono di fare in modo che l' ordinamento venga effettuato in ordine ascendente (ASC) o discendente (DESC)

UPDATE<Nome Tabella>
SET <Nome Colonna> = <Valore>
[WHERE <Condizione>]; -- se la clausola Where non e' specificata vengono aggiornate tutte le righe come specificate nella clausola SET