15.3. Lesson: Aggiungere Dati al Modello

Gli esempi che hai creato ora dovranno essere popolati con i dati necessari.

Obiettivo di questa lezione: Imparare a inserire nuovi dati nel database di esempio.

15.3.1. Inserire dati

Come aggiungi i dati a una tabella? L’istruzione sql INSERT fornisce le funzionalità per questo:

insert into streets (name) values ('High street');

Alcune cose da segnalare:

  • After the table name (streets), you list the column names that you will be populating (in this case only the name column).

  • Dopo il comando values, posiziona l’elenco dei valori dei campi.

  • Strings should be quoted using single quotes.

  • Note that we did not insert a value for the id column; this is because it is a sequence and will be auto-generated.

  • Se imposti manualmente id, puoi causare gravi problemi all’integrità del database.

Dovresti vedere INSERT 0 1 se effettuato l’inserimento.

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)

Try Yourself basic

Usa il comando INSERT per aggiugngere una nuova via alla tabella streets.

15.3.2. Aggiunta di dati rispettando i vincoli

15.3.3. Try Yourself moderate

Prova ad aggiungere una persona alla tabella people con i seguenti attributi:

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 avere un rapporto di errore se provi a farlo senza prima creare un record per Main Street nella tabella streets.

Dovresti aver notato che:

  • Non puoi aggiungere una strada usando il nome

  • Non puoi aggiungere un id della strada prima di avavrla creata nella tabella streets

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.

15.3.4. Selaziona 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. Agggiorna 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';

Sta molto attento a usare il comando update - se più di un record corrisppondesse alla condizione WHERE allora verrebbero tutti aggiornati!

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 ritornare UPDATE 1.

Nota

L’istruzione WHERE è sensibile alle maiuscole Main Road non è lo stesso di Main road

15.3.6. Cancella dati

Riguardo a cancellare un oggetto della tabella, usa il comando DELETE:

delete from people where name = 'Joe Smith';

Dai un’occhiata alla tabelle people:

address=# select * from people;

  id | name | house_no | street_id | phone_no
 ----+------+----------+-----------+----------
(0 rows)

15.3.7. Try Yourself hard

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 Conclusion

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. What’s Next?

Ora che hai aggiunto qualche dato, imparerai come usare le interrogazioni per accedere a questi dati in diverse maniere.