Vorrei farti un esempio che illustri quanto è versatile sql:
SELECT *
FROM Clienti esterna
WHERE '2010/02/09'
IN(
SELECT Odata
FROM Ordini interna
WHERE esterna.Cnum = interna.Cnum);
Questa query composta che utilizza una query correlata,ritrova gli ordini di una determinata data.
Ma questo è solo un metodo,potremmo anche riscriverlo cosi:
SELECT DISTINCT primo.Cnum,primo.Cnome
FROM Clienti primo,Ordini secondo
WHERE primo.Cnum = secondo.Cnum AND secondo.Odata = '2010/02/09'
Una cosa da sottolineare è che il 'Structurered Query Language' interroga il database direttamente in inglese.Proprio come se dovessi fargli una domanda,questo sembra banale ma è l'opzione piu potente!
Guarda questa traduzione:
SELEZIONA DISTINTAMENTE primo.Cnum,primo.Cnome
DA Clienti primo,Ordini secondo
DOVE primo.Cnum = secondo.Cnum E secondo.Odata = '2010/02/09'
Forse cosi diventa piu semplice....Tu domandi il database risponde.
Prima di scrivere una query dovresti porre una domanda al database,tipo:
Voglio i dati contenuti nella tabella x nelle seguenti colonne y che rispettino le regole z
Solo dopo puoi 'convertire' in sql,vedrai che col tempo ti diventerà naturale.
Entra nello specifico se vuoi ulteriori chiarimenti.
Inoltre sarà molto probabilmente necessario implementare una struttura dati di una certa complessità (più complicate delle liste almeno).
Per mia curiosità personale che esce dalla visibilità di questo thread,cosa useresti per gestire i dati di un database complesso senza utilizzare le liste?
Non sono certo che sia conveniente lasciar perdere sql e implementare tutto.
Vedi secondo me se riesci a gestire i dati con le liste allora il modello che si sta usando è abbastanza semplice da poter evitare l'utilizzo di un database vero e proprio.Cmq come ho detto precedentemente,prima o dopo il progetto si consiglia di approfondire il 'linguaggio' sql