Εικόνα από Freepik
Η SQL, ή Standard Query Language, είναι μια γλώσσα προγραμματισμού για τη διαχείριση και το χειρισμό δεδομένων μέσα σε ένα σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (RDBMS). Είναι μια τυπική γλώσσα που χρησιμοποιείται σε πολλές εταιρείες για να βοηθήσει τις επιχειρήσεις να έχουν ομαλή πρόσβαση στα δεδομένα. Επειδή χρησιμοποιείται ευρέως, η απασχόληση συνήθως αναφέρει την SQL ως μία από τις απαραίτητες δεξιότητες. Γι' αυτό είναι απαραίτητο να μάθετε για την SQL.
Ένα από τα κοινά προβλήματα για τους ανθρώπους όταν μαθαίνουν SQL είναι η κατανόηση των ερωτημάτων, κυρίως όταν τα γράφει άλλο άτομο. Θα εργαζόμασταν ως ομάδα στις εταιρείες και συχνά χρειάζεται να διαβάσουμε και να κατανοήσουμε τα ερωτήματά τους SQL. Επομένως, πρέπει να εξασκηθούμε στην αποδόμηση των ερωτημάτων SQL και να τα κατανοήσουμε.
Αυτό το άρθρο θα ακολουθήσει μια διαδικασία βήμα προς βήμα για την ανάγνωση και την κατανόηση των ερωτημάτων SQL. Πώς θα το κάνουμε αυτό; Ας μπούμε σε αυτό.
Το πρώτο πράγμα που πρέπει να κάνουμε όταν αντιμετωπίζουμε ένα ερώτημα SQL είναι να κατανοήσουμε τη γενική πρόθεση των ερωτημάτων SQL. Η γενική πρόθεση δεν σημαίνει ότι γνωρίζουμε πλήρως τη δομή του ερωτήματος. είναι περισσότερο για τις συνολικές ροές.
Θα πρέπει να κατανοήσουμε τα τυπικά ερωτήματα SQL για να κατανοήσουμε το γενικό ερώτημα SQL. Τα περισσότερα ερωτήματα SQL ξεκινούν με το SELECT ρήτρα και ακολουθούν με το ΑΠΟ ρήτρα. Συνεχίζοντας από εκεί, τα ερωτήματα ακολουθούνται συχνότερα από Ενώνω, ΠΟΥ, GROUP BY, ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ, και HAVING ρήτρες.
Οι παραπάνω όροι είναι τυπικές στα ερωτήματα SQL που πρέπει να κατανοήσουμε. Για κάθε ρήτρα, οι λειτουργίες τους είναι:
- SELECT: Ποιες στήλες πρέπει να ληφθούν από τον πίνακα
- ΑΠΟ: Από ποιον πίνακα προήλθαν τα δεδομένα
- Ενώνω: Συνδυάστε πίνακες με το καθορισμένο αναγνωριστικό
- ΠΟΥ: Φιλτράρισμα δεδομένων με βάση την κατάσταση
- GROUP BY: Οργανώστε τα δεδομένα με βάση την τιμή της στήλης και επιτρέψτε την εκτέλεση της συνάρτησης συνάθροισης.
- ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ: Τακτοποιήστε τη σειρά των αποτελεσμάτων δεδομένων με βάση τη συγκεκριμένη στήλη
- HAVING: Η συνθήκη φίλτρου για τη συνάρτηση συνάθροισης με την οποία δεν μπορεί να καθοριστεί ΠΟΥ
Αυτές είναι οι τυπικές ρήτρες και τι πρέπει να βρείτε στην αρχή κατά την κατανόηση της γενικής δομής ερωτημάτων SQL. Ας χρησιμοποιήσουμε το παράδειγμα κώδικα για να μάθουμε περαιτέρω.
SELECT
customers.name,
purchases.product,
SUM(price) as total_price
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
WHERE
purchases.category = 'kitchen'
GROUP BY
customers.name,
purchases.product
HAVING
total_price > 10000
ORDER BY
total_price DESC;
Όταν κοιτάζετε το παραπάνω ερώτημα, προσπαθήστε να προσδιορίσετε τις τυπικές ρήτρες. Η ρήτρα θα σας παρέχει μια κατανόηση των δεδομένων που επιλέγονται (SELECT), από πού είναι (ΑΠΟ και Ενώνω), και η συνθήκη (ΠΟΥ, GROUP BY, ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ, να HAVING).
Για παράδειγμα, διαβάζοντας το παραπάνω ερώτημα θα κατανοήσετε τα ακόλουθα:
- προσπαθούμε να πάρουμε τρία διαφορετικά είδη δεδομένων: το Όνομα από έναν πίνακα που ονομάζεται πελάτες, το Προϊόν από έναν πίνακα που ονομάζεται αγορές και τη συγκέντρωση στηλών τιμών που δεν προσδιορίζουν από πού προέρχεται ο πίνακας και με το ψευδώνυμο total_price (Πληροφορίες από τον όρο SELECT).
- Τα συνολικά δεδομένα θα προέρχονται από πίνακες αγορών και πελατών που ενώνονται χρησιμοποιώντας τη στήλη cust_id από τις αγορές και τη στήλη id από τον πίνακα του πελάτη (Πληροφορίες από τον όρο ΑΠΟ) και Ενώνω).
- Θα επιλέγαμε μόνο τα δεδομένα με την τιμή στήλης κατηγορίας στον πίνακα αγορών ως "κουζίνα" (Πληροφορίες από την ρήτρα ΠΟΥ),
- ομάδα για τη συνάρτηση συνάθροισης με το όνομα και τη στήλη προϊόντος που προήλθε από τον αντίστοιχο πίνακα (Πληροφορίες από τον όρο GROUP BY),
- φιλτράρεται επίσης από το άθροισμα του αποτελέσματος της συνάρτησης συνάθροισης όπου η συνολική_τιμή είναι μεγαλύτερη από 10000 (πληροφορίες από τον όρο HAVING), Και
- παραγγείλετε τα δεδομένα φθίνοντας σύμφωνα με τη συνολική_τιμή (πληροφορίες από τον όρο ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ).
Αυτή είναι η γενική δομή ερωτημάτων SQL που πρέπει να γνωρίζετε και να προσδιορίζετε. Από εκεί, μπορούμε να εξερευνήσουμε περαιτέρω το σύνθετο ερώτημα. Ας συνεχίσουμε με το επόμενο βήμα.
Θα ήταν μια στιγμή που θα συναντούσατε ένα σύνθετο ερώτημα όπου τόσα πολλά SELECT ρήτρες υπάρχουν στο ίδιο ερώτημα. Σε αυτήν την περίπτωση, θα πρέπει να κατανοήσουμε το τελικό αποτέλεσμα του ερωτήματος ή το τελικό (πρώτο) SELECT βλέπετε στο ερώτημα. Το κλειδί είναι να γνωρίζετε ποια είναι η έξοδος του ερωτήματος.
Ας χρησιμοποιήσουμε έναν πιο περίπλοκο κώδικα όπως ο παρακάτω.
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
SELECT
c.name,
pd.product,
pd.total_product_price,
cs.total_spending
FROM
(
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
) AS pd
JOIN customers c ON pd.cust_id = c.id
JOIN customerspending cs ON c.id = cs.id
ORDER BY
pd.total_product_price DESC;
Το ερώτημα φαίνεται πιο περίπλοκο και μεγαλύτερο τώρα, αλλά η αρχική εστίαση θα πρέπει να είναι στο τελικό ΕΠΙΛΕΓΩ, που φαίνεται να προσπαθεί να παράγει το συνολικό ιστορικό δαπανών και αγορών του πελάτη. Προσπαθήστε να αξιολογήσετε ποιο θέλει να είναι το τελικό αποτέλεσμα και αναλύστε το από εκεί.
Έχουμε τη διορατικότητα του αποτελέσματος πρέπει να είναι από τα ερωτήματα. Το επόμενο μέρος είναι να δούμε ποιες είναι οι προϋποθέσεις για τον τελικό SELECT είναι. Η ρήτρα προϋποθέσεων, συμπεριλαμβανομένων ΠΟΥ, GROUP BY, ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ, να HAVING ήταν αυτοί που έλεγχαν το συνολικό αποτέλεσμα δεδομένων.
Προσπαθήστε να διαβάσετε και να κατανοήσετε τις συνθήκες του ερώτημά μας και θα κατανοήσουμε καλύτερα το τελικό αποτέλεσμα του ερώτημά μας. Για παράδειγμα, στο προηγούμενο ερώτημά μας SQL, η τελική συνθήκη είναι μόνο το ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ. Αυτό σημαίνει ότι το τελικό αποτέλεσμα θα ταξινομηθεί με βάση τη συνολική τιμή του προϊόντος σε φθίνουσα σειρά.
Η γνώση των τελικών συνθηκών θα σας βοηθήσει να κατανοήσετε ένα σημαντικό μέρος του ερωτήματος και τη συνολική πρόθεση του ερωτήματος.
Τέλος, πρέπει να καταλάβουμε από πού προέρχονται τα δεδομένα. Αφού μάθουμε για τα δεδομένα που πρέπει να επιλέξουμε και τις συνθήκες για να τα αποκτήσουμε, πρέπει να κατανοήσουμε την πηγή. Ο τελικός Ενώνω Η ρήτρα θα μας δώσει να κατανοήσουμε πώς αλληλεπιδρούν οι πίνακες και τη ροή δεδομένων.
Για παράδειγμα, το προηγούμενο σύνθετο ερώτημα δείχνει ότι εκτελέσαμε το Join δύο φορές. Σημαίνει ότι χρησιμοποιήσαμε τουλάχιστον τρεις πηγές δεδομένων για το τελικό αποτέλεσμα. Αυτές οι πληροφορίες θα ήταν απαραίτητες στα επόμενα βήματα για να κατανοήσουμε περαιτέρω πώς προκύπτει κάθε πηγή δεδομένων, ειδικά όταν η πηγή δεδομένων προέρχεται από το υποερώτημα.
Αφού καταλάβουμε πώς πρέπει να είναι το τελικό αποτέλεσμα και από πού προέρχεται, πρέπει να δούμε πιο προσεκτικά τις λεπτομέρειες. Από εδώ, θα κάνουμε πίσω σε κάθε υποερώτημα και θα καταλάβουμε γιατί είναι δομημένα έτσι.
Ωστόσο, δεν προσπαθούμε να τα δούμε στις δομές από πάνω προς τα κάτω. Αντίθετα, θα πρέπει να προσπαθήσουμε να κοιτάξουμε τις υποερωτήσεις που είναι πιο κοντά στο τελικό αποτέλεσμα και να προχωρήσουμε σε αυτό που βρίσκεται πιο μακριά από το τελικό αποτέλεσμα. Από το παραπάνω παράδειγμα κώδικα, θα πρέπει πρώτα να προσπαθήσουμε να κατανοήσουμε αυτόν τον κώδικα:
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
Στη συνέχεια, μεταβαίνουμε στον πιο απομακρυσμένο κώδικα που είναι αυτός:
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
Μπορούμε να εντοπίσουμε με σαφήνεια τη διαδικασία σκέψης του συγγραφέα όταν αναλύουμε κάθε υποερώτημα από το πιο κοντινό στο αποτέλεσμα στο πιο απομακρυσμένο.
Προσπαθήστε να επαναλάβετε την παραπάνω διαδικασία εάν χρειάζεστε βοήθεια για να κατανοήσετε κάθε υποερώτημα. Με λίγη εξάσκηση, θα έχετε καλύτερη εμπειρία στην ανάγνωση και την κατανόηση του ερωτήματος.
Η ανάγνωση και η κατανόηση των ερωτημάτων SQL είναι μια δεξιότητα που πρέπει να έχει ο καθένας στη σύγχρονη εποχή, καθώς κάθε εταιρεία ασχολείται με αυτά. Χρησιμοποιώντας τον παρακάτω οδηγό βήμα προς βήμα, θα έχετε καλύτερο χρόνο για να κατανοήσετε τα πολύπλοκα ερωτήματα SQL. Τα βήματα περιλαμβάνουν:
- Κατανοήστε τη Γενική Δομή Ερωτημάτων SQL
- Κατανοήστε την τελική επιλογή
- Κατανόηση της ρήτρας των τελικών συνθηκών
- Κατανοήστε την Τελική Συμμετοχή
- Ανάγνωση και επανάληψη αντίστροφης σειράς
Cornellius Yudha Wijaya είναι βοηθός διευθυντής επιστήμης δεδομένων και συγγραφέας δεδομένων. Ενώ εργάζεται με πλήρη απασχόληση στην Allianz Indonesia, του αρέσει να μοιράζεται συμβουλές για Python και Data μέσω των μέσων κοινωνικής δικτύωσης και των μέσων συγγραφής.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoData.Network Vertical Generative Ai. Ενδυναμώστε τον εαυτό σας. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- PlatoESG. Ανθρακας, Cleantech, Ενέργεια, Περιβάλλον, Ηλιακός, Διαχείριση των αποβλήτων. Πρόσβαση εδώ.
- PlatoHealth. Ευφυΐα βιοτεχνολογίας και κλινικών δοκιμών. Πρόσβαση εδώ.
- πηγή: https://www.kdnuggets.com/a-step-by-step-guide-to-reading-and-understanding-sql-queries?utm_source=rss&utm_medium=rss&utm_campaign=a-step-by-step-guide-to-reading-and-understanding-sql-queries
- :είναι
- :δεν
- :που
- $UP
- 12
- 17
- 9
- a
- Σχετικα
- πάνω από
- πρόσβαση
- Σύμφωνα με
- προηγμένες
- Μετά το
- συσσωμάτωση
- Allianz
- επιτρέπουν
- an
- και
- Άλλος
- ΕΙΝΑΙ
- άρθρο
- AS
- εκτιμώ
- Βοηθός
- At
- συγγραφέας
- βασίζονται
- BE
- επειδή
- Αρχή
- παρακάτω
- Καλύτερα
- Διακοπή
- επιχειρήσεις
- αλλά
- by
- που ονομάζεται
- ήρθε
- CAN
- δεν μπορώ
- περίπτωση
- κατηγορία
- σαφώς
- πιο κοντά
- κωδικός
- Στήλη
- Στήλες
- συνδυασμός
- Ελάτε
- έρχεται
- ερχομός
- Κοινός
- Εταιρείες
- εταίρα
- συγκρότημα
- κατάσταση
- Συνθήκες
- συνεχίζοντας
- ελέγχεται
- cs
- πελάτης
- Πελάτες
- ημερομηνία
- επιστημονικά δεδομένα
- βάση δεδομένων
- Προσφορές
- καθέκαστα
- διαφορετικές
- do
- Όχι
- Μην
- κάτω
- κάθε
- εργασία
- συνάντηση
- αντιμετωπίζω
- εξ ολοκλήρου
- Εποχή
- ειδικά
- ουσιώδης
- Κάθε
- όλοι
- παράδειγμα
- υπάρχουν
- εμπειρία
- διερευνήσει
- φιλτράρισμα
- τελικός
- Εύρεση
- Όνομα
- ροή
- Ροές
- Συγκέντρωση
- ακολουθήστε
- ακολουθείται
- Εξής
- Για
- από
- λειτουργία
- λειτουργίες
- περαιτέρω
- General
- παίρνω
- Δώστε
- Group
- καθοδηγήσει
- Έχω
- που έχει
- he
- βοήθεια
- εδώ
- ιστορία
- Πως
- HTTPS
- ID
- αναγνωριστικό
- προσδιορίσει
- if
- in
- περιλαμβάνουν
- Συμπεριλαμβανομένου
- Indonesia
- πληροφορίες
- αρχικός
- διορατικότητα
- αντί
- Πρόθεση
- αλληλεπιδρούν
- σε
- IT
- ενταχθούν
- jpg
- KDnuggets
- Κλειδί
- είδη
- Ξέρω
- Γλώσσα
- αργότερα
- ΜΑΘΑΊΝΩ
- μάθηση
- ελάχιστα
- Μου αρέσει
- πλέον
- ματιά
- αγαπά
- κυρίως
- διαχείριση
- σύστημα διαχείρησης
- διευθυντής
- διαχείριση
- χειραγώγηση
- πολοί
- εννοώ
- μέσα
- Εικόνες / Βίντεο
- ΜΟΝΤΕΡΝΑ
- περισσότερο
- πλέον
- μετακινήσετε
- κίνηση
- όνομα
- απαραίτητος
- Ανάγκη
- επόμενη
- τώρα
- of
- συχνά
- on
- ONE
- αυτά
- αποκλειστικά
- or
- τάξη
- δικός μας
- παραγωγή
- φόρμες
- μέρος
- People
- εκτελούνται
- person
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- πρακτική
- προηγούμενος
- τιμή
- προβλήματα
- διαδικασια μας
- παράγει
- Προϊόν
- Προγραμματισμός
- παρέχουν
- αγορά
- ψώνια
- Python
- ερωτήματα
- απορία
- Διάβασε
- Ανάγνωση
- επαναλαμβάνω
- εκείνοι
- αποτέλεσμα
- αντιστρέψει
- s
- ίδιο
- Επιστήμη
- δείτε
- φαίνεται
- επιλέξτε
- επιλέγονται
- Κοινοποίηση
- θα πρέπει να
- Δείχνει
- σημαντικός
- επιδεξιότητα
- δεξιότητες
- ομαλά
- So
- Μ.Κ.Δ
- social media
- μερικοί
- Πηγή
- Πηγές
- συγκεκριμένες
- καθορίζεται
- Δαπάνες
- SQL
- πρότυπο
- Εκκίνηση
- Βήμα
- Βήματα
- δομή
- δομημένος
- δομές
- άθροισμα
- σύστημα
- τραπέζι
- λαμβάνεται
- από
- ότι
- Η
- Η Πηγη
- τους
- Τους
- Εκεί.
- αυτοί
- πράγμα
- αυτό
- σκέψη
- τρία
- Μέσω
- ώρα
- συμβουλές
- προς την
- μαζι
- Σύνολο
- τροχιά
- προσπαθώ
- Δυο φορές
- καταλαβαίνω
- κατανόηση
- us
- χρήση
- μεταχειρισμένος
- χρησιμοποιώντας
- συνήθως
- αξία
- μέσω
- walk
- θέλει
- we
- ΛΟΙΠΌΝ
- Τι
- πότε
- Ποιό
- ενώ
- WHY
- ευρέως
- θα
- με
- εντός
- Εργασία
- εργαζόμενος
- θα
- θα έδινα
- συγγραφέας
- γραφή
- εσείς
- zephyrnet