Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Rudimenti di SQL

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Rudimenti di SQL

Messaggioda ingmotty » lun feb 25, 2008 4:40 pm

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:
Immagine
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:
Ridi, e il mondo riderà con te. Piangi, e piangerai da solo!
Avatar utente
ingmotty
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 2386
Iscritto il: sab set 30, 2006 10:29 pm
Località: Gricignano (CE)

Messaggioda ninjabionico » gio mar 20, 2008 11:20 pm

Ciao.

Fai un'installazione LAMP, quindi puoi utilizzare mysqladmin per creare e gestire il database, se poi fai il backup dentro vi troverai i comandi SQL utilizzati per creare la struttura (almeno da quello che ricordo).

Inoltre puoi fare un po' di pratica seguendo qualche guida tipo:

http://database.html.it/guide/leggi/87/guida-mysql/

e

http://database.html.it/guide/leggi/40/ ... aggio-sql/

[ciao]

P.S.: Le ricerche di cui hai bisogno le lascio a te, tanto sono sicuro che sei in grado di farle... [;)]
Io dico le cose così come stanno! Questo è il mio credo ninja - by Naruto Uzumaki
Expert-Advanced User Powered by Gnu/Linux
Avatar utente
ninjabionico
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5207
Iscritto il: lun mar 20, 2006 10:51 pm
Località: Prov. Pd

Messaggioda Zane » gio mar 20, 2008 11:56 pm

Presupponendo che "query innestate" significhi "nested query" (in tal caso, mi permetto di far presente al tuo docente che la traduzione italiana generalmente accettata è "query annidate" [arist]), dovrebbe essere qualcosa tipo

Codice: Seleziona tutto
SELECT nome, indirizzo FROM ristoranti WHERE indirizzo=(SELECT indirizzo FROM ristoranti WHERE nome='nome di un ristorante assegnato' LIMIT 0,1)


L'ho appena verificata contro il DB di MegaLab.it (MySQL 5) e funziona [;)]
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara


Messaggioda Robby78 » ven mar 21, 2008 9:47 am

Zane ha scritto:
Codice: Seleziona tutto
SELECT nome, indirizzo FROM ristoranti WHERE indirizzo=(SELECT indirizzo FROM ristoranti WHERE nome='nome di un ristorante assegnato' LIMIT 0,1)



la sintassi è perfetta, ma il quesito chiedeva i ristoranti della stessa zona, non dello stesso indirizzo, quindi cambierei la clausola where: "where zona = (select zona from..."

P.S. che cos'è quel parametro limit 0,1?
Povera patria! Schiacciata dagli abusi del potere di gente infame, che non sa cos'è il pudore - Franco Battiato
ricordati di pensare! - mia mamma
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda ste_95 » ven mar 21, 2008 9:54 am

Robby78 ha scritto:P.S. che cos'è quel parametro limit 0,1?

Circoscrive la query a una sola riga nel db.
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am

Messaggioda Robby78 » ven mar 21, 2008 10:17 am

ah... io per quello usavo il "top n" ad esempio select top 1 nome, indirizzo from .....

P.S. allora per rispondere alla domanda originale, andrebbe tolto anche quel parametro: "trovate I ristorantI"
Ultima modifica di Robby78 il ven mar 21, 2008 11:12 am, modificato 1 volta in totale.
Povera patria! Schiacciata dagli abusi del potere di gente infame, che non sa cos'è il pudore - Franco Battiato
ricordati di pensare! - mia mamma
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda Rumez » ven mar 21, 2008 10:39 am

Robby78 ha scritto:ah... io per quello usavo il "top n" ad esempio select top 1 nome, indirizzo from .....

P.S. allora per rispondere alla domanda originale, andrebbe tolto anche quel parametro "trovate I ristorantI"


purtroppo in MySQL non esiste il SELECT top
Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Zane » ven mar 21, 2008 11:33 am

Robby78 ha scritto:ma il quesito chiedeva i ristoranti della stessa zona, non dello stesso indirizzo

Ouch, giusta osservazione [^]

Circa il TOP... spesso mi sbaglio anch'io! ma, come diceva il buon Rumez, non è standard: da quanto ne so, è la solita dialetizzazione Microsoft per SQL Server [acc2]
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising