Î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
șiWHERE
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.