Esercitazione sui comandi DDL (Data
Definition Language) CREATE/ALTER/DROP
CREATE
DATABASE
Il database di riferimento è il database scuola, creare una nuova istanza di database sul server
>Create database scuola;
e caricare i dati
CREATE
TABLE
VINCOLI
INTRA RELAZIONALI
Questi vincoli definiscono l’input dei dati di una tabella; se i dati soddisfano tali vincoli vengono accettati altrimenti no.
Descriviamone alcuni:
· NOT NULL l’attributo non potrà essere lasciato vuoto;
· UNIQUE indica l’unicità del valore dell’attributo
· PRIMARY KEY indica uno o più campi che identificano in modo univoco un’istanza dell’entità(riga della tabella)
CREATE
TABLE
Creare una tabella studenti nel database scuola per rappresentare gli studenti immatricolati con la seguente struttura:
alunno(matricola, nome,
cognome, dataIscrizione)
Rappresentare la matricola tramite una stringa a lunghezza fissa di 6 caratteri, Nome e Cognome tramite stringhe a lunghezza variabile (lunghezza massima 20) e DataIscrizione come una data.
Imporre il vincolo di chiave primaria sull’attributo Matricola e imporre il vincolo di unicità sugli attributi Nome e Cognome (sulla coppia).
CREATE
TABLE
Creare una tabella Materia nel database scuola per rappresentare le materie con la seguente struttura:
materia(idMateria, disciplina, descrizione)
Imporre idMateria è un numero intero con vincolo di chiave primaria (auto_Increment); disciplina e descrizione sono stringhe a lunghezza variabile (lunghezza massima 50); l’ attributo disciplina non può essere vuoto.
VINCOLI
INTRA RELAZIONALI -FK
Permettono di creare un legame permanente tra diverse tabelle. Per relazionare la tavella materia e quella voto devo inserire un vincolo intra relazionale comunemente chiamato foreign key.
Nella tabella voto inserisco la pk di materia cioè idMateria; In questo modo tutte le volte che inserirò un voto dovrà esistere un record nella tabella materia con l’idMateria specificato. Cioè corrispondenza tra voto e materia.
Compo chiave esterna
CONSTRAINT nome vincolo REFERENCES Tabella2( campo chiave primaria)
Voto.idMatricola INT NOT NULL
CONSTRAINT m REFERENCES materia(idMateria)
CREATE
TABLE
Creare una tabella Materia nel database scuola per rappresentare le materie con la seguente struttura:
voto(idVoto, data, idMateria, idAlunno, voto)
Imporre idVoto è un numero intero con vincolo di chiave primaria (auto_Increment); data rappresentala come una data e non può essere vuota.
descrizione sono stringhe a lunghezza variabile (lunghezza massima 50); l’attributo disciplina non può essere vuoto.
EFFETTO
DL VINCOLO: foreign key
Step by step
1. Inserisci un voto
Riporta l’errore:
2. Inserisci due materie ( italiano e matematica)
3. Inserisci un voto
ALTER
TABLE -DROP
La struttura di una tabella può essere modificata tramite l’istruzione ALTER
• Aggiungiamo la colonna classe alla tabella alunno
>ALTER TABLE alunno ADD
COLUMN classe INT;
• Eliminiamo la colonna classe dalla tabella alunno
>ALTER TABLE alunno DROP
COLUMN classe;
• Rinominare una tabella
>ALTER TABLE alunno RENAME
studente;
• Per cancellare una tabella o un database
>DROP TABLE alunno;
>DROP DATABASE scuola;