Laboratorio del 6-10-2022

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;