|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
Rudimenti di SQL
Ciao a tutti, sto preparando l'esame di sistemi informativi che nella prova scritta prevede delle interrogazioni a delle basi di dati elementari.
Il guaio è che con i linguaggi di programmazione in generale non sono andato mai troppo daccordo e quindi vi chiedo l'immenso favore di aiutarmi. Detto questo l'esercizio che devo svolgere è il seguente illustrato: ![]() Ora lo schema relazionale per la precedente base di dati in base a quanto ho letto e sono riuscito ad imparare è il seguente: ZONE(Zona, Nome zona) RISTORANTI(Cod, Nome, Indirizzo, Tipo, Zona) CUCINE(Tipo,DescrTipo) CONVENZIONI(Cod,CodCarta) CARTE DI CREDITO(CodCarta,Carta) Ho Sottolineato gli attributi che costituiscono i vincoli di ciascuna relazione. Per quanto riguarda al secondo punto, ovvero l'interrogazione in SQL, non sono da dove partire. Spero che mi possiate aiutare. :cheers: Ultima modifica di ingmotty : 25-02-2008 alle 17:05. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
ok ma che interrogazione devi fare?O son rimbambito io o non lo hai scritto!
__________________
Khelidan |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2005
Città: Avezzano (AQ)
Messaggi: 205
|
La traduzione nello schema relazionale è corretta, ma come diceva khelidan1980 per poterti aiutare è necessario sapere cosa ti chiede di determinare l'interrogazione (l'illustrazione è tagliata proprio sulla definizione dell'interrogazione).
__________________
Venite pure avanti, facciamola finita...voi preti che vendete a tutti un'altra vita. Se c'è come voi dite un Dio nell'infinito, guardatevi nel cuore, l'avete già tradito.|LA MIA MITICA BAND| Trattative oookkk Ultima modifica di attix : 25-02-2008 alle 16:10. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
Avete ragione non me ne sono accorto ho sostituito l'immagine nel primo post con il quesito completo.
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
Se ben ricordo dovresti fare:
select nome,indirizzo from ristoranti where zona like select zona from zone where nomezona like select zona from ristoranti where nome like 'nomeassegnato' |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Feb 2005
Città: Avezzano (AQ)
Messaggi: 205
|
Ok....
allora, se non ho capito male, assegnato un ristorante, si vogliono determinare nome e indirizzo degli altri ristoranti presenti nella stessa zona. SELECT Nome,Indirizzo fai la proiezione degli attributi che ti servono FROM ristoranti dalla relazione di interesse WHERE Zona =ANY (SELECT Zona relativamente alle ennuple la cui zona è uguale FROM ristoranti a quella di un ristorante presente nella relazione "ristoranti" WHERE [selezione del ristorante assegnato] ) che risponde a quello assegnato Correggetemi se sbaglio.
__________________
Venite pure avanti, facciamola finita...voi preti che vendete a tutti un'altra vita. Se c'è come voi dite un Dio nell'infinito, guardatevi nel cuore, l'avete già tradito.|LA MIA MITICA BAND| Trattative oookkk |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
Ciao mille grazie per la risposta ma una cosa che non mi era chiara nel testo del quesito è cosa intendesse per query innestate.
Nel senso che chiedeva di esprimere la query come ha fatto attix ossia utilizzando un'interrogazione nidificata? Ultima modifica di ingmotty : 25-02-2008 alle 17:16. |
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Feb 2005
Città: Avezzano (AQ)
Messaggi: 205
|
Quote:
Le query innestate o nidificate sono query che richiamano all'interno della clausola WHERE un'altra query come condizione di selezione. Innestate o nidificate mi pare siano la stessa cosa. Ognuno le chiama come più gli piace
__________________
Venite pure avanti, facciamola finita...voi preti che vendete a tutti un'altra vita. Se c'è come voi dite un Dio nell'infinito, guardatevi nel cuore, l'avete già tradito.|LA MIA MITICA BAND| Trattative oookkk |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
Ho capito, il mio testo parlava di qury nidificate e leggendo invece l'esercizio avevo trovato un pò di difficoltà.
In ogni caso se l'eserzio non avesse chiesto specificamente query nidificate, sarebbe stata giusta anche l'interrogazione di Claudio giusto? |
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Feb 2005
Città: Avezzano (AQ)
Messaggi: 205
|
Quote:
where zona like select zona from zone where nomezona like select zona from ristoranti where nome like 'nomeassegnato' Ti dirò...l'operatore LIKE lo uso per confronti su stringhe parziali (che so...ad esempio se avesse chiesto la zona di tutti i ristoranti che i cui nomi iniziano per "A"). Personalmente eviterei di usarlo in questa circostanza. La SELECT in grassetto, poi , va omessa sia perchè inutile, sia perchè confronta due attributi di tipo diverso (l'attributo NomeZona in zone, che è una stringa, e l'attributo Zona in ristoranti che è un carattere).
__________________
Venite pure avanti, facciamola finita...voi preti che vendete a tutti un'altra vita. Se c'è come voi dite un Dio nell'infinito, guardatevi nel cuore, l'avete già tradito.|LA MIA MITICA BAND| Trattative oookkk |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
Quote:
|
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 579
|
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
Ragazzi gentilmente Potreste controllarmi la query relativa a questo esercizio?
![]() IO ho scritto: Select R1 NOME, R2 INDIRIZZO FROM RISTORANTI R1, RISTORANTI R2,ZONE WHERE R1.ZONA=ZONE.ZONA AND R2.ZONA=ZONE.ZONA AND R1.ZONA=R2.ZONA La base dati è sempre quella nel mio primo post. Mille grazie come sempre per l'aiuto. |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Non e' giusta purtroppo.
Prova a svolgere questo, che e' davvero vicino: Trovare tutti i ristoranti che sono nella stessa zona del ristorante che si chiama "Pippo"
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
gugoXX Non riesco a capire il tuo suggerimento,per favore mi potresti spiegare? |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Nel senso di provare a rispondere alla mia di domanda, non a quella dell'esercizio... che pero' e' la stessa cosa detta in modo piu' "umano"
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 923
|
Ma anche la tua query prevede l'impiego di rinominazione?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:21.






















