Table of Contents
Η θεωρία συνόλων παρέχει ένα θεμέλιο για την κατανόηση και την κατασκευή σύνθετων ερωτημάτων δεδομένων στο SQL. Με την εφαρμογή αρχών όπως τα συνδικάτα, οι διασταυρώσεις και οι διαφορές, οι χρήστες μπορούν να ανακτήσουν αποτελεσματικά και να χειριστούν δεδομένα από πολλαπλούς πίνακες ή σύνολα δεδομένων. Αυτό το άρθρο παρουσιάζει πρακτικά παραδείγματα του πώς οι έννοιες θεωρίας συνόλων χρησιμοποιούνται στο SQL για να χειριστούν σύνθετες εργασίες ανάκτησης δεδομένων.
Χρήση της Ένωσης για το συνδυασμό συνόλων δεδομένων
Ο φορέας εκμετάλλευσης της Ένωσης στο SQL συγχωνεύει τα αποτελέσματα δύο ή περισσότερων δηλώσεων SELECT σε ένα ενιαίο σύνολο αποτελεσμάτων. Εξαλείφει τις δύο σειρές εκτός εάν χρησιμοποιηθεί το UNIN ALL. Αυτή η λειτουργία είναι χρήσιμη όταν συνδυάζει δεδομένα από παρόμοιους πίνακες ή ερωτήματα.
Παράδειγμα:
Ανάκτηση όλων των μοναδικών αναγνωριστικών πελατών από δύο διαφορετικές περιφέρειες:
ΕΠΙΛΟΓΗ πελατών id ΑΠΟ την περιοχή1 πελάτες
ΕΝΩΣΗ
ΕΠΙΛΟΓΗ πελατών id ΑΠΟ την περιοχή2 πελάτες
Εφαρμογή του ΕΣΩΤΕΡΙΚΟΥ συστήματος για κοινά δεδομένα
Ο χειριστής INTERSECT επιστρέφει μόνο τις σειρές που υπάρχουν και στα δύο σύνολα αποτελεσμάτων. Είναι χρήσιμο για την εύρεση κοινών στοιχείων σε σύνολα δεδομένων.
Παράδειγμα:
Βρείτε πελάτες που αγόρασαν προϊόντα και στις δύο κατηγορίες Α και Β:
ΕΠΙΛΟΓΗ πελάτη id ΑΠΟ αγορές κατηγορία a[
INTERSECT
SELECT customer id ΑΠΟ αγορές κατηγορία b·
Χρήση ΕΞαίρεσης για να Βρείτε Διαφορές
Ο χειριστής της EXCEPT ανακτά σειρές από το πρώτο ερώτημα που δεν είναι παρόντες στο δεύτερο. Βοηθά στον εντοπισμό μοναδικών σημείων δεδομένων.
Παράδειγμα:
Καταστήστε πελάτες που αγόρασαν στην κατηγορία Α αλλά όχι στην κατηγορία Β:
ΕΠΙΛΟΓΗ πελάτη id ΑΠΟ αγορές κατηγορία a
Εξαιρουμένης
ΕΠΙΛΟΓΗ πελάτη id ΑΠΟ αγορές κατηγορία b;
Πρακτική εφαρμογή σε πολύπλοκες ερωτήσεις
Συνδυάζοντας την ΕΝΩΣΗ, INTERSECT, και EXCEPT επιτρέπει την ακριβή εξαγωγή δεδομένων με βάση συγκεκριμένες συνθήκες.
Για παράδειγμα, για να βρείτε πελάτες που αγόρασαν προϊόντα της κατηγορίας Α ή Β αλλά όχι και τα δύο, μπορείτε να συνδυάσετε τις εργασίες INTERSECT και EXPT.
Παράδειγμα:
ΕΠΙΛΟΓΗ πελατών id ΑΠΟ αγορές κατηγορία a
ΕΝΩΣΗ
ΕΠΙΛΟΓΗ πελατών id ΑΠΟ αγορές κατηγορία b
ΕΚΤΟΣ
ΕΠΙΛΟΓΗ πελατών id ΑΠΟ αγορές κατηγορία a
INTERSECT
] ΕΠΙΛΕΓΕΙ πελάτη id ΑΠΟ αγορές κατηγορία b·