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

16.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.

16.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.

You can see the result of your insert action by selecting all the data in the table:

select * from streets;

Rezultat:

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

16.3.1.1. Try Yourself basic

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

Check your results

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

16.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.

Check your results

16.3.4. Selectarea datelor

We have already shown you the syntax for selecting records. Let’s look at a few more examples:

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.

16.3.5. Actualizarea datelor

What if you want to make a change to some existing data? For example, a street name is changed:

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 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

16.3.6. Ştergere Dată

In order to delete an object from a table, use the DELETE command:

delete from people where name = 'Joe Smith';

Let’s look at our people table now:

address=# select * from people;

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

16.3.7. Try Yourself hard

Use the skills you have learned to add some new friends to your database:

      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

16.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.

16.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.