 |
www.vincenzomanzoni.com Homepage personale e blog di Vincenzo Manzoni
|
Precedente :: Successivo |
Autore |
Messaggio |
abaddon Utente adulto


Registrato: 05/04/04 16:32 Messaggi: 2033
|
Inviato: Gio Dic 16, 2004 5:25 pm Oggetto: [SISINFO2]ultima esercitazione |
|
|
Ho provato a rifare gli esercizi che ci ha dato oggi.... ma su alcune cose sono dubbioso...
provate a darci un'occhiata va..
Es. 3
Citazione: |
Struttura DB:
Produzione_mi=∂(TipoParte=�keyword�) produzione
Produzione_to=∂(TipoParte=�screen�) produzione
Produzione_roma=∂(TipoParte=�CPU�) produzione
Produzione_na=∂(TipoParte=�cable�) produzione
Prelievo_mi=prelievo ∞ (numeroserie=numeroserie) Produzione_mi
Prelievo_to=prelievo ∞ (numeroserie=numeroserie) Produzione_to
Prelievo_roma=prelievo ∞ (numeroserie=numeroserie) Produzione_roma
Prelievo_na=prelievo ∞ (numeroserie=numeroserie) Produzione_na
Cliente_mi=∂(Citta=�milano�) Cliente
Cliente_to=∂(Citta=�torino�) Cliente
Cliente_roma=∂(Citta=�roma�) Cliente
Venditore_mi=∂(citta=�milano�) Venditore
Venditore_to=∂(citta=�torino�) Venditore
Venditore_roma=∂(citta=�roma� OR citta=�napoli�) Venditore
(l'ultima riga non ne son certo)
|
Es. 4
Citazione: |
1)
SELECT qta FROM Produzione_mi WHERE Numeroserie=�77y6878�
IF EMPTY
SELECT qta FROM Produzione_mi UNION SELECT qta FROM Produzione_to UNION SELECT qta FROM Produzione_roma UNION SELECT qta FROM Produzione_na WHERE Numeroserie=�77y6878�
2)
SELECT cliente FROM prelievo_mi UNION SELECT cliente FROM prelievo_to UNION SELECT cliente FROM prelievo_roma UNION SELECT cliente FROM prelievo_na WHERE venditore=�bianchi�
3)
SELECT macchina FROM produzione_mi INNER JOIN prelievo_mi ON produzione_mi.numeroserie=prelievo_mi.numeroserie WHERE prelievo.venditore=rossi.
4)
UPDATE venditore_mi SET citta='roma', indirizzo='viale trastevere 5' WHERE citta='milano' AND indirizzo='via Po 4'
CREATE TRIGGER mod_db ON venditore_mi
BEFORE UPDATE
IF((SELECT citta FROM INSERTED)<>'milano' AND (SELECT citta FROM INSERTED)='roma')
BEGIN
INSERT INTO venditore_roma VALUES ((SELECT * FROM INSERTED))
DELETE FROM venditore_mi WHERE nome=(SELECT nome FROM DELETED)
END
IF((SELECT citta FROM INSERTED)<>'milano' AND (SELECT citta FROM INSERTED)='torino')
BEGIN
INSERT INTO venditore_to VALUES ((SELECT * FROM INSERTED))
DELETE FROM venditore_mi WHERE nome=(SELECT nome FROM DELETED)
END
qua ho fatto un trigger... altrimenti come si fa a spostare un dato da un db ad un altro?
|
il 5 prossimamente... devo essere in forze per quello  |
|
Top |
|
 |
vinz Amministratore


Registrato: 12/12/03 12:56 Messaggi: 6648 Residenza: San Pellegrino Terme (Bergamo)
|
Inviato: Gio Dic 16, 2004 6:34 pm Oggetto: Re: [SISINFO2]ultima esercitazione |
|
|
abaddon ha scritto: | Ho provato a rifare gli esercizi che ci ha dato oggi.... ma su alcune cose sono dubbioso...
provate a darci un'occhiata va.. |
Bravo adabbon!
Prometto, prometto che appena passato domani (esame di Automazione) ci guardo bene, _________________ Let the future tell the truth and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I really worked, is mine.
Nikola Tesla |
|
Top |
|
 |
abaddon Utente adulto


Registrato: 05/04/04 16:32 Messaggi: 2033
|
Inviato: Ven Dic 17, 2004 1:32 pm Oggetto: |
|
|
ecco le bombe sull'ultimo esercizio a oggetti...
Citazione: |
A)
Create type ciclista (
nome varchar(30),
cognome varchar(30),
citta varchar(30),
squadra ref(squadra))
)
not final
ref is system generated
create type squadra(
nome varchar(30),
sede varchar(30)
)
not final
ref from nome
create type tappa(
inizio varchar(30),
fine varchar(30),
vincitore ref(ciclista),
capo_classifica ref(ciclista),
piazzati ciclista array[3]
)
not final
ref is system generated
create table squadra of squadra
(ref is nome derived)
create table ciclista of ciclista
(ref is id_ciclista system generated)
create table tappa of tappa
(ref is id_tappa system generated)
1)select fine FROM tappa WHERE vincitore->id_ciclista<> capo_classifica->id_ciclista AND vincitore->squadra->nome = capo_classifica->squadra->nome
2)SELECT piazzati->nome FROM tappa WHERE inizio=fine AND piazzati->squadra->nome='telekom'
(NON SO COME SI GESTISCONO GLI ARRAY NEI SELECT PER LA SECONDA QUERY)
B)
create type cantante(
nome varchar(30),
cognome varchar(30),
genere ref(ciclista))
)
not final
ref is system generated
create type concerto(
citta varchar(30),
data date,
cantante ref(cantante))
not final
ref is system generated
create table cantante of cantante
(ref is id_cantante system generated)
create table concerto of concerto
(ref is id_concerto system generated)
1)SELECT cantante->nome FROM concerto WHERE citta='milano'
2)SELECT data, cantante->nome FROM concerto WHERE citta='milano'
(nella seconda query, la seconda met� l'ho tolta essendo troncata)
C)
create type locale(
nome varchar(30),
citta varchar(30),
indirizzo varchar(30),
telefono int,
)
not final
ref is system generated
create type albergo(
camere_libere int,
camere_tot int
categoria varchar(30)
under locale
)
not final
create type ristorante(
menu varchar(30) ,
posti_tot int
categoria varchar(30)
under locale
)
not final
create type bed_breakfast(
posti int,
menu varchar(30),
costo int
under locale
)
not final
create table locale of locale
(ref is id_locale system generated)
create table albergo of albergo
under locale
create table ristorante of ristorante
under locale
create table bed_breakfast of bed_breakfast
under locale
1)SELECT nome FROM albergo WHERE citta='milano' AND indirizzo in(SELECT indirizzo FROM ristorante WHERE categoria='1a' AND citta='milano')
2)SELECT nome FROM ristorante UNION SELECT nome FROM albergo WHERE ristorante.categoria>'2a' OR albergo.categoria>'1a'
2bis)SELECT nome FROM ristorante WHERE categoria>'2a' UNION SELECT nome FROM albergo WHERE categoria>'1a'
non so quale delle ultime 2 sia giusta...
nella C mi sono dato alla sperimentazione... non so quanto sia giusto...
|
|
|
Top |
|
 |
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|