Outdated version of the documentation. Find the latest one here.

15.3. Lesson: 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

Comme ajoutez-vous des données à une table ? La déclaration INSERT fournit la fonctionnalité pour ceci

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

Un certain nombre de choses à noter :

  • Après le nom de la table (streets), vous listez les noms des colonnes que vous peuplerez (dans ce cas-là seulement la colonne name).

  • Après le mot clé valeurs, placez la liste des valeurs de champ.

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

  • Notez que nous n’avons pas inséré une valeur pour la colonne id ; c’est parce que c’est une séquence et qu’elle sera auto-générée.

  • Si vous remplissez manuellement le id, vous pouvez avoir de sérieux problèmes avec l’entier de votre base de données.

Vous pourrez voir INSERT 0 1 si cela a fonctionné.

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)

15.3.1.1. Try Yourself basic

Utiliser la commande INSERT pour ajouter une nouvelle rue à la table streets.

Vérifiez vos résultats

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

15.3.3. Try Yourself moderate

Essayez d’ajouter un objet personne à la table people avec les détails suivants

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.

À cette étape, vous devriez avoir un rapport d’erreur si vous essayez de faire cela sans d’abord créer un enregistrement pour Main Street dans la table streets.

Vous devriez aussi avoir remarqué ceci :

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

  • Vous ne pouvez pas ajouter une rue en utilisant un id de rue avant d’avoir d’abord créé l’enregistrement de la rue dans la table des rues.

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.

Vérifiez vos résultats

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 à des données existantes ? Par exemple, un nom de rue est changé

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

Soyez très prudent en utilisant ces déclarations de mise à jour - si plus d’un enregistrement correspond à votre clause WHERE, ils seront tous mis à jour !

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

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

Il devrait être retourné UPDATE 1.

Note

Les critères de déclaration WHERE sont sensibles aux majuscules et minuscules : Main Road n’est pas la même chose que Main road.

15.3.6. Supprimer les données

Afin de supprimer un objet d’une table, utilisez la commande DELETE

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. Try Yourself hard

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

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.