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 ? Le SQL 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)
Try Yourself
Utiliser la commande INSERT pour ajouter une nouvelle rue à la table streets.
Réponse
La commande SQL que vous devez utiliser ressemble à ceci (vous pouvez remplacer le nom de la rue par un nom de votre choix):
insert into streets (name) values ('Low Road');
15.3.2. Séquençage d’ajout de données en fonction des contraintes
15.3.3. Try Yourself
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.
Réponse
Voici la syntaxe SQL correcte
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');
If you look at the streets table again (using a select statement as before),
you’ll see that the id for the Main Road
entry is 2.
That’s why we could merely enter the number 2
above. Even though we’re
not seeing Main Road
written out fully in the entry above, the
database will be able to associate that with the street_id value of 2.
If you have already added a new street object, you might find that the
new Main Road
has an id of 3 not 2.
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';
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 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
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.