Manipularea datelor în SQL Tutorial

Bine ați venit la lecția nouă „Manipularea datelor” din SQL Tutorial, care face parte din cursul de instruire SQL. În această lecție, vom vorbi despre instrucțiunile INSERT, UPDATE și DELETE din SQL.

Obiective

Până la sfârșitul acestei lecții, veți fi capabili să:

  • Explicați instrucțiunea INSERT și modul în care poate fi utilizată

  • Descrisă interogarea UPDATE cu exemple

  • Explicați instrucțiunea DELETE cu exemple

Instrucțiunea INSERT

Instrucțiunea INSERT este una dintre cele trei instrucțiuni aparținând secțiunii so-numită „limbaj de manipulare a datelor” parte a SQL – și anume INSERT, UPDATE și DELETE.

Toate cele trei instrucțiuni vă permit să modificați datele din baza de date, fără a schimba structura, ci modificând conținutul. Ele sunt diferite de instrucțiunea SELECT, care vă permite doar să citiți datele din baza de date.

Atunci instrucțiunea INSERT vă permite să adăugați noi înregistrări în tabelul din baza de date. În general, este utilizată pentru a adăuga înregistrări la sfârșitul tabelului. Un lucru care este important ori de câte ori faceți INSERT este că datele trebuie să satisfacă toate regulile din baza de date.

Considerați imaginea prezentată mai jos:

În primul rând, analizăm tabelul Person ca exemplu. Aici avem cheia primară. Cheile primare din această bază de date sunt setate în prealabil să se incrementeze automat în SQL-ul nostru.

Nu inserăm niciodată noi înșine cheia primară, lăsăm acest lucru în seama bazei de date. Apoi avem un prenume și un nume de familie, care au steag NOT NULL. Diamantul solid indică faptul că aceste câmpuri sunt obligatorii, nu le putem sări peste ele.

Ultimul este timestamp, care este NOT NULL, dar, în același timp, valoarea implicită este timestamp-ul curent. Deci, din nou, aceasta ar seta automat un timestamp curent dacă nu punem nicio dată acolo.

Dacă trebuie să inserăm înregistrări într-un alt tabel, trebuie să ne asigurăm că datele există cu adevărat. Deci, în aceste tipuri de tabele end-to-end sau în orice fel de situație de cheie străină, trebuie să vă asigurați întotdeauna că datele pe care le inserați acolo reprezintă de fapt valori valide în tabelele la care faceți referire.

Să folosim din nou tabelul nostru Person ca punct de plecare.

Tabela Person la început este așa cum se arată.

Considerați un exemplu prezentat mai jos:

select * from person

insert into person

values (7, ‘Martin’, ‘Holzke’, ‘1980-05-05’, ‘xxx’, now());

Noi putem insera doar într-un singur tabel la un moment dat. Puteți îmbina datele folosind funcția SELECT, dar, în mod tradițional, puteți face manipulări de date într-un singur tabel la un moment dat.

Ceea ce am luat în considerare în exemplul de mai sus este „inserția implicită”. Aceasta înseamnă că nu menționăm coloanele pe care dorim să le populăm, trebuie să le punem pe toate exact în ordinea în care există tabelul.

Inserția va potrivi automat noile valori cu coloanele tabelului.

Nota: Pentru instrucțiunea insert, update și delete, trebuie să ținem cont de faptul că bazele de date nu au un buton de anulare. Deci, odată ce ați trimis orice valoare, aceasta este stocată în baza de date.

Din moment ce învățăm despre inserarea implicită, trebuie să specificăm valorile pentru fiecare coloană. Deci, a vedea tabelul bazei de date în același ecran ajută enorm.

Acum, dacă rulăm codul de mai sus, puteți vedea că tabelul a fost actualizat și înregistrarea inserată poate fi văzută în poziția 7.

De asemenea, instrucțiunea insert nu returnează nimic, spre deosebire de instrucțiunea SELECT. Acesta este motivul pentru care ecranul rămâne gol după aceea.

În continuare. să vedem versiunea explicită, a cărei utilizare este foarte recomandată.

select * from person

insert into person (firstname, lastname, managerid, dob)

values (‘Martin’, ‘Holzke’, 5, ‘1980-05-05’);

În exemplul de mai sus, am menționat doar 4 valori din tabel. Restul se populează implicit. Când executăm interogarea, vedem că noile valori au fost adăugate în tabel.

Valoarea cheii primare este 9 și nu 8, deoarece acea valoare deoarece a fost deja utilizată la un moment dat în baza de date.

Acest lucru este avantajos din punct de vedere al securității, deoarece cheia primară nu poate fi refolosită și erorile pot fi identificate.

Vezi, de asemenea, că valoarea coloanei ‘created’ este setată cu data și ora curentă, atunci când nu o menționăm în mod explicit.

În continuare, pentru a face inserții multiple, putem rula interogarea de mai sus, din nou și din nou, folosind valori diferite.

Inserțiile multiple pot fi efectuate folosind o singură instrucțiune insert. Adăugăm noul set de valori care sunt separate prin virgulă.

select * from person

insert into person (firstname, lastname, managerid, dob)

values (‘Martin’, ‘Holzke’, 5, ‘1980-05-05’),

(‘Fred’, ‘Flintstone’, 5, ‘1987-06-02’);

Imaginea următoare arată tabelul actualizat atunci când se fac inserții multiple.

În continuare, dorim să facem o inserție prin selectarea datelor din același tabel, astfel încât să puteți copia datele, ceea ce se dovedește destul de util pentru popularea unei baze de date. De exemplu, în migrarea datelor, doriți de fapt să copiați date în cadrul unei baze de date sau între diferite baze de date/tablouri.

Codul următor arată cum se copiază datele.

select * from person

insert into person (firstname, lastname, managerid, dob)

select concat(‘copy of’, firstname), lastname, managerid, dob

from person

where id>=10

Imaginea următoare prezintă valorile din tabel atunci când executăm doar instrucțiunea select.

Acum, executăm interogarea împreună cu instrucțiunea insert. Acest lucru se poate face doar prin selectarea instrucțiunilor pe care dorim să le executăm și prin executarea acelei interogări.

Imaginea următoare arată cum a fost modificat tabelul după executarea interogării de mai sus.

Acum am văzut cum copierea valorilor cu ajutorul instrucțiunii insert poate popula baza de date. În general, populăm baza de date atunci când executăm interogările într-un mediu de testare.

SQL – Interogare de actualizare

Interogarea sau instrucțiunea de actualizare este a doua dintre cele trei instrucțiuni din limbajul de manipulare a datelor, care sunt INSERT, UPDATE și DELETE. Așadar, interogarea UPDATE vă permite să modificați înregistrările existente într-un tabel.

Din moment ce vorbim despre SQL ca despre un limbaj bazat pe seturi, interogarea UPDATE va funcționa asupra unui set de înregistrări și nu asupra unei singure înregistrări (în funcție de modul în care executați UPDATE-ul).

Atunci, cum facem toate actualizările noastre?

Considerați interogarea dată mai jos:

select * from person

where id = 10

update person

set dob = ‘1990-01-01’

where id = 10

În interogarea de mai sus, selectăm mai întâi înregistrările din tabelul Person al căror id este egal cu 10. Imaginea următoare arată valoarea care este selectată.

Apoi folosim interogarea Update pentru a seta DOB pentru înregistrarea al cărei id este 10. Dacă nu folosim instrucțiunea where, se va actualiza fiecare înregistrare din tabelul nostru la valoarea setată.

La executarea interogării de mai sus, vedem că a fost actualizată valoarea DOB pentru cea de-a 10-a intrare din tabel.

Acum, pentru a actualiza mai multe lucruri dintr-o înregistrare, putem folosi lista separată prin virgulă.

Considerați interogarea prezentată mai jos:

select * from person

where id = 10

update person

set dob = ‘1990-01-01’, firstname = ‘Mike’

where id = 10

La executarea interogării de mai sus, obținem tabelul actualizat, după cum se arată:

În continuare, dacă dorim să modificăm mai mult de o înregistrare, putem face următoarele:

select * from person

where firstname = ‘Martin’

update person

set firstname = ‘Mike’

where firstname = ‘Martin’

În interogarea de mai sus, am schimbat valoarea prenumelui din Martin în Mike, oriunde ar fi existat anterior în tabelul Person.

Să luăm în considerare un exemplu diferit:

Tabela Persoană nu a avut posibilitatea de a face ceva mai multe lucruri numerice, așa că să luăm în considerare tabela Proiect.

Aici, încercăm să luăm un scenariu în care o manipulare a întregului tabel ar putea fi de dorit.

Tabela de proiect are trei înregistrări în acest moment, așa cum se arată.

Care înregistrare are o valoare de buget. Să spunem că dorim să le îmbunătățim pe toate cu aproximativ 20%. Putem face acest lucru folosind interogarea prezentată mai jos:

select * from project

update project

set budget = budget*1.2

Acum, interogarea de mai sus ar crește toate înregistrările din tabelul project cu douăzeci de procente.

Înregistrările actualizate sunt așa cum se arată mai jos:

În consecință, se pot efectua multe operații matematice asupra valorilor ca în exemplul prezentat mai sus.

Un lucru de reținut în timp ce se utilizează instrucțiunea UPDATE este să se folosească clauza ‘where’ ori de câte ori este cazul. În caz contrar, aceasta va actualiza valorile tuturor intrărilor din tabel.

SQL Instrucțiunea DELETE

Să studiem acum instrucțiunea DELETE, care este ultima instrucțiune din cele trei instrucțiuni ale limbajului de manipulare a datelor. Instrucțiunea DELETE are capacitatea de a șterge una sau mai multe înregistrări în întregime. Nu vorbim despre ștergerea conținutului coloanelor individuale, deoarece nu putem face acest lucru.

Dacă doriți să faceți acest lucru, trebuie să folosiți instrucțiunea UPDATE pentru a modifica conținutul coloanelor individuale. Deci, DELETE este ștergerea unei înregistrări complete sau a mai multor înregistrări complete.

Ca și în cazul instrucțiunilor INSERT și UPDATE, odată ce ștergeți o serie de înregistrări, acestea dispar și nu există nicio modalitate de a le recupera.

De asemenea, trebuie să ne asigurăm că atunci când ștergem orice înregistrare din tabel, acea intrare (sau valoarea sa) nu este utilizată de niciun alt tabel.

Tabela person are următoarele intrări inițiale.

Explicația DELETE poate fi utilizată așa cum se arată în următoarea interogare:

select * from person

where id = 10

delete from person

where id = 10

În interogarea prezentată mai sus, am șters înregistrarea a cărei valoare id era 10.

Nota: Nu uitați să folosiți clauza ‘where’ cu instrucțiunea DELETE. În caz contrar, instrucțiunea va goli rapid tabelul de persoane fără clauza ‘where’

Când executăm interogarea de mai sus, constatăm că înregistrarea cu valoarea id 10 a fost ștearsă, iar tabelul actualizat este așa cum se arată. Toate celelalte rămân, cu excepția celei cu cheia primară zece.

Există situații în care dorim să scăpăm de un întreg bloc. De exemplu, dorim să ștergem toate intrările de copii din tabelul person, așa cum se arată.

Interogarea pentru a șterge toate înregistrările de copie din tabelul person este prezentată mai jos:

select * from person

where firstname like ‘copy%’

delete from person

where firstname like ‘copy%’

În interogarea de mai sus, ‘copy%’ indică declarațiile care încep cu copy și continuă cu orice cuvânt în continuare.

La executarea interogării de mai sus, putem vedea că toate înregistrările care au început cu ‘Copy’ au fost șterse din tabelul person.

Nota: Se recomandă întotdeauna să se utilizeze instrucțiunea DELETE pentru un singur tabel la un moment dat. Nu se recomandă utilizarea instrucțiunii în cazul tabelelor comune.

Concluzie

Cu aceasta, am ajuns la sfârșitul acestei lecții despre „Manipularea datelor în SQL.” Următoarea lecție se concentrează pe controlul tranzacțiilor.

{{lectureCoursePreviewTitle}} View Transcript Watch Video

Pentru a afla mai multe, urmați cursul

SQL Training Certification Training

13535 Learners

Go to Course

Pentru a afla mai multe, urmați cursul

SQL Training Certification Training

13535 Learners

Go to Course

, urmați cursul

Instruire de certificare a formării SQL Mergeți la cursul

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.