Strutture dati e database: differenze tra le versioni

m
Riportata alla revisione precedente di 80.117.216.81
m (Robot: Automated text replacement (-<i>(.*)</i> +''\1''))
m (Riportata alla revisione precedente di 80.117.216.81)
Per strutturare correttamente dei dati, il primo passo è capire di che tipo sono, specialmente in relazione all'uso che se ne dovrà fare.
 
I campi "Nome" e "Cognome" conterranno dati di tipo testuale; possiamo immaginare di cercare i dati di una persona partendo dal suo cognome ed in caso di omonimia di questo, raffinando la ricerca scegliendo il nome corretto tra i vari omonimi, ecco quindi perchéperchè non teniamo uniti il nome ed il cognome in un unico campo ad esempio chiamato "Nominativo".
 
Il campo "Indirizzo", anch'esso di tipo testuale, invece contiene al proprio interno due aspetti che potrebbe avere senso tenere separati; immaginando di voler filtrare, tra tutte le persone solo quelle residenti a Milano e non avendo per ora nessuna capacità di trovare una specifica sequenza di caratteri all'interno di un campo, dovremo quindi scorporare l'aspetto "Città" dal campo "Indirizzo".
===Interrogare un database: istruzione SELECT===
 
La sintassi del comando ''<i>SELECT''</i> è definita in questo modo:
 
SELECT ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome_Colonna''</i>]
{, ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome Colonna''</i>]}
FROM ''<i>Nome_Tabella</i> [[as] <i>alias''</i>]
{, ''<i>Nome_Tabella</i> [[as] <i>alias''</i>]}
[WHERE ''<i>Condizione''</i>]
 
====Join====
 
La sintassi di interrogazione prevista per implementare al suo interno le condizioni di ''<i>join''</i> è la seguente:
 
SELECT ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome_Colonna''</i>]
{, ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome Colonna''</i>]}
FROM ''<i>Nome_Tabella</i> [[as] <i>alias''</i>]
{, ''<i>Tipo_di_Join</i> join <i>Nome_Tabella</i> [[as] <i>alias''</i>] on
''<i>Condizione_di_Join''</i>}
[WHERE ''<i>Condizione''</i>]
 
====Ordinamento====
 
Durante un'interrogazione dei dati presenti nel nostro database, utilizzando la clasula ''<i>Order by''</i> riusciamo a stabilire dei particolari criteri di ordinamento:
 
SELECT ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome_Colonna''</i>]
{, ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome Colonna''</i>]}
FROM ''<i>Nome_Tabella</i> [[as] <i>alias''</i>]
{, ''<i>Nome_Tabella</i> [[as] <i>alias''</i>]}
[WHERE ''<i>Condizione''</i>]
[ORDER BY ''<i>Nome_Colonna''</i> [asc|desc]
{, ''<i>Nome_Colonna''</i> [asc|desc]}]
 
====Operatori aggregati====
====Sintassi completa del comando SELECT====
 
Possiamo, ora, scrivere una sintassi più completa per l'interrogazione del nostro database tramite il comando ''<i>SELECT''</i>:
 
SELECT ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome_Colonna''</i>]
{, ''<i>Espressione_su_Colonna</i> [[as] <i>Nuovo_Nome Colonna''</i>]}
FROM ''<i>Nome_Tabella</i> [[as] <i>alias''</i>]
{, ''<i>Tipo_di_Join</i> join <i>Nome_Tabella</i> [[as] <i>alias''</i>] on
''<i>Condizione_di_Join''</i>}
[WHERE ''<i>Condizione''</i>]
[ORDER BY ''<i>Nome_Colonna''</i> [asc|desc]
{, ''<i>Nome_Colonna''</i> [asc|desc]}]
[GROUP BY ''<i>Nome_colonna''</i>]
[HAVING ''<i>Condizione_su_colonne_aggregate''</i>]
 
===Modifiche di schemi di tabelle: istruzione ALTER TABLE===
Il comando che permette di popolare il database è <I>INSERT</i>. La sua sintassi più utilizzata è la seguente:
 
INSERT INTO ''<i>Nome_Tabella</i> [( <I>Lista_Colonne''</i> )]
VALUES ( ''<i>Lista_Valori''</i>
 
In alternativa si può anche usare:
 
INSERT INTO ''<i>Nome_Tabella</i> [( <I>Lista_Colonne''</i> )]
( ''<i>Select_di_SQL''</i> )
 
La quale permette di inserire nella tabella tutte quelle righe che sono il risultato del costrutto ''<i>SELECT''</i>.
 
====Eliminazione righe====
Per eliminare righe da una tabella si usa il comando <I>DELETE</i>:
 
DELETE FROM ''<i>Nome_Tabella</i> [WHERE <i>Condizione''</i>]
 
====Modificare le righe====
 
Con il comando ''<i>UPDATE''</i> riusciamo a modificare i valori presenti nel database. La sintassi è la seguente:
 
UPDATE ''<i>Nome_Tabella''</i>
SET ''<i>Nome_Colonna''</i> =
< ''<i>Espressione</i> | <i>Select_di_SQL''</i> | null | default >
{, ''<i>Nome_Colonna''</i> =
< ''<i>Espressione</i> | <i>Select_di_SQL''</i> | null | default >}
[WHERE <I>Condizione</i>]