Important

La traduction est le fruit d’un effort communautaire auquel vous pouvez vous joindre. Cette page est actuellement traduite à 67.31%.

15.3. Leçon : Ajouter des données au modèle

Les modèles que nous avons créés nécessitent maintenant d’être remplis avec les données qu’ils sont censés contenir.

Objectif de cette leçon: Apprendre à intégrer de nouvelles données dans des modèles de bases de données.

15.3.1. Insérer une déclaration

How do you add data to a table? The sql INSERT statement provides the functionality for this:

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

Un certain nombre de choses à noter :

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

  • After the values keyword, place the list of field values.

  • Des chaînes de caractères devraient être citées en utilisant des guillemets simples.

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

  • If you do manually set the id, you may cause serious problems with the integrity of your database.

You should see INSERT 0 1 if it is successful.

Vous pouvez voir le résultat de votre action d’insertion en sélectionnant toutes les données de la table

select * from streets;

Résultat :

select * from streets;
 id |    name
----+-------------
  1 | High street
(1 row)

★☆☆ Essayez vous-même

Use the INSERT command to add a new street to the streets table.

15.3.2. Séquençage d’ajout de données en fonction des contraintes

15.3.3. ★★☆ Essayez vous-même

Try to add a person object to the people table with the following details:

Name: Joe Smith
House Number: 55
Street: Main Street
Phone: 072 882 33 21

Note

Rappelez-vous que dans cet exemple, nous avons défini les numéros de téléphone comme chaînes de caractères, et non comme entiers.

At this point, you should have an error report if you try to do this without first creating a record for Main Street in the streets table.

Vous devriez aussi avoir remarqué ceci :

  • Vous ne pouvez pas ajouter la rue en utilisant son nom

  • You can’t add a street using a street id before first creating the street record on the streets table

Souvenez-vous que nos deux tables sont liées via une paire de Clé Primaire / Clé Étrangère. Cela signifie qu’aucune personne valide ne peut être créée sans qu’il y ait également un enregistrement valide de la rue correspondante.

En utilisant les connaissances ci-dessus, ajoutez une nouvelle personne à la base de données.

15.3.4. Sélectionner les données

Nous vous avons déjà montré la syntaxe pour sélectionner des enregistrements. Regardons quelques exemples de plus :

select name from streets;
select * from streets;
select * from streets where name='Main Road';

Dans les sessions suivantes, nous irons plus en détail sur la façon de sélectionner et de filtrer des données.

15.3.5. Mise à jour des données

Et si vous voulez faire un changement de quelques données existantes ? Par exemple, un nom de rue est changé

update streets set name='New Main Road' where name='Main Road';

Be very careful using such update statements - if more than one record matches your WHERE clause, they will all be updated!

Une meilleure solution est d’utiliser une clé primaire de la table pour référencer l’enregistrement qui doit être changé

update streets set name='New Main Road' where id=2;

It should return UPDATE 1.

Note

The WHERE statement criteria are case sensitive, Main Road is not the same as Main road.

15.3.6. Supprimer les données

In order to delete an object from a table, use the DELETE command:

delete from people where name = 'Joe Smith';

Regardons maintenant notre table de personnes :

address=# select * from people;

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

15.3.7. ★★★ Essayez vous-même

Utilisez les compétences acquises jusqu’à maintenant pour ajouter quelques nouveaux amis à votre base de données

      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. Conclusion

Vous savez maintenant comment ajouter de nouvelles données aux modèles existants que vous avez précédemment créés. Souvenez-vous que si vous voulez ajouter de nouveaux types de données, vous pouvez modifier et/ou créer de nouveaux modèles pour contenir ces données.

15.3.9. La suite ?

Maintenant que vous avez ajouté des données, vous allez apprendre comment utiliser des requêtes pour accéder à ces données de différentes façons.