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

15.3. Lesson: Gegevens aan het model toevoegen

De modellen die we hebben gemaakt moeten nu worden gevuld met de gegevens die zij geacht worden te bevatten.

Het doel voor deze les: Leren hoe nieuwe gegevens in de modellen van de database in te voeren.

15.3.1. Argument Insert

Hoe voegt u gegevens toe aan een tabel? Het argument voor SQL INSERT verschaft daar de functionaliteit voor:

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

Een anatal dingen om te onthouden:

  • Na de naam van de tabel (streets), vermeldt u de kolomnamen die u wilt vullen (in dit geval alleen de kolom name).

  • Na het sleutelwoord values, plaats de lijst met veldwaarden.

  • Strings zouden moeten worden omsloten door enkele aanhalingstekens.

  • Onthoud dat we geen waarde hebben ingevuld voor de kolom id; dat is omdat het een reeks is en automatisch wordt gegenereerd.

  • Indien u de id handmatig instelt, kunt u ernstige problemen veroorzaken voor de integriteit van uw database.

U zou INSERT 0 1 moeten zien als het met succes is voltooid.

U kunt het resultaat van uw invoeractie zien door alle gegevens in de tabel te selecteren:

select * from streets;

Resultaat:

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

15.3.1.1. Try Yourself basic

Gebruik de opdracht INSERT om een nieuwe straat in te voeren in de tabel streets.

Controleer uw resultaten

15.3.2. Toevoegen van gegevens in overeenstemming met beperkingen

15.3.3. Try Yourself moderate

probeer een object persoon toe te voegen aan de tabel people met de volgende details:

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

Notitie

Onthoud dat we in dit voorbeeld telefoonnummers hebben gedefinieerd als strings, niet als integers.

Op dit punt zou u een foutbericht moeten krijgen als u dit probeert te doen zonder eerst een record voor Main Street te hebben gemaakt in de tabel streets.

U zou ook moeten hebben opgemerkt dat:

  • U kunt de straat niet toevoegen met behulp van zijn naam

  • U kunt geen straat toevoegen met behulp van een id voor de straat zonder eerst het record voor de straat te hebben gemaakt in de tabel streets

Onthoud dat onze twee tabellen zijn gekoppeld via een paar Primaire/Vreemde sleutel. Dit betekent dat geen geldige persoon kan worden gemaakt zonder dat er ook een geldig overeenkomend record is voor de straat.

Voeg, met behulp van bovenstaande kennis, de nieuwe persoon toe aan de database.

Controleer uw resultaten

15.3.4. Gegevens selecteren

We hebben u de syntaxis voor het selecteren van records al laten zien. Laten we eens naar nog een aantal voorbeelden kijken:

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

In latere gedeelten zullen we meer in detail ingaan op hoe gegevens te selecteren en te filteren.

15.3.5. Gegevens bijwerken

Wat als u een wijziging wilt maken in enkele bestaande gegevens? Bijvoorbeeld: een straatnaam is gewijzigd:

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

Wees zeer voorzichtig met het gebruiken van dergelijke argumenten voor bijwerken - als meer dan één record overeenkomt met uw clausule WHERE, zullen zij allemaal worden bijgewerkt!

Een betere oplossing is om de primaire sleutel van de tabel te gebruiken om te verwijzen naar het record dat moet worden gewijzigd:

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

Het zou terug moeten geven UPDATE 1.

Notitie

de criteria voor het argument WHERE zijn hoofdlettergevoelig Main Road is niet hetzelfde als Main road

15.3.6. Gegevens verwijderen

Gebruik de opdracht DELETE om een object uit een tabel te verwijderen:

delete from people where name = 'Joe Smith';

Laten we nu eens naar onze tabel people kijken:

address=# select * from people;

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

15.3.7. Try Yourself hard

Gebruik de vaardigheden die u heeft geleerd om enkele nieuwe vrienden aan uw database toe te voegen:

      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

Nu weet u hoe u nieuwe gegevens moet toevoegen aan de bestaande modellen die u eerder heeft gemaakt. Onthoud dat als u nieuwe soorten gegevens wilt toevoegen, u misschien moet aanpassen en/of nieuwe modellen moet maken om die gegevens te kunnen bevatten.

15.3.9. What’s Next?

Nu dat u enkele gegevens heeft toegevoegd, zult u leren hoe u query’s gebruikt om op verschillende manieren toegang te krijgen tot deze gegevens.