Help with How to wiki (new window)
 

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

Struttura


Il 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_db

è 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.
Drop 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ò essere
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 (), );
Accanto a ogniuno degli attributi possono essere inseriti i seguenti vincoli intrarelazionali:
  • 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
Sintassi ADD - aggiunta di una colonna:
ALTER TABLE nome_tabella
ADD COLUMN nome_colonna_nuova tipo_di_dato ();
Sintassi ADD - aggiunta di una chiave primaria:
ALTER TABLE nome_tabella 
ADD CONSTRAINT nome_tabella_pk
PRIMARY KEY (nome_colonna che funge da chiave primaria);
Sintassi ADD - aggiunta di un indice:
ALTER TABLE nome_tabella 
ADD CONSTRAINT nome_tabella_pk
ADD INDEX nome_indice (nome_colonna)
Sintassi ADD - aggiunta di una chiave esterna:
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
Sintassi MODIFY - Modifica del tipo di dato di una colonna:
ALTER TABLE nome_tabella 
MODIFY nome_colonna tipo di dato nuovo; (Non sono sicuro)
Sintassi MODIFY - Modifica della constraint di una colonna:
ALTER TABLE nome_tabella 
MODIFY nome_colonna constraint nuova;
  • DROP: consente di eliminare la constraint dalla colonna.
Sintassi  DROP - Cancellazzione della primary key:
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
Sintassi CHANGE - Modifica del nome 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