Anche se in rete se ne trovano innumerevoli, mi sembrava carino, anche
per provare le potenzialita' dei Wiki, scrivere un piccolo manuale per
la sintassi SQL, ci sarà di grande aiuto durante lo svolgimento
dell'intero corso. Ricordo che la stesura di un Wiki fa pienamente
parte dell'attivita' didattica, quindi lavori fatti bene saranno
valutati.
Manuale Sintassi SQL
StrutturaIl linguaggio SQL si divide in 3 sottoinsiemi:
- DDL: (data definition language) comprende tutte quelle istruzioni che consentono di creare/cancellare un database e di modificarne la struttura.
- DML: (data manipulation language) comprende tutte le istruzioni che permettono l'inserimento, la cancellazzione e l'aggiornamento dei dati.
- DCL: (data control language) comprende tutte le istruzioni che permettono di gestire gli utenti i permessi.
- QL: (query language) comprende tutte le istruzioni che permettono di interrogare il database
Istruzioni DDL sui Database
Create Database
Il comando CREATE DATABASE permette di creare un nuovo database, al quale sarà possibile aggiungere tabelle e altri tipi di oggetti.
Sintassi:
CREATE DATABASE nome_dbDrop Database
è possibile utilizzare la clausola IF NOT EXISTS in modo da creare
il db solo se non esiste e senza riportare alcun errore. In opzione è
possibile specificare il set di caratteri supportato nel database.
Il comando DROP DATABASE serve a cancellare un database.
Sintassi:
DROP DATABASE nome_db
Alter Database
Grazie a questo comando si ha la possibilità di andare a
modificare un database esistente.
Sintassi:
Alter DATABASE nome_db
Tabelle
Create table
Questo comando consente di creare una tabella, il nome può essereAccanto a ogniuno degli attributi possono essere inseriti i seguenti vincoli intrarelazionali:
indifferentemente maiuscolo o minuscolo a patto che, se contiene anche
numeri, il primo carattere sia una lettera.
Sintassi:
CREATE TABLE nome_table(
nome_colonna1 tipo di dato (N° caratteri),
nome_colonna2 tipo di dato (),
nome_colonna3 tipo di dato (),
nome_colonnaN tipo di dato (), );
- Not Null: Questo vincolo impedisce che il valore dell'attributo sia nullo, obbligando quindi a specificarne uno, tipicamente lo si fa in fase di inserimento.
- Unique: Cn questo vincolo si impone ai valori di un attributo(o un insieme di attributi) di una tabella di essere praticamente una chiava unica in tutta la tabella. Questo discorso nn vale per il valore nullo in quanto si assume che tutti i valori nulli siano differenti l'uno dall'altro.
- Primary Key: Nella definizione di una tabella è necessario specificare per ogni relazione la chiave primaria, il più importante tra gli identificatori della relazione. Sql permette così di specificare il vincolo primary key una sola volta per ogni tabella. Il vincolo primary key può essere definito direttamente su un singolo attributo, oppure essere definito elencando più attributi che costituiscono l'identificatore.
Alter table
Cn ALTER TABLE si ha la possibilità di andare a modificare la struttura stessa della tabella con 4 operatori fondamentali:- ADD: Permette l'inserimento di un colonna in una tabella già esistente
ALTER TABLE nome_tabellaSintassi ADD - aggiunta di una chiave primaria:
ADD COLUMN nome_colonna_nuova tipo_di_dato ();
ALTER TABLE nome_tabellaSintassi ADD - aggiunta di un indice:
ADD CONSTRAINT nome_tabella_pk
PRIMARY KEY (nome_colonna che funge da chiave primaria);
ALTER TABLE nome_tabellaSintassi ADD - aggiunta di una chiave esterna:
ADD CONSTRAINT nome_tabella_pk
ADD INDEX nome_indice (nome_colonna)
ALTER TABLE nome_tabella_figlia
ADD CONSTRAINT nome_tabella_figlia_fk
FOREIGN KEY (nome_colonna che funge da chiave esterna)
REFERENCES nome_tabella_padre (nome_colonna che funge da chiave primaria sulla tabella padre);
- MODIFY: Consente di modificare il tipo di un dato in tabella
ALTER TABLE nome_tabellaSintassi MODIFY - Modifica della constraint di una colonna:
MODIFY nome_colonna tipo di dato nuovo; (Non sono sicuro)
ALTER TABLE nome_tabella
MODIFY nome_colonna constraint nuova;
- DROP: consente di eliminare la constraint dalla colonna.
ALTER TABLE nome_tabella
DROP PRIMARY KEY;
Sintassi DROP - Cancellazione di una colonna:
ALTER TABLE nome_tabella
DROP COLUMN nome_colonna;
- CHANGE: consente di cambiare una caratteristica di una colonna
ALTER TABLE nome_tabella
CHANGE COLUMN nome_colonna nuovo_nome_colonna
Drop Table
Il comando DROP TABLE consente di distruggere fisicamente la tabella cancellandola dal database.
Si ricorda che come tutte le operazionei di tipo DDL è irreversibile per cui una volta effettuata si perderanno tutti i dati contenuti nella tabella.
Sintassi:
DROP TABLE nome_tabella CASCADE/RESTRICT

