Interviu klausimai SQL kūrėjams: bendrieji SQL interviu klausimai ir atsakymai – 3 dalis

Kokius SQL tipus joins naudojote ir paaiškinkite, kaip jie veikia?

Atsakymas:

  • INNER JOIN: pateikia eilutes su atitinkamais duomenimis iš abiejų lentelių.
  • LEFT JOIN: grąžina visas kairiosios lentelės eilutes ir atitinkamas dešiniosios lentelės eilutes.
  • RIGHT JOIN: grąžina visas eilutes iš dešinės lentelės ir atitinkamas eilutes iš kairiosios lentelės.
  • FULL JOIN: pateikia visas abiejų lentelių eilutes, įskaitant nesutampančius.

 

Paaiškinkite ACID sąvokas SQL ir jų vaidmenį operacijų valdyme

Atsakymas: ACID reiškia Atomicity, Consistency, Isolation, Durability. Tai yra esminės SQL operacijų valdymo savybės:

  • Atomicity užtikrina, kad operacija būtų visiškai apdorota arba visai neapdorota.
  • Consistency užtikrina, kad duomenys turi atitikti apibrėžtas taisykles, apribojimus ir sąlygas.
  • Isolation užtikrina, kad vienu metu vykdomos operacijos netrukdytų viena kitai.
  • Durability užtikrina, kad atlikus operaciją, pakeitimai duomenų bazėje būtų išsaugoti saugiai ir visam laikui.

 

Kuo skiriasi ROW_NUMBER(), RANK(), DENSE_RANK() funkcijos SQL?

Atsakymas: ROW_NUMBER(), RANK(), DENSE_RANK() visi yra naudojami eilučių numeravimui užklausos rezultate, tačiau jie turi šiuos skirtumus:

  • ROW_NUMBER(): užklausos rezultato eilutėms priskiria ištisinius skaičius, neatsižvelgdamas į pasikartojančius veiksnius.
  • RANK(): priskiria numerius užklausos rezultato eilutėms ir praleidžia kitą skaičių lygiųjų atveju.
  • DENSE_RANK(): priskiria numerius užklausos rezultato eilutėms ir nepraleidžia kito skaičiaus lygiųjų atveju.

 

Kaip naudoti window functions SQL, ir pateikite pavyzdį.

Atsakymas: Window functions leisti atlikti skaičiavimus susijusių eilučių rinkinyje nekeičiant pagrindinės užklausos rezultato. Pavyzdžiui, galime naudoti langų funkcijas, kad apskaičiuotume einamąsias sumas arba gautume aukščiausių N eilučių rezultatų rinkinyje.

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

 

Kaip naudoti SQL reguliariąsias išraiškas šablonų atitikimui

Atsakymas: Įprastos išraiškos SQL yra naudojamos sudėtingoms teksto šablonų paieškoms. Jie dažnai naudojami su LIKE operatoriumi arba tokiomis funkcijomis kaip REGEXP_LIKE(Oracle) arba REGEXP_MATCHES(PostgreSQL).

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

 

Kaip naudoti JSON funkcijas SQL, kad galėtumėte dirbti su JSON duomenimis

Atsakymas: JSON funkcijos SQL leidžia duomenų bazėje pateikti užklausas, įterpti, atnaujinti ir ištrinti duomenis JSON formatu.

Pavyzdžiui, galime naudoti tokias funkcijas kaip JSON_VALUE, JSON_QUERY, JSON_MODIFY(SQL serveryje) arba operatorius, pvz., ->, ->>, #>, #>> ir tt(PostgreSQL), norėdami valdyti JSON ypatybes.

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

 

Pažangūs SQL užklausų optimizavimo ir duomenų bazės našumo derinimo būdai

Atsakymas: Norėdami optimizuoti SQL užklausas ir duomenų bazės našumą, galime naudoti tokius metodus kaip:

  • Dažnai užklausų stulpelių indeksų naudojimas.
  • Optimizavimas JOIN ir WHERE sąlygos efektyviam duomenų gavimui.
  • Jei reikia, naudokite langų funkcijas ir puslapių puslapius.
  • Venkite SELECT *, kad gautumėte tik būtinus stulpelius.
  • Kai kuriais atvejais naudokite užklausos patarimus.
  • Duomenų normalizavimo ir dublikatų pašalinimo užtikrinimas.
  • Naudojant našumo stebėjimo įrankius duomenų bazei sekti ir koreguoti.

 

Paaiškinkite, kaip naudoti SET operacijas (UNION, INTERSECT, EXCEPT) SQL

Atsakymas: SET operacijos (UNION, INTERSECT, EXCEPT) naudojamos skirtingų užklausų rezultatų rinkiniams sujungti ir jais valdyti.

  • UNION: sujungia dviejų ar daugiau užklausų rezultatus į vieną duomenų rinkinį ir pašalina pasikartojančius duomenis.
  • INTERSECT: pateikia eilutes, kurios rodomos abiejuose užklausos rezultatų rinkiniuose.
  • EXCEPT: pateikia eilutes, kurios rodomos pirmajame užklausos rezultatų rinkinyje, bet ne antrajame.

 

Kaip naudoti užklausos funkcijas kaip LEAD, LAG, FIRST_VALUE, LAST_VALUE SQL

Atsakymas: Užklausos funkcijos, pvz. LEAD, LAG, FIRST_VALUE, LAST_VALUE, naudojamos norint gauti reikšmes iš susijusių eilučių tame pačiame užklausos rezultate.

  • LEAD: Gauna stulpelio reikšmę iš kitos užklausos rezultato eilutės.
  • LAG: Gauna stulpelio reikšmę iš ankstesnės užklausos rezultato eilutės.
  • FIRST_VALUE: nuskaito pirmąją stulpelio reikšmę užklausos rezultate.
  • LAST_VALUE: nuskaito paskutinę užklausos rezultato stulpelio reikšmę.