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

15.3. Lesson: Adăugarea de date în 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

Cum adăugați date într-o tabelă? Instrucțiunea SQL INSERT oferă funcționalitatea necesară:

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

Mai multe lucruri de reținut:

  • După numele tabelului (streets), veți lista numele coloanelor pe care le veți popula (în acest caz, doar coloana name).

  • După cuvântul cheie values, plasați lista valorilor de câmp.

  • Șirurile de caractere ar trebui să fie citate cu ajutorul ghilimelelor simple.

  • Rețineți că nu vom introduce o valoare pentru coloana id; acest lucru se datorează faptului că este o secvență, ea fiind generată în mod automat.

  • Dacă setați manual id-ul, pot apărea probleme grave cu integritatea bazei de date.

Ar trebui să vedeți INSERT 0 1 dacă a avut succes.

Puteți vedea rezultatul acțiunii de inserare, prin selectarea tuturor datelor din tabel:

select * from streets;

Rezultat:

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

15.3.1.1. Try Yourself basic

Folosiți comanda INSERT pentru a adăuga o nouă stradă în tabelul streets.

Verificați-vă rezultatele

15.3.2. Secvențierea Adăugării Datelor, Conform Constrângerilor

15.3.3. Try Yourself moderate

Încercați să adăugați un obiect persoană în tabela people cu următoarele detalii:

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

Note

Reamintim că, în acest exemplu, am definit numerele de telefon ca șiruri de caractere, și nu ca numere întregi.

În acest moment, ar trebui să întâmpinați un raport de eroare, dacă încercați să faceți acest lucru fără a crea mai întâi o înregistrare pentru Main Street din tabela streets.

Ar trebui să rețneți, de asemenea, că:

  • Nu puteți adăuga strada folosind-ui numele

  • Nu puteți adăuga o stradă folosind un id, fără a crea mai întâi o înregistrare a străzii în tabela străzilor

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.

Verificați-vă rezultatele

15.3.4. Selectarea datelor

V-am arătat deja sintaxa pentru selectarea înregistrărilor. Să ne uităm la alte câteva exemple:

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ă efectuați o schimbare a unor date existente? De exemplu, un nume de stradă este schimbat:

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

Fiți foarte atenți la folosirea acestor declarații de actualizare - în cazul în care mai mult de o înregistrare se potrivește clauzei WHERE, toate vor fi actualizate!

O soluție mai bună este de a folosi cheia primară a tabelului, pentru a referenția înregistrarea care trebuie să fie schimbată:

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

Ar trebui să returneze UPDATE 1.

Note

Criteriile instrucțiunii WHERE sunt sensibile la majuscule, astfel Main Road nu este similar cu Main road

15.3.6. Ştergere Dată

Pentru a șterge un obiect dintr-un tabel, folosiți comanda DELETE:

delete from people where name = 'Joe Smith';

Să ne uităm la tabela noastră de personal acum:

address=# select * from people;

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

15.3.7. Try Yourself hard

Folosi abilitățile pe care le-ați învățat, pentru a adăuga noi prieteni î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. In Conclusion

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

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.