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:
Atomicityosigurava da je transakcija u potpunosti obrađena ili da se uopće ne obradi.Consistencyosigurava da se podaci moraju pridržavati definiranih pravila, ograničenja i uvjeta.Isolationosigurava da istodobne transakcije ne ometaju jedna drugu.Durabilityosigurava 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
JOINiWHEREklauzule 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.

