Intervista Mistoqsijiet għall-Iżviluppaturi SQL: Intervista SQL Komuni Q&A- Parti 3

Fl-SQL, liema tipi joins użajt, u spjega kif jaħdmu?

Tweġiba:

  • INNER JOIN: Jirritorna ringieli b'dejta li taqbel miż-żewġ tabelli.
  • LEFT JOIN: Jirritorna r-ringieli kollha mit-tabella tax-xellug u r-ringieli li jaqblu mit-tabella tal-lemin.
  • RIGHT JOIN: Jirritorna r-ringieli kollha mit-tabella tal-lemin u r-ringieli li jaqblu mit-tabella tax-xellug.
  • FULL JOIN: Jirritorna r-ringieli kollha miż-żewġ tabelli, inklużi r-ringieli li ma jaqblux.

 

Spjega l-kunċetti ACID fl-SQL u r-rwol tagħhom fil-ġestjoni tat-tranżazzjonijiet

Tweġiba: ACID tirreferi għal Atomicity, Consistency, Isolation, Durability. Dawn huma proprjetajiet essenzjali fil-ġestjoni tat-tranżazzjonijiet fl-SQL:

  • Atomicity jiżgura li tranżazzjoni jew tiġi pproċessata kompletament jew ma tiġi pproċessata xejn.
  • Consistency jiżgura li d-dejta trid taderixxi mar-regoli, restrizzjonijiet u kundizzjonijiet definiti.
  • Isolation jiżgura li t-tranżazzjonijiet konkorrenti ma jfixklux lil xulxin.
  • Durability jiżgura li ladarba tranżazzjoni titlesta, il-bidliet fid-database jiġu ssejvjati b'mod sigur u permanenti.

 

X'inhi d-differenza bejn ROW_NUMBER(), RANK(), DENSE_RANK() il-funzjonijiet fl-SQL?

Tweġiba: ROW_NUMBER(), RANK(), DENSE_RANK() huma kollha użati għan-numerar ta' ringieli f'riżultat ta' mistoqsija, iżda għandhom id-differenzi li ġejjin:

  • ROW_NUMBER(): Tassenja numri kontinwi għal ringieli fir-riżultat tal-mistoqsija, mingħajr ma tqis id-duplikati.
  • RANK(): Tassenja numri għal ringieli fir-riżultat tal-mistoqsija u taqbeż in-numru li jmiss f'każ ta' rabtiet.
  • DENSE_RANK(): Tassenja numri għal ringieli fir-riżultat tal-mistoqsija u ma taqbiżx in-numru li jmiss f'każ ta' rabtiet.

 

Kif tuża window functions fl-SQL, u agħti eżempju.

Tweġiba: Window functions jippermettu li twettaq kalkoli fuq sett ta' ringieli relatati mingħajr ma tbiddel ir-riżultat tal-mistoqsija prinċipali. Pereżempju, nistgħu nużaw il-funzjonijiet tat-twieqi biex nikkalkulaw it-totali kurrenti jew irkupraw N ringieli ta 'fuq fi ħdan sett ta' riżultati.

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

 

Kif tuża espressjonijiet regolari fl-SQL għat-tqabbil tal-mudelli

Tweġiba: Espressjonijiet regolari fl-SQL jintużaw għal tfittxijiet kumplessi tal-mudelli tat-test. Ħafna drabi jintużaw mal- LIKE operatur jew funzjonijiet bħal REGEXP_LIKE(f'Oracle) jew REGEXP_MATCHES(f'PostgreSQL).

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

 

Kif tuża l-funzjonijiet JSON fl-SQL biex taħdem mad-dejta JSON

Tweġiba: Il-funzjonijiet JSON fl-SQL jippermettu mistoqsija, inserzjoni, aġġornament, u tħassir tad-dejta fil-format JSON fid-database.

Pereżempju, nistgħu nużaw funzjonijiet bħal JSON_VALUE, JSON_QUERY, JSON_MODIFY(f'SQL Server), jew operaturi bħal ->, ->>, #>, #>>, eċċ(f'PostgreSQL) biex jimmanipulaw proprjetajiet JSON.

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

 

Tekniki avvanzati għall-ottimizzazzjoni tal-mistoqsijiet SQL u l-irfinar tal-prestazzjoni tad-database

Tweġiba: Biex nottimizzaw il-mistoqsijiet SQL u l-prestazzjoni tad-database, nistgħu nużaw tekniki bħal:

  • L-użu ta' indiċi għal kolonni li jsiru mistoqsijiet ta' spiss.
  • Ottimizzazzjoni JOIN u WHERE klawsoli għall-irkupru effiċjenti tad-dejta.
  • Jutilizzaw il-funzjonijiet tat-tieqa u l-paġnar meta meħtieġ.
  • Evita SELECT * li tirkupra kolonni meħtieġa biss.
  • L-użu ta' ħjiel ta' mistoqsija f'xi każijiet.
  • L-iżgurar tan-normalizzazzjoni tad-dejta u t-tneħħija tad-duplikati.
  • Jimpjegaw għodod ta 'monitoraġġ tal-prestazzjoni biex jintraċċaw u jirfinaw id-database.

 

Spjega kif tuża SET operazzjonijiet (UNION, INTERSECT, EXCEPT) f'SQL

Tweġiba: SET l-operazzjonijiet (UNION, INTERSECT, EXCEPT) jintużaw biex jgħaqqdu u jimmanipulaw settijiet ta 'riżultati ta' mistoqsijiet differenti.

  • UNION: Tgħaqqad ir-riżultati ta' żewġ mistoqsijiet jew aktar f'sett ta' dejta wieħed u tneħħi d-duplikati.
  • INTERSECT: Jirritorna ringieli li jidhru fiż-żewġ settijiet ta’ riżultati ta’ mistoqsija.
  • EXCEPT: Jirritorna ringieli li jidhru fl-ewwel sett ta’ riżultat tal-mistoqsija iżda mhux fit-tieni wieħed.

 

Kif tuża funzjonijiet ta' mistoqsija bħal LEAD, LAG, FIRST_VALUE, LAST_VALUE fl-SQL

Tweġiba: Funzjonijiet ta' mistoqsija bħal LEAD, LAG, FIRST_VALUE, LAST_VALUE huma użati biex jiġu rkuprati valuri minn ringieli relatati fl-istess riżultat ta' mistoqsija.

  • LEAD: Iġib il-valur ta' kolonna mir-ringiela li jmiss fir-riżultat tal-mistoqsija.
  • LAG: Iġib il-valur ta' kolonna mir-ringiela ta' qabel fir-riżultat tal-mistoqsija.
  • FIRST_VALUE: Jiġbor l-ewwel valur ta' kolonna fir-riżultat tal-mistoqsija.
  • LAST_VALUE: Jiġbor l-aħħar valur ta' kolonna fir-riżultat tal-mistoqsija.