Definire una tabella, Chiavi primarie ed esterne

:welcomeani:

Le tabelle vengono definite con il comando "CREATE TABLE", seguito dal nome della tabella e dall'elenco degli attributi. Per ogni attributo occorre specificare il nome e il tipo di dato. Gli attributi possono essere qualificati mediante diverse clausole con le quali è possibile definire: la chiave primaria, le chiavi esterne, l'obbligatorietà e il valore di default di un campo.

ES.

Codice: Seleziona tutto

CREATE TABLE Impiegati
	(ID			smallint primary key,
	 Cognome		char (30) not null, 
	 Nome		char (20) not null,
	 Residenza		char (20) default '*** Manca Residenza',
	 Stipendio		decimal (9,2) , 	
	 Dipartimento	char (5) references Dipartimento (Codice));
La clausola DEFAULT definisce il valore da attribuire al campo se, al momento della creazione del record che lo contiene, non gli viene assegnato alcun valore.

La clausola REFENCES indica che l'attributo Dipartimento è chiave esterna e definisce un vincolo con la tabella Dipartimenti.

Una clausola molto utile è UNIQUE che vieta la presenza di valori duplicati in una colonna o in un insieme di colonne.

ES.

Codice: Seleziona tutto

UNIQUE (Cognome, Nome, Dipartimento)
E' possibile inoltre:

- Dichiarare una chiave esterna in una riga (Foreign Key)
- Compiere azioni dopo la cancellazione di una riga (On Delete)
- Compiere azioni dopo l'aggiornamento di un dato (On Update)

ES.

Codice: Seleziona tutto

CREATE TABLE Dipartimenti
	(codice		char (5) primary key,
	 Descrizione 	char (30) not null, 
	 Sede 		char (20) not null,
	 Manager   	smallint,
	 Unique (descrizione), 	
	 Foreign Key (Manager)  references Impiegati (ID)
	 	On Delete	set null
	 	On Update cascade );
L'attributo cascade fa si che l'aggiornamento si riflette a catena sui valori dei Manager

La struttura di una tabella può essere modificata attraverso il comando ALTER TABLE e per poi aggiungere una colonna (ADD) o togliere una colonna (DROP).

ES.

Codice: Seleziona tutto

ALTER TABLE 	impiegati
ADD Data di nascita,
DROP Residenza;
Per eliminare una tabella , utilizzare il comando DROP TABLE seguito dal nome della tabella da cancellare.
:thanks: