Pitanja za intervju za SQL programere: Uobičajena pitanja i odgovori za intervju za SQL- 3. dio

U SQL-u, koje ste vrste joins koristili i objasnite kako rade?

Odgovor:

  • INNER JOIN: Vraća retke s podudarnim podacima iz obje tablice.
  • LEFT JOIN: Vraća sve retke iz lijeve tablice i odgovarajuće retke iz desne tablice.
  • RIGHT JOIN: Vraća sve retke iz desne tablice i odgovarajuće retke iz lijeve tablice.
  • FULL JOIN: Vraća sve retke iz obje tablice, uključujući retke koji se ne podudaraju.

 

Objasnite ACID koncepte u SQL-u i njihovu ulogu u upravljanju transakcijama

Odgovor: ACID je kratica za Atomicity, Consistency, Isolation, Durability. Ovo su bitna svojstva u upravljanju transakcijama u SQL-u:

  • Atomicity osigurava da je transakcija u potpunosti obrađena ili da se uopće ne obradi.
  • Consistency osigurava da se podaci moraju pridržavati definiranih pravila, ograničenja i uvjeta.
  • Isolation osigurava da istodobne transakcije ne ometaju jedna drugu.
  • Durability osigurava da se nakon završetka transakcije promjene u bazi podataka sigurno i trajno spremaju.

 

Koja je razlika između ROW_NUMBER(), RANK(), DENSE_RANK() funkcija u SQL-u?

Odgovor: ROW_NUMBER(), RANK(), DENSE_RANK() svi se koriste za numeriranje redaka u rezultatu upita, ali imaju sljedeće razlike:

  • ROW_NUMBER(): Dodjeljuje kontinuirane brojeve recima u rezultatu upita, bez razmatranja duplikata.
  • RANK(): Dodjeljuje brojeve recima u rezultatu upita i preskače sljedeći broj u slučaju izjednačenja.
  • DENSE_RANK(): Dodjeljuje brojeve recima u rezultatu upita i ne preskače sljedeći broj u slučaju izjednačenja.

 

Kako koristiti window functions u SQL-u i dati primjer.

Odgovor: Window functions dopustiti izvođenje izračuna na skupu povezanih redaka bez mijenjanja rezultata glavnog upita. Na primjer, možemo koristiti prozorske funkcije za izračunavanje tekućih ukupnih iznosa ili dohvaćanje prvih N redaka unutar skupa rezultata.

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

 

Kako koristiti regularne izraze u SQL-u za podudaranje uzoraka

Odgovor: Regularni izrazi u SQL-u koriste se za pretraživanje složenih tekstualnih uzoraka. Često se koriste s LIKE operatorom ili funkcijama poput REGEXP_LIKE(u Oracleu) ili REGEXP_MATCHES(u PostgreSQL-u).

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

 

Kako koristiti JSON funkcije u SQL-u za rad s JSON podacima

Odgovor: JSON funkcije u SQL-u omogućuju postavljanje upita, umetanje, ažuriranje i brisanje podataka u JSON formatu u bazi podataka.

Na primjer, možemo koristiti funkcije kao što su JSON_VALUE, JSON_QUERY, JSON_MODIFY(u SQL Serveru) ili operatore kao što su ->, ->>, #>, #>> itd.(u PostgreSQL) za manipuliranje JSON svojstvima.

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

 

Napredne tehnike za optimizaciju SQL upita i podešavanje performansi baze podataka

Odgovor: Kako bismo optimizirali SQL upite i performanse baze podataka, možemo koristiti tehnike kao što su:

  • Korištenje indeksa za stupce koji se često traže.
  • Optimizacija JOIN i WHERE klauzule za učinkovito dohvaćanje podataka.
  • Korištenje funkcija prozora i označavanje stranica kada je potrebno.
  • Izbjegavanje SELECT * za dohvaćanje samo potrebnih stupaca.
  • Korištenje savjeta upita u nekim slučajevima.
  • Osiguravanje normalizacije podataka i uklanjanje duplikata.
  • Korištenje alata za praćenje performansi za praćenje i fino podešavanje baze podataka.

 

Objasnite kako koristiti SET operacije (UNION, INTERSECT, EXCEPT) u SQL-u

Odgovor: SET operacije (UNION, INTERSECT, EXCEPT) se koriste za kombiniranje i manipuliranje skupovima rezultata različitih upita.

  • UNION: Kombinira rezultate dva ili više upita u jedan skup podataka i uklanja duplikate.
  • INTERSECT: Vraća retke koji se pojavljuju u oba skupa rezultata upita.
  • EXCEPT: Vraća retke koji se pojavljuju u prvom skupu rezultata upita, ali ne i u drugom.

 

Kako koristiti funkcije upita poput LEAD, LAG, FIRST_VALUE, LAST_VALUE SQL-a

Odgovor: Funkcije upita poput LEAD, LAG, FIRST_VALUE, LAST_VALUE koriste se za dohvaćanje vrijednosti iz povezanih redaka unutar istog rezultata upita.

  • LEAD: Dohvaća vrijednost stupca iz sljedećeg retka u rezultatu upita.
  • LAG: Dohvaća vrijednost stupca iz prethodnog retka u rezultatu upita.
  • FIRST_VALUE: Dohvaća prvu vrijednost stupca u rezultatu upita.
  • LAST_VALUE: Dohvaća posljednju vrijednost stupca u rezultatu upita.