Belangrijk
Vertalen is een inspanning van de gemeenschap waaraan u deel kunt nemen. Deze pagina is momenteel voor 73.08% vertaald.
15.3. Les: 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
How do you add data to a table? The sql INSERT statement provides the
functionality for this:
insert into streets (name) values ('High street');
Een anatal dingen om te onthouden:
After the table name (
streets), you list the column names that you will be populating (in this case only thenamecolumn).After the
valueskeyword, place the list of field values.Strings zouden moeten worden omsloten door enkele aanhalingstekens.
Note that we did not insert a value for the
idcolumn; 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.
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)
Probeer zelf: ★☆☆
Use the INSERT command to add a new street to the streets table.
Antwoord
De opdracht voor SQL die u zou moeten gebruiken ziet er ongeveer zo uit (u mag de straatnaam vervangen door een naam van uw keuze):
insert into streets (name) values ('Low Road');
15.3.2. Toevoegen van gegevens in overeenstemming met beperkingen
15.3.3. Probeer zelf: ★★☆
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
Notitie
Onthoud dat we in dit voorbeeld telefoonnummers hebben gedefinieerd als strings, niet als integers.
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.
U zou ook moeten hebben opgemerkt dat:
U kunt de straat niet toevoegen met behulp van zijn naam
You can’t add a street using a street
idbefore first creating the street record on thestreetstable
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.
Antwoord
Hier is het juiste argument voor SQL:
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');
Als u opnieuw naar de tabel met straten kijkt (met een argument Select zoals eerder), zult u zien dat de id voor het item Main Road 2 is.
Dat is waarom we hierboven alleen het nummer 2 hoefden in te voeren. Zelfs hoewel we Main Road niet volledig uitgeschreven zagen staan in het item hierboven, zal de database in staat zijn dat te associëren met de waarde 2 voor street_id.
Als u al een nieuw object street had toegevoegd, zou u kunnen merken dat de nieuwe Main Road eean id van 3 heeft, niet 2.
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';
Be very careful using such update statements - if more than one record matches
your WHERE clause, they will all be updated!
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;
It should return UPDATE 1.
Notitie
The WHERE statement criteria are case sensitive, Main
Road is not the same as Main road.
15.3.6. Gegevens verwijderen
In order to delete an object from a table, use the DELETE command:
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. Probeer zelf: ★★★
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. Conclusie
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. Wat volgt?
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.