Întrebări de interviu pentru dezvoltatorii SQL: Întrebări și răspunsuri comune la interviu SQL- Partea 3

În SQL, ce tipuri de joins ați folosit și explicați cum funcționează?

Răspuns:

  • INNER JOIN: returnează rânduri cu date care se potrivesc din ambele tabele.
  • LEFT JOIN: returnează toate rândurile din tabelul din stânga și rândurile care se potrivesc din tabelul din dreapta.
  • RIGHT JOIN: returnează toate rândurile din tabelul din dreapta și rândurile care se potrivesc din tabelul din stânga.
  • FULL JOIN: returnează toate rândurile din ambele tabele, inclusiv rândurile care nu se potrivesc.

 

Explicați conceptele ACID în SQL și rolul lor în gestionarea tranzacțiilor

Răspuns: ACID înseamnă Atomicity, Consistency, Isolation, Durability. Acestea sunt proprietăți esențiale în gestionarea tranzacțiilor în SQL:

  • Atomicity asigură că o tranzacție este fie complet procesată, fie deloc procesată.
  • Consistency se asigură că datele trebuie să respecte reguli, constrângeri și condiții definite.
  • Isolation se asigură că tranzacțiile concurente nu interferează între ele.
  • Durability se asigură că odată ce o tranzacție este finalizată, modificările din baza de date sunt salvate în siguranță și permanent.

 

Care este diferența dintre ROW_NUMBER(), RANK(), DENSE_RANK() funcțiile din SQL?

Răspuns: ROW_NUMBER(), RANK(), DENSE_RANK() toate sunt folosite pentru numerotarea rândurilor dintr-un rezultat al unei interogări, dar au următoarele diferențe:

  • ROW_NUMBER(): atribuie numere continue rândurilor din rezultatul interogării, fără a lua în considerare duplicatele.
  • RANK(): atribuie numere rândurilor din rezultatul interogării și omite numărul următor în caz de egalitate.
  • DENSE_RANK(): Atribuie numere rândurilor din rezultatul interogării și nu omite numărul următor în caz de egalitate.

 

Cum se utilizează window functions în SQL și oferiți un exemplu.

Răspuns: Window functions permiteți efectuarea de calcule pe un set de rânduri înrudite fără a modifica rezultatul interogării principale. De exemplu, putem folosi funcții de fereastră pentru a calcula totalurile curente sau pentru a prelua primele N rânduri dintr-un set de rezultate.

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

Cum să utilizați expresiile regulate în SQL pentru potrivirea modelelor

Răspuns: Expresiile regulate în SQL sunt folosite pentru căutări complexe de modele de text. Ele sunt adesea folosite cu LIKE operatorul sau cu funcții precum REGEXP_LIKE(în Oracle) sau REGEXP_MATCHES(în PostgreSQL).

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

Cum să utilizați funcțiile JSON în SQL pentru a lucra cu datele JSON

Răspuns: Funcțiile JSON din SQL permit interogarea, inserarea, actualizarea și ștergerea datelor în format JSON din baza de date.

De exemplu, putem folosi funcții precum JSON_VALUE, JSON_QUERY, JSON_MODIFY(în SQL Server) sau operatori precum ->, ->>, #>, #>> etc.(în PostgreSQL) pentru a manipula proprietățile JSON.

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

Tehnici avansate pentru optimizarea interogărilor SQL și reglarea performanței bazei de date

Răspuns: Pentru a optimiza interogările SQL și performanța bazei de date, putem folosi tehnici precum:

  • Utilizarea indecșilor pentru coloanele interogate frecvent.
  • Optimizare JOIN și WHERE clauze pentru recuperarea eficientă a datelor.
  • Folosind funcțiile ferestrei și paginarea atunci când este necesar.
  • Evitarea SELECT * pentru a prelua numai coloanele necesare.
  • Utilizarea indicii de interogare în unele cazuri.
  • Asigurarea normalizării datelor și eliminarea duplicatelor.
  • Folosind instrumente de monitorizare a performanței pentru a urmări și ajusta baza de date.

 

Explicați cum să utilizați SET operațiunile (UNION, INTERSECT, EXCEPT) în SQL

Răspuns: SET operațiunile (UNION, INTERSECT, EXCEPT) sunt folosite pentru a combina și manipula seturi de rezultate ale diferitelor interogări.

  • UNION: combină rezultatele a două sau mai multe interogări într-un singur set de date și elimină duplicatele.
  • INTERSECT: returnează rândurile care apar în ambele seturi de rezultate ale interogării.
  • EXCEPT: returnează rândurile care apar în primul set de rezultate de interogare, dar nu și în al doilea.

 

Cum să utilizați funcțiile de interogare ca LEAD, LAG, FIRST_VALUE, LAST_VALUE în SQL

Răspuns: Funcțiile de interogare, cum ar fi, LEAD, LAG, FIRST_VALUE, LAST_VALUE sunt folosite pentru a prelua valori din rândurile asociate din același rezultat al interogării.

  • LEAD: Obține valoarea unei coloane de pe următorul rând din rezultatul interogării.
  • LAG: Obține valoarea unei coloane din rândul anterior din rezultatul interogării.
  • FIRST_VALUE: Preia prima valoare a unei coloane din rezultatul interogării.
  • LAST_VALUE: Preia ultima valoare a unei coloane din rezultatul interogării.