Laboratorio di Sistemi Informativi

Risultati Homework 1

A.A. 2010/2011

docente: Gianluca Amato


Testo del compito

Fornire i comandi SQL necessari a realizzare una tabella pitagorica. In particolare:

Risultati

Chi ha ottenuto un voto insufficiente può recuperare venendo a ricevimento.

StudentiGiudizioCommento
Altomare, Francescone, TerrenziInsuff.I comandi SQL non funzionano.
Altomare, Francescone, Terrenzi bisBuono
CandeloroOttimo
Capparella, TontodonatiOttimo
Cardone, StanisciaOttimo
CialfiOttimo
Cilli, Di Giovanni, PaglialungaBuonoTroppe tabelle... si possono riscrivere i comandi in modo che la tabella tre non serva.
D'Ambrosio, SappraconeOttimoSimile a Monachese, Salerno
D'Aveta, Di ChiroOttimo
De Luca S.Ottimo
De Luca F. (recupero)Buono
Iuras, PalermoBuonoTroppe tabelle... si può fare a meno della tabella pitagora2.
Marchesani, D'InceccoOttimo
MarianiSufficienteTroppi comandi SQL.. riempire manualmente la tabella numeri è quasi inevitabile, ma la tabella moltiplicazione andava riempita con un cross join, non con una sequenza di 101 insert.
Mazzotti, ScuttiOttimoSimile a Cardone, Staniscia
Monachese, SalernoOttimo
PignoliSufficienteTroppi comandi SQL.. riempire manualmente la tabella indice è quasi inevitabile, ma la tabella pitagora andava riempita con un cross join, non con una sequenza di 101 insert e update.
TaronnaBuonoTroppe tabelle... si può fare a meno della tabella provvisoria.

Soluzione

Ecco la mia soluzione:

CREATE TABLE t1 (i INT);
INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25),(26),(27),(28),(29),(30),(31),(32),(33),(34),(35),(36),(37),(38),(39),(40),(41),(42),(43),(44),(45),(46),(47),(48),(49),(50),(51),(52),(53),(54),(55),(56),(57),(58),(59),(60),(61),(62),(63),(64),(65),(66),(67),(68),(69),(70),(71),(72),(73),(74),(75),(76),(77),(78),(79),(80),(81),(82),(83),(84),(85),(86),(87),(88),(89),(90),(91),(92),(93),(94),(95),(96),(97),(98),(99),(100);
CREATE TABLE t2 (moltiplicatore INT, moltiplicando INT, prodotto INT);
INSERT INTO t2 (moltiplicatore, moltiplicando) SELECT * FROM t1, t1 as t2;
UPDATE t2 SET prodotto = moltiplicatore * moltiplicando;

In alternativa, le ultime due righe potevano essere sostituite da:

INSERT INTO t2 SELECT *, t1.i*t2.i FROM t1, t1 as t2;

Valid XHTML 1.0 Strict Valid CSS!