Skip to main content

Επιλογή δεδομένων εντός εύρους σε SQL

Week 10, continued (Ιούνιος 2025)

Week 10, continued (Ιούνιος 2025)
Anonim

Η δομημένη γλώσσα ερωτήματος (SQL) παρέχει στους χρήστες της βάσης δεδομένων τη δυνατότητα δημιουργίας προσαρμοσμένων ερωτημάτων για την εξαγωγή πληροφοριών από βάσεις δεδομένων. Σε ένα προηγούμενο άρθρο, διερευνήσαμε την εξαγωγή πληροφοριών από μια βάση δεδομένων χρησιμοποιώντας επερωτήσεις SQL SELECT. Ας επεκταθούμε σε αυτήν τη συζήτηση και να διερευνήσουμε πώς μπορείτε να εκτελέσετε προηγμένες ερωτήσεις για να ανακτήσετε δεδομένα που ταιριάζουν σε συγκεκριμένες συνθήκες.Ας εξετάσουμε ένα παράδειγμα βασισμένο στην κοινώς χρησιμοποιούμενη βάση δεδομένων Northwind, η οποία συχνά συνοδεύεται από προϊόντα βάσης δεδομένων ως οδηγό.

Ακολουθεί ένα απόσπασμα από τον πίνακα προϊόντων της βάσης δεδομένων:

Πίνακας προϊόντων
Κωδικός προϊόντοςΟνομα προϊόντοςSupplierIDQuantityPerUnitΤιμή μονάδαςUnitsInStock
1Chai110 κουτιά x 20 σακούλες18.0039
2Chang124 - 12 οζ φιάλες19.0017
3Σιρόπι γλυκάνισου112 - φιάλες των 550 ml10.0013
4Ο καπνιστής Cajun του σεφ του Αντόνιου2Δοχεία 48 - 6 οζ22.0053
5Σεμινάριο γκουμπού του αρχιμάγειρα Αντόνιο236 κιβώτια21.350
6Το Boysenberry της γιαγιάς απλώνεται3Δοχεία 12 - 8 οζ25.00120
7Τα βιολογικά αποξηραμένα αχλάδια του θείου Bob312 - 1 λίβρες pkgs.30.0015

Απλές οριακές συνθήκες

Οι πρώτοι περιορισμοί που θα τοποθετήσουμε στο ερώτημά μας αφορούν απλές οριακές συνθήκες. Μπορούμε να τις προσδιορίσουμε στη ρήτρα WHERE του ερωτήματος SELECT, χρησιμοποιώντας απλές δηλώσεις όρων που έχουν κατασκευαστεί με τυπικούς χειριστές, όπως <,>,> = και <=.

Πρώτον, ας δοκιμάσουμε ένα απλό ερώτημα που μας επιτρέπει να εξαγάγουμε μια λίστα με όλα τα προϊόντα της βάσης δεδομένων που έχουν UnitPrice μεγαλύτερη από 20.00:

SELECT ProductName, UnitPrice ΑΠΟ προϊόντα WHERE UnitPrice> 20.00

Αυτό παράγει έναν κατάλογο τεσσάρων προϊόντων, όπως φαίνεται παρακάτω:

ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Σεφ του Cajun του Αντόνιου Καρυκεύματος του Αμυγδάλου 22.00 Το Βαγιαντούρι της Βρετανίας Spread 25.00 Οργανικά Αποξηραμένα Αχλάδια του Θείους Μπόμπ 30.00

Μπορούμε επίσης να χρησιμοποιήσουμε τη ρήτρα WHERE με τις τιμές των συμβολοσειρών. Αυτό αντιστοιχεί ουσιαστικά στους χαρακτήρες σε αριθμούς, με το Α να αντιπροσωπεύει την τιμή 1 και το Z που αντιπροσωπεύουν την τιμή 26. Για παράδειγμα, μπορούμε να δείξουμε όλα τα προϊόντα με ονόματα που αρχίζουν με U, V, W, X, Y ή Z με το ακόλουθο ερώτημα:

SELECT Όνομα_προϊόντος FROM PRODUCTS WHERE ProductName> = 'T'

Ποιο παράγει το αποτέλεσμα:

ProductName ------- Οργανικά αποξηραμένα αχλάδια του θείου Bob

Εκφράζοντας εύρη τιμών χρησιμοποιώντας όρια

Η ρήτρα WHERE μας επιτρέπει επίσης να εφαρμόσουμε μια συνθήκη εύρους σε μια τιμή χρησιμοποιώντας πολλαπλές συνθήκες. Για παράδειγμα, αν θέλαμε να λάβουμε την ερώτησή μας παραπάνω και να περιορίσουμε τα αποτελέσματα σε προϊόντα με τιμές μεταξύ 15.00 και 20.00, θα μπορούσαμε να χρησιμοποιήσουμε το ακόλουθο ερώτημα:

SELECT Όνομα_προϊόντος, UnitPrice ΑΠΟ προϊόντα WHERE UnitPrice> 15.00 ΚΑΙ UnitPrice <20.00

Αυτό παράγει το αποτέλεσμα που φαίνεται παρακάτω:

ProductName UnitPrice ------- -------- Chai 18.00 Τσανγκ 19.00

Εκφράζοντας περιοχές με ΜΕΓΑΛΟ

Η SQL παρέχει επίσης μια σύντομη συντομογραφία BETWEEN που μειώνει τον αριθμό συνθηκών που πρέπει να συμπεριλάβουμε και καθιστά το ερώτημα πιο ευανάγνωστο. Για παράδειγμα, αντί να χρησιμοποιήσουμε τις δύο παραπάνω συνθήκες WHERE, μπορούμε να εκφράσουμε το ίδιο ερώτημα με:

SELECT Όνομα_προϊόντος, UnitPrice ΑΠΟ προϊόντα WHERE UnitPrice ΜΕΤΑΞΥ 15.00 ΚΑΙ 20.00

Όπως συμβαίνει και με τις λοιπές ρήτρες των όρων μας, BETWEEN λειτουργεί επίσης με τις τιμές των συμβολοσειρών. Αν θέλαμε να δημιουργήσουμε μια λίστα με όλες τις χώρες που αρχίζουν με V, W ή X, θα μπορούσαμε να χρησιμοποιήσουμε το ερώτημα:

SELECT PRODUCTName FROM PRODUCTS WHERE Όνομα προϊόντος ΜΕΤΑΞΥ "Α" και "D"

Ποιο παράγει το αποτέλεσμα:

ProductName ------- Σιρόπι γλυκάνισου Chai Chang σεφ μαγειρέματος γκουμπότ του Αντόνιου Μίξη σεφ του Cajun

Η ρήτρα WHERE είναι ένα ισχυρό μέρος της γλώσσας SQL που σας επιτρέπει να περιορίσετε τα αποτελέσματα σε τιμές που εμπίπτουν σε καθορισμένες περιοχές. Είναι πολύ συνηθισμένο να χρησιμοποιείται για να εκφράσει την επιχειρησιακή λογική και πρέπει να αποτελεί μέρος της εργαλειοθήκης κάθε επαγγελματικής βάσης δεδομένων.

Είναι συχνά χρήσιμο να ενσωματώσετε κοινές ρήτρες σε μια αποθηκευμένη διαδικασία για να είναι προσβάσιμη σε όσους δεν διαθέτουν γνώσεις SQL.