Important
Traducerea este un efort al comunității, la care puteți să vă alăturați. În prezent, această pagină este tradusă 71.15%.
15.3. Lesson: Adding Data to the Model
Modelele pe care le-am creat vor trebui să fie populate de acum cu datele pe care trebuie să le conțină.
Scopul acestei lecții: De a afla cum se pot insera noi date în baza de date a modelelor.
15.3.1. Inserarea instrucțiunilor
How do you add data to a table? The sql INSERT statement provides the
functionality for this:
insert into streets (name) values ('High street');
Mai multe lucruri de reținut:
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.Șirurile de caractere ar trebui să fie citate cu ajutorul ghilimelelor simple.
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.
Puteți vedea rezultatul acțiunii dvs. de inserare selectând toate datele din tabelă:
select * from streets;
Rezultat:
select * from streets;
id | name
----+-------------
1 | High street
(1 row)
Încercați și dvs.: ★☆☆
Use the INSERT command to add a new street to the streets table.
Răspuns
Comanda SQL pe care ar trebui să o utilizați arată astfel (puteți înlocui numele străzii cu un nume la alegere):
insert into streets (name) values ('Low Road');
15.3.2. Secvențierea Adăugării Datelor, Conform Constrângerilor
15.3.3. Încercați și dvs.: ★★☆
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
Notă
Reamintim că, în acest exemplu, am definit numerele de telefon ca șiruri de caractere, și nu ca numere întregi.
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.
Ar trebui să rețneți, de asemenea, că:
Nu puteți adăuga strada folosind-ui numele
You can’t add a street using a street
idbefore first creating the street record on thestreetstable
Amintiți-vă că cele două tabele sunt legate printr-o pereche de chei: primară/externă. Aceasta înseamnă că nici o persoană validă nu pot fi creată fără a exista, de asemenea, o înregistrare de stradă validă, corespunzătoare.
Folosind cunoștințele de mai sus, adăugați noua persoană în baza de date.
Răspuns
Iată instrucțiunea SQL corectă:
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');
Dacă vă uitați din nou la tabela străzilor (folosind o instrucțiune select ca cea de dinainte), veți vedea că id-ul intrării Drum principal este 2.
De aceea am putea introduce pur și simplu numărul 2 mai sus. Chiar dacă nu vedem Main Road scris complet în intrarea de mai sus, baza de date va putea să-l asocieze cu valoarea street_id de 2.
Dacă ați adăugat deja un nou obiect stradal, s-ar putea să descoperiți că noul Drum Principal are un id de 3 nu de 2.
15.3.4. Selectarea datelor
V-am arătat deja sintaxa pentru selectarea înregistrărilor. Să ne uităm la câteva exemple suplimentare:
select name from streets;
select * from streets;
select * from streets where name='Main Road';
În sesiunile ulterioare vom intra în mai multe detalii cu privire la modul de selectare și de filtrare a datelor.
15.3.5. Actualizarea datelor
Ce se întâmplă dacă doriți să faceți o modificare a unor date existente? De exemplu, un nume de stradă este schimbat:
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!
O soluție mai bună este de a folosi cheia primară a tabelului, pentru a referenția înregistrarea care trebuie schimbată:
update streets set name='New Main Road' where id=2;
It should return UPDATE 1.
Notă
The WHERE statement criteria are case sensitive, Main
Road is not the same as Main road.
15.3.6. Ştergere Dată
In order to delete an object from a table, use the DELETE command:
delete from people where name = 'Joe Smith';
Să ne uităm acum la tabela noastră de personal:
address=# select * from people;
id | name | house_no | street_id | phone_no
----+------+----------+-----------+----------
(0 rows)
15.3.7. Încercați și dvs.: ★★★
Folosiți abilitățile pe care le-ați învățat pentru a adăuga câțiva prieteni noi în baza de date:
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. În concluzie
Acum știți cum să adăugați date noi modelelor existente, pe care le-ați creat anterior. Amintiți-vă că, dacă doriți să adăugați noi tipuri de date, poate doriți să modificați și/sau să creați noi modele, care să conțină aceste date.
15.3.9. Ce urmează?
Acum, că ați adăugat câteva date, veți învăța cum să folosiți interogările, pentru a accesa aceste date în diferite moduri.