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
irWHERE
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ę.