----------------------------------------------------------------------------
--        C R E A Z I O N E       D E L       D A T A      B A S E        --
----------------------------------------------------------------------------

DROP TABLE verifiche;
DROP TABLE studenti;
DROP TABLE materie;
DROP TABLE insegnanti;


--                    sigla 'st'
CREATE TABLE studenti
(
	st_matricola 	INTEGER PRIMARY KEY,
	st_cognome   	VARCHAR(30),
	st_nome	  		VARCHAR(30),
	st_sesso  		CHAR(1) CHECK (st_sesso IN ('M','F')),
	st_nascita		DATE,
    st_peso			INTEGER,
	st_altezza		INTEGER
);

--                   sigla 'in'
CREATE TABLE insegnanti
(
	in_codice	INTEGER PRIMARY KEY,
	in_cognome  VARCHAR(30),
	in_nome	  	VARCHAR(30),
	in_sesso	CHAR CHECK (in_sesso IN ('M','F')),
	in_nascita	DATE	
);

--                   sigla 'mt'
CREATE TABLE materie
(
	mt_sigla 	CHAR(3) PRIMARY KEY,
	mt_descr  	VARCHAR(30),
   	mt_ore      INTEGER,
	mt_docente	INTEGER REFERENCES insegnanti(in_codice)
);


--                  Sigla 'vr'
CREATE TABLE verifiche
(
	vr_materia    CHAR(3) REFERENCES materie(mt_sigla),
	vr_studente   INTEGER REFERENCES studenti(st_matricola),
	vr_data       DATE,
	vr_voto	      INTEGER   CHECK (vr_voto BETWEEN 1 AND 10),
	PRIMARY KEY (vr_materia, vr_studente, vr_data)
);