Interjúkérdések SQL-fejlesztőknek: Gyakori SQL-interjú kérdések és válaszok – 3. rész

SQL-ben milyen típusokat joins használt, és magyarázza el, hogyan működnek?

Válasz:

  • INNER JOIN: Egyező adatokkal rendelkező sorokat ad vissza mindkét táblából.
  • LEFT JOIN: Visszaadja az összes sort a bal oldali táblázatból és a megfelelő sorokat a jobb oldali táblázatból.
  • RIGHT JOIN: Visszaadja az összes sort a jobb oldali táblázatból és a megfelelő sorokat a bal oldali táblázatból.
  • FULL JOIN: Visszaadja mindkét tábla összes sorát, beleértve a nem egyező sorokat is.

 

Ismertesse az ACID-fogalmakat az SQL-ben és a tranzakciókezelésben betöltött szerepüket

Válasz: ACID jelentése Atomicity, Consistency, Isolation, Durability. Ezek alapvető tulajdonságok az SQL tranzakciókezelésében:

  • Atomicity biztosítja, hogy a tranzakciót vagy teljesen feldolgozzák, vagy egyáltalán nem dolgozzák fel.
  • Consistency biztosítja, hogy az adatoknak meg kell felelniük a meghatározott szabályoknak, megszorításoknak és feltételeknek.
  • Isolation biztosítja, hogy az egyidejű tranzakciók ne zavarják egymást.
  • Durability biztosítja, hogy a tranzakció befejezése után az adatbázisban lévő változások biztonságosan és tartósan mentésre kerüljenek.

 

Mi a különbség ROW_NUMBER(), RANK(), DENSE_RANK() az SQL függvényei között?

Válasz: ROW_NUMBER(), RANK(), DENSE_RANK() mindegyik sorszámozásra szolgál a lekérdezés eredményében, de a következő különbségek vannak:

  • ROW_NUMBER(): Folyamatos számokat rendel a lekérdezés eredménye soraihoz, anélkül, hogy figyelembe venné az ismétlődéseket.
  • RANK(): Számokat rendel a sorokhoz a lekérdezés eredményében, és holtverseny esetén kihagyja a következő számot.
  • DENSE_RANK(): Számokat rendel a sorokhoz a lekérdezés eredményében, és döntetlen esetén nem hagyja ki a következő számot.

 

Hogyan kell használni window functions az SQL-ben, és adjon példát.

Válasz: Window functions lehetővé teszi a számítások végrehajtását egy sor kapcsolódó soron a fő lekérdezés eredményének megváltoztatása nélkül. Például ablakfüggvények segítségével kiszámíthatjuk a futó összegeket, vagy lekérhetjük az eredményhalmaz felső N sorát.

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

 

Reguláris kifejezések használata SQL-ben mintaillesztéshez

Válasz: Az SQL reguláris kifejezései összetett szövegminta keresésekhez használatosak. Gyakran használják az operátorral LIKE vagy függvényekkel, mint például REGEXP_LIKE(Oracle-ban) vagy REGEXP_MATCHES(PostgreSQL-ben).

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

 

JSON-függvények használata az SQL-ben a JSON-adatokkal való munkavégzéshez

Válasz: Az SQL JSON-függvényei lehetővé teszik az adatok lekérdezését, beszúrását, frissítését és törlését JSON formátumban az adatbázisban.

Például használhatunk olyan függvényeket, mint a JSON_VALUE, JSON_QUERY, JSON_MODIFY(az SQL Serverben), vagy olyan operátorokat, mint a ->, ->>, #>, #>> stb.(PostgreSQL-ben) a JSON-tulajdonságok kezeléséhez.

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

 

Speciális technikák az SQL lekérdezések optimalizálásához és az adatbázis teljesítményének hangolásához

Válasz: Az SQL-lekérdezések és az adatbázis-teljesítmény optimalizálásához olyan technikákat használhatunk, mint:

  • Indexek használata gyakran lekérdezett oszlopokhoz.
  • Optimalizálás JOIN és WHERE záradékok a hatékony adatvisszakereséshez.
  • Szükség esetén ablakfunkciók és oldalszámozás használata.
  • Kerülje el SELECT a * jelet, ha csak a szükséges oszlopokat szeretné lekérni.
  • Lekérdezési tippek használata bizonyos esetekben.
  • Az adatok normalizálásának biztosítása és az ismétlődések eltávolítása.
  • Teljesítményfigyelő eszközök használata az adatbázis nyomon követésére és finomhangolására.

 

SET Ismertesse a műveletek használatát (UNION, INTERSECT, EXCEPT) SQL-ben

Válasz: SET A műveletek (UNION, INTERSECT, EXCEPT) a különböző lekérdezések eredményhalmazainak kombinálására és manipulálására szolgálnak.

  • UNION: Két vagy több lekérdezés eredményeit egyetlen adathalmazba egyesíti, és eltávolítja az ismétlődéseket.
  • INTERSECT: Olyan sorokat ad vissza, amelyek mindkét lekérdezési eredményhalmazban megjelennek.
  • EXCEPT: Azokat a sorokat adja vissza, amelyek az első lekérdezés eredményhalmazában megjelennek, de a másodikban nem.

 

Hogyan használjunk lekérdezési függvényeket, mint LEAD, LAG, FIRST_VALUE, LAST_VALUE az SQL-ben

Válasz: Az olyan lekérdezési függvények, mint a lekérdezési függvények, LEAD, LAG, FIRST_VALUE, LAST_VALUE arra szolgálnak, hogy értékeket vonjanak le ugyanazon lekérdezési eredményen belüli kapcsolódó sorokból.

  • LEAD: A lekérdezés eredménye következő sorából kapja meg az oszlop értékét.
  • LAG: A lekérdezés eredményének előző sorából kapja meg az oszlop értékét.
  • FIRST_VALUE: Lekéri egy oszlop első értékét a lekérdezés eredményében.
  • LAST_VALUE: Lekéri egy oszlop utolsó értékét a lekérdezés eredményében.