CREATE TABLE Dipartimento (
nome char(25) primary key,
indirizzo varchar(25) not null,
città varchar(20) not null
);

CREATE TABLE Impiegato (
matr int primary key,
nome char(25) not null,
cognome char(25) not null,
dipart char(25) not null,
ufficio int not null, 
stipendio int not null,
città varchar(20) not null,
foreign key (dipart) references Dipartimento(nome)
);

CREATE TABLE Supervisione (
impiegato int primary key,
capo int ,
foreign key (impiegato) references Impiegato(matr),
foreign key (capo) references Impiegato(matr)
);

insert into Dipartimento values ('Amministrazione', 'Via Tito Livio, 27', 'Milano'),
('Produzione', 'P.le Lavater, 3', 'Torino'),
('Distribuzione', 'Via Segre, 9', 'Roma'),
('Direzione', 'Via Tito Livio, 27', 'Milano'),
('Ricerca', 'Via Venosa, 6', 'Milano');

insert into Impiegato values (01,'Mario', 'Rossi', 'Amministrazione', 10, 45, 'Milano'),
(02, 'Carlo', 'Bianchi', 'Produzione', 20, 36, 'Torino'), 
(03, 'Giovanni', 'Verdi', 'Amministrazione', 20, 40, 'Roma'),
(04, 'Franco', 'Neri', 'Distribuzione', 16, 45, 'Napoli'),
(05, 'Carlo', 'Rossi', 'Direzione', 14, 80, 'Milano'),
(06, 'Lorenzo', 'Gialli', 'Direzione', 7, 73, 'Genova'),
(07, 'Paola', 'Rosati', 'Amministrazione', 75, 40, 'Venezia'),
(08, 'Marco', 'Franco', 'Produzione', 20, 46, 'Roma'),
(09, 'Paola', 'Franco', 'Amministrazione', 30, 40, 'Roma');

insert into Supervisione values (01,03),
(02, 03), 
(04, 05),
(06, 05),
(07, 09),
(08, 09);

create table persone 
(nome varchar(20),
età smallint unsigned,
reddito float unsigned);
insert into persone values ('Aldo', 35,15), ('Andrea', 27, 21), ('Maria', null, 42);