Importante
unireLa traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 94.23%.
15.3. Lezione: 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)
Prova Tu: ★☆☆
Usa il comando INSERT per aggiugngere una nuova via 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 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.
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. Seleziona 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. 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.