Importante
La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 98.08%.
15.3. Lezione: Aggiungere Dati al Modello
I modelli che abbiamo creato dovranno ora essere popolati con i dati che sono destinati a contenere.
Obiettivo di questa lezione: Imparare a inserire nuovi dati nel database di esempio.
15.3.1. Istruzione INSERT
Come si aggiungono dati a una tabella? L’istruzione SQL INSERT offre la funzionalità necessaria a tal fine:
insert into streets (name) values ('High street');
Alcune cose da segnalare:
Dopo il nome della tabella (
streets), elenca i nomi delle colonne che vuoi popolare (in questo caso solo la colonnaname).Dopo la parola chiave
valuesinserisci l’elenco dei valori dei campi.Strings should be quoted using single quotes.
Da notare che non abbiamo inserito alcun valore nella colonna
id; questo perché si tratta di una sequenza e verrà generata automaticamente.Se imposti manualmente il campo
id, potresti causare gravi problemi all’integrità del tuo database.
Se l’operazione va a buon fine, dovresti vedere INSERT 0 1.
Puoi vedere il risultato della tua azione di inserimento selezionando tutti i dati nella tabella:
select * from streets;
Risultato:
select * from streets;
id | name
----+-------------
1 | High street
(1 row)
Prova Tu: ★☆☆
Utilizza il comando INSERT per aggiungere una nuova strada alla tabella streets.
Soluzione
Il comando SQL che dovresti usare assomiglia a questo (puoi sostituire il nome della strada con un nome di tua scelta):
insert into streets (name) values ('Low Road');
15.3.2. Aggiunta di dati rispettando i vincoli
15.3.3. Prova Tu: ★★☆
Prova ad aggiungere un elemento persona alla tabella people con i seguenti dettagli:
Name: Joe Smith
House Number: 55
Street: Main Street
Phone: 072 882 33 21
Nota
Ricorda che in questo esempio abbiamo definito i numeri di telefono come stringhe e non come numeri interi.
A questo punto, dovresti ricevere un messaggio di errore se provi a eseguire questa operazione senza aver prima creato un record per Main Street nella tabella streets.
Dovresti aver notato che:
Non puoi aggiungere una strada usando il nome
Non puoi aggiungere una strada usando l”
iddella strada prima di aver creato il record relativo alla strada nella tabellastreets
Ricorda che le due tabelle sono collegate tramite una coppia di chiavi primaria/esterna. Ciò significa che nessuna persona può essere inserita senza che vi sia anche un record di strada corrispondente.
Usa queste informazioni per aggiungere una nuova persona al database.
Soluzione
Ecco l’istruzione SQL corretta:
insert into streets (name) values('Main Road');
insert into people (name,house_no, street_id, phone_no)
values ('Joe Smith',55,2,'072 882 33 21');
Se guardi di nuovo la tabella delle strade (usando un’istruzione select come prima), vedrai che il id per la voce Main Road è 2.
Ecco perché potremmo semplicemente inserire il numero 2 sopra. Anche se non vediamo Main Road scritto completamente nella voce di cui sopra, il database sarà in grado di associarlo al valore street_id di 2.
Se hai già aggiunto un nuovo oggetto strada, potresti scoprire che la nuova Main Road ha un id di 3 e non 2.
15.3.4. Selezionare dati
Hai già visto la sintassi per la selezione dei record. Dai un’occhiata ad altri esempi:
select name from streets;
select * from streets;
select * from streets where name='Main Road';
Nelle sessioni successive approfondirai come selezionare e filtrare i dati.
15.3.5. Agggiornare dati
Come fare per cambiare alcuni dati esistenti? per esempio cambiare il nome di una strada:
update streets set name='New Main Road' where name='Main Road';
Presta molta attenzione quando utilizzi tali istruzioni di aggiornamento: se più di un record soddisfa la tua clausola “WHERE”, verranno aggiornati tutti!
Una soluzione migliore è utilizzare la chiave primaria della tabella per fare riferimento al record da modificare:
update streets set name='New Main Road' where id=2;
Dovrebbe restituire UPDATE 1.
Nota
I criteri dell’istruzione WHERE distinguono tra maiuscole e minuscole: Main Road non è la stessa cosa di Main road.
15.3.6. Cancella dati
Per eliminare un elemento da una tabella, utilizza il comando DELETE:
delete from people where name = 'Joe Smith';
Ora dai un’occhiata alla nostra tabella people:
address=# select * from people;
id | name | house_no | street_id | phone_no
----+------+----------+-----------+----------
(0 rows)
15.3.7. Prova Tu: ★★★
Usa le competenze apprese per aggiungere alcuni nuovi amici al tuo database:
name | house_no | street_id | phone_no
-----------------+----------+-----------+--------------
Joe Bloggs | 3 | 2 | 072 887 23 45
Jane Smith | 55 | 3 | 072 837 33 35
Roger Jones | 33 | 1 | 072 832 31 38
Sally Norman | 83 | 1 | 072 932 31 32
15.3.8. In Conclusione
Ora sai come aggiungere nuovi dati agli esempi che hai creato in precedenza. Ricorda che se vuoi aggiungere nuovi tipi di dati, potresti modificare e/o creare nuovi esempi per contenere tali dati.
15.3.9. Cosa Segue?
Ora che hai aggiunto qualche dato, imparerai come usare le interrogazioni per accedere a questi dati in diverse maniere.