FOTO: www.grafica-web.it


Un database è un archivio multimediale di dati. Esso serve ad immagazzinare dati e, essendo digitale e non cartaceo, permette di accumulare dati più velocemente e in meno spazio rispetto ad un archivio cartaceo.
Esso viene gestito tramite un linguaggio d'interrogazione, chiamato SQL (Structured Query Language).
L'SQL è diviso in due sottobranchie: DDL (Data Definition Language), che permette la creazione delle tabelle e la loro modifica, e DML (Data Manipulation Language), che permette l'inserimento, la modifica e la selezione dei dati.

COMANDI DDL
I comandi necessari alla creazione della struttura dell'archivio sono:

CREATE DATABASE: Permette la creazionbe dell'archivio.
La sua sintassi è CREATE DATABASE nome_archivio_da_creare;

CREATE TABLE: Permette la creazione di una tabella all'interno dell'archivio in quel momento selezionato.
La sua sintassi è:
CREATE TABLE nome_tabella_da_creare
(Nome_campo_1 tipo_campo_1 eventuali_altri_attributi,
Nome_campo_2 tipo_campo_2 eventuali_altri_attributi,
...
Nome_campo_n tipo_campo_n eventuali_altri_attributi,
PRIMARY KEY (campo_chiave_primaria)
FOREIGN KEY campo_chiave_esterna REFERENCE TO tabella_collegata)


ALTER TABLE: Permette la modifica della struttura della tabella cui ci si riferisce. Si hanno 4 varianti:
Add, che permette l'aggiunta d'un campo;
Modify, che permette la modifica d'un campo;
Drop, che permette di cancellare un campo;
Rename, che permette di cambiare nome ad un campo.
La sua sintassi è: ALTER TABLE nome_tabella_da_modificare [Tipo_Modifica] Modifica

DROP DATABASE: Cancella il database selezionato.
La sua sintassi è: DROP DATABASE nome_database_da_cancellare

DROP TABLE: Cancella una specifica tabella dalla tabella selezionata.
La sua sintassi è: DROP TABLE nome_tabella_da_cancellare

CREATE INDEX: Permette la creazione di un indice, che facilita le ricerche, su un determinato campo.
La sua sintassi è: CREATE INDEX nome_capo_da_indicizzare

DROP INDEX: Elimina un indice già creato.
La sua sintassi è: DROP INDEX nome_campo_da_deindicizzare

COMANDI DML
I comandi necessari al popolamento delle tabelle e alla gestione dei dati sono:

INSERT INTO: Permette di inserire una riga di valori in una specifica tabella, in ordine con le colonne della stessa.
La sua sintassi è: INSERT INTO nome_tabella_da_popolare VALUES (valore_1, valore_2, valore_3, ..., valore_n)

DELETE: Permette la cancellazione di dati dove un ci sia un determinato valore in un campo.
La sua sintassi è: DELETE FROM nome_tabella WHERE campo=valore

UPDATE: Modifica i dati inseriti nelle tabelle.
La sua sintassi è: UPDATE nome_tabella_da_aggiornare SET campo=valore WHERE campo=valore

SELECT: Permette la selezione di dati da una o più tabelle.
La sua sintassi è: SELECT nome_campi_da_selezionare
FROM nome/i_tabella/e
WHERE eventuale_condizione
GROUP BY eventuale_raggruppamento

HAVING eventuale_condizione
ORDER BY campo_di_riferimento

In SELECT vanno indicati i campi da cui vanno estrapolati i dati da selezionare, ed anche le eventuali funzioni d'aggregazione che si vuole usare.
Nel FROM vanno indicate TUTTE le tabelle coinvolte nell'operaziobne di selezione, ANCHE quelle non indicate in SELECT.
WHERE, opzionale, permette d'indicare eventuali condizioni per l'estrapolazione dei dati.
GROUP BY serve ad indicare eventuali raggruppamenti, possibili solo usando in SELECT le funzioni d'aggregazione.
HAVING poermette di specificare eventuali condizioni nel funzionamento del GROUP BY; non è possibile, ovviamente, usarlo senza il GROUP BY.
ORDER BY, opzionale, permette di ordinare i risultati in ordine crescente (ASC, di solito impostato in automatico) o decrescente (DESC, da impostare manualmente). La parte di codice indicante il tipo d'ordinamento va scritta dopo aver indicato il campo di riferimento.

ALTRI COMANDI
GRANT: Permette di dare uno o più privilegi ad uno o più utenti, quando un database è gestito similmente ad un forum o ad una chat.
La sua sintassi è: GRANT privilegio/privilegi ON nome_tabella/e TO {nome/i_utente/i | PUBLIC}
I possibili privilegi sono:
ALTER: Permette l'utilizzo del comando ALTER;
DELETE: Permette l'utilizzo del comando DELETE;
INSERT: Permette l'utilizzo del comando INSERT;
UPDATE: Permette l'utilizzo del comando UPDATE;
INDEX: Permette l'utilizzo dei comandi CREATE INDEX e DROP INDEX;
ALL PRIVILEGES: Permette l'utilizzo di tutti i comandi finora citati. Il comando può essere eseguito o dall'amministratore dell'archivio (DBADM) o dal creatore della tabella su cui concedere il privilegio.

REVOKE: Permette di revocare uno o più privilegi precedentemente assegnati.
La sua sintassi è: REVOKE privilegio/privilegi ON nome/i_tabella/e FROM {nome/i_utente/i | PUBLIC}


NOTE AGGIUNTIVE
Nel corpo del comando SELECT, ad eccezione della sezione SELECT, il carattere jolly che sostituisce n caratteri (*) è scritto %.
Invece, e stavolta senza eccezioni, il carattere jolly che indica la sostituzione di UN SOLO carattere è indicato con _
<--INDIETRO