Ερωτήσεις συνέντευξης για προγραμματιστές SQL: Κοινές ερωτήσεις και απαντήσεις για συνέντευξη SQL- Μέρος 3

Στην SQL, ποιους τύπους joins έχετε χρησιμοποιήσει και εξηγήστε πώς λειτουργούν;

Απάντηση:

  • INNER JOIN: Επιστρέφει σειρές με αντίστοιχα δεδομένα και από τους δύο πίνακες.
  • LEFT JOIN: Επιστρέφει όλες τις σειρές από τον αριστερό πίνακα και τις αντίστοιχες γραμμές από τον δεξιό πίνακα.
  • RIGHT JOIN: Επιστρέφει όλες τις σειρές από τον δεξιό πίνακα και τις αντίστοιχες γραμμές από τον αριστερό πίνακα.
  • FULL JOIN: Επιστρέφει όλες τις σειρές και από τους δύο πίνακες, συμπεριλαμβανομένων των σειρών που δεν ταιριάζουν.

 

Εξηγήστε τις έννοιες ACID στην SQL και τον ρόλο τους στη διαχείριση συναλλαγών

Απάντηση: ACID σημαίνει Atomicity, Consistency, Isolation, Durability. Αυτές είναι βασικές ιδιότητες στη διαχείριση συναλλαγών σε SQL:

  • Atomicity διασφαλίζει ότι μια συναλλαγή είτε υποβάλλεται σε πλήρη επεξεργασία είτε δεν έχει υποστεί καμία επεξεργασία.
  • Consistency διασφαλίζει ότι τα δεδομένα πρέπει να συμμορφώνονται με καθορισμένους κανόνες, περιορισμούς και προϋποθέσεις.
  • Isolation διασφαλίζει ότι οι ταυτόχρονες συναλλαγές δεν παρεμβαίνουν μεταξύ τους.
  • Durability διασφαλίζει ότι μόλις ολοκληρωθεί μια συναλλαγή, οι αλλαγές στη βάση δεδομένων αποθηκεύονται με ασφάλεια και μόνιμα.

 

Ποια είναι η διαφορά μεταξύ ROW_NUMBER(), RANK(), DENSE_RANK() των συναρτήσεων στην SQL;

Απάντηση: ROW_NUMBER(), RANK(), DENSE_RANK() χρησιμοποιούνται όλα για την αρίθμηση σειρών σε ένα αποτέλεσμα ερωτήματος, αλλά έχουν τις ακόλουθες διαφορές:

  • ROW_NUMBER(): Εκχωρεί συνεχείς αριθμούς σε σειρές στο αποτέλεσμα του ερωτήματος, χωρίς να λαμβάνει υπόψη τα διπλότυπα.
  • RANK(): Εκχωρεί αριθμούς σε σειρές στο αποτέλεσμα του ερωτήματος και παραλείπει τον επόμενο αριθμό σε περίπτωση ισοπαλιών.
  • DENSE_RANK(): Εκχωρεί αριθμούς σε σειρές στο αποτέλεσμα του ερωτήματος και δεν παραλείπει τον επόμενο αριθμό σε περίπτωση ισοπαλιών.

 

Τρόπος χρήσης window functions σε SQL και δώστε ένα παράδειγμα.

Απάντηση: Window functions επιτρέψτε την εκτέλεση υπολογισμών σε ένα σύνολο σχετικών σειρών χωρίς να αλλάξετε το αποτέλεσμα του κύριου ερωτήματος. Για παράδειγμα, μπορούμε να χρησιμοποιήσουμε συναρτήσεις παραθύρου για να υπολογίσουμε τα τρέχοντα σύνολα ή να ανακτήσουμε τις κορυφαίες N σειρές μέσα σε ένα σύνολο αποτελεσμάτων.

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

 

Πώς να χρησιμοποιήσετε κανονικές εκφράσεις στην SQL για αντιστοίχιση προτύπων

Απάντηση: Οι τυπικές εκφράσεις στην SQL χρησιμοποιούνται για σύνθετες αναζητήσεις μοτίβων κειμένου. Συχνά χρησιμοποιούνται με τον LIKE τελεστή ή λειτουργίες όπως REGEXP_LIKE(στην Oracle) ή REGEXP_MATCHES(στην PostgreSQL).

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

 

Τρόπος χρήσης συναρτήσεων JSON στην SQL για εργασία με δεδομένα JSON

Απάντηση: Οι συναρτήσεις JSON στην SQL επιτρέπουν την υποβολή ερωτημάτων, την εισαγωγή, την ενημέρωση και τη διαγραφή δεδομένων σε μορφή JSON στη βάση δεδομένων.

Για παράδειγμα, μπορούμε να χρησιμοποιήσουμε συναρτήσεις όπως JSON_VALUE, JSON_QUERY, JSON_MODIFY(στον SQL Server) ή τελεστές όπως ->, ->>, #>, #>>, κ.λπ.(στη PostgreSQL) για να χειριστούμε τις ιδιότητες JSON.

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

 

Προηγμένες τεχνικές για βελτιστοποίηση ερωτημάτων SQL και ρύθμιση απόδοσης βάσης δεδομένων

Απάντηση: Για να βελτιστοποιήσουμε τα ερωτήματα SQL και την απόδοση της βάσης δεδομένων, μπορούμε να χρησιμοποιήσουμε τεχνικές όπως:

  • Χρήση ευρετηρίων για στήλες με συχνά ερωτήματα.
  • Βελτιστοποίηση JOIN και WHERE ρήτρες για αποτελεσματική ανάκτηση δεδομένων.
  • Χρήση λειτουργιών παραθύρου και σελιδοποίησης όταν είναι απαραίτητο.
  • Αποφυγή SELECT * για ανάκτηση μόνο των απαραίτητων στηλών.
  • Χρήση υποδείξεων ερωτήματος σε ορισμένες περιπτώσεις.
  • Εξασφάλιση κανονικοποίησης δεδομένων και αφαίρεση διπλότυπων.
  • Χρησιμοποιώντας εργαλεία παρακολούθησης απόδοσης για την παρακολούθηση και τη λεπτομέρεια της βάσης δεδομένων.

 

Εξηγήστε πώς να χρησιμοποιείτε SET λειτουργίες (UNION, INTERSECT, EXCEPT) στο SQl

Απάντηση: SET Οι λειτουργίες (UNION, INTERSECT, EXCEPT) χρησιμοποιούνται για τον συνδυασμό και τον χειρισμό συνόλων αποτελεσμάτων διαφορετικών ερωτημάτων.

  • UNION: Συνδυάζει τα αποτελέσματα δύο ή περισσότερων ερωτημάτων σε ένα ενιαίο σύνολο δεδομένων και αφαιρεί τα διπλότυπα.
  • INTERSECT: Επιστρέφει σειρές που εμφανίζονται και στα δύο σύνολα αποτελεσμάτων ερωτημάτων.
  • EXCEPT: Επιστρέφει σειρές που εμφανίζονται στο πρώτο σύνολο αποτελεσμάτων ερωτήματος αλλά όχι στο δεύτερο.

 

Πώς να χρησιμοποιήσετε συναρτήσεις ερωτήματος όπως LEAD, LAG, FIRST_VALUE, LAST_VALUE στην SQL

Απάντηση: Οι συναρτήσεις ερωτήματος όπως LEAD, LAG, FIRST_VALUE, LAST_VALUE χρησιμοποιούνται για την ανάκτηση τιμών από σχετικές σειρές μέσα στο ίδιο αποτέλεσμα ερωτήματος.

  • LEAD: Λαμβάνει την τιμή μιας στήλης από την επόμενη σειρά στο αποτέλεσμα του ερωτήματος.
  • LAG: Λαμβάνει την τιμή μιας στήλης από την προηγούμενη σειρά στο αποτέλεσμα του ερωτήματος.
  • FIRST_VALUE: Ανακτά την πρώτη τιμή μιας στήλης στο αποτέλεσμα του ερωτήματος.
  • LAST_VALUE: Ανακτά την τελευταία τιμή μιας στήλης στο αποτέλεσμα του ερωτήματος.