Στην 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
: Ανακτά την τελευταία τιμή μιας στήλης στο αποτέλεσμα του ερωτήματος.