Τι είναι η LIMIT λέξη-κλειδί;
Η λέξη-κλειδί ορίου χρησιμοποιείται για τον περιορισμό του αριθμού των γραμμών που επιστρέφονται σε ένα αποτέλεσμα ερωτήματος.
Μπορεί να χρησιμοποιηθεί σε συνδυασμό με τις εντολές SELECT, UPDATE Ή DELETE LIMIT syntax
Η σύνταξη για τη λέξη-κλειδί LIMIT έχει ως εξής
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
ΕΔΩ
- "SELECT {fieldname (s) | *} FROM tableName (s)" είναι η πρόταση SELECT που περιέχει τα πεδία που θα θέλαμε να επιστρέψουμε στο ερώτημά μας.
- Το "[WHERE condition]" είναι προαιρετικό, αλλά όταν παρέχεται, μπορεί να χρησιμοποιηθεί για τον καθορισμό ενός φίλτρου στο σύνολο αποτελεσμάτων.
- Το "LIMIT N" είναι η λέξη-κλειδί και το N είναι οποιοσδήποτε αριθμός ξεκινώντας από το 0, βάζοντας το 0 καθώς το όριο δεν επιστρέφει εγγραφές στο ερώτημα. Βάζοντας έναν αριθμό, το 5 θα επιστρέψει πέντε δίσκους. Εάν οι εγγραφές στον καθορισμένο πίνακα είναι μικρότερες από N, τότε όλες οι εγγραφές από τον πίνακα ερωτημάτων επιστρέφονται στο σύνολο αποτελεσμάτων.
Ας δούμε ένα παράδειγμα -
SELECT * FROM members LIMIT 2;
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
Όπως μπορείτε να δείτε από το παραπάνω στιγμιότυπο οθόνης, έχουν επιστραφεί μόνο δύο μέλη.
Λήψη λίστας δέκα (10) μελών μόνο από τη βάση δεδομένων
Ας υποθέσουμε ότι θέλουμε να λάβουμε μια λίστα με τα πρώτα 10 εγγεγραμμένα μέλη από τη βάση δεδομένων Myflix. Θα χρησιμοποιούσαμε το παρακάτω σενάριο για να το επιτύχουμε.
SELECT * FROM members LIMIT 10;
Η εκτέλεση του παραπάνω σεναρίου μας δίνει τα αποτελέσματα που φαίνονται παρακάτω
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
4 | Gloria Williams | Female | 14-02-1984 | NULL | 2nd Street 23 | NULL | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | NULL | Woodcrest | NULL | 845738767 | NULL | NULL |
6 | Sheldon Cooper | Male | NULL | NULL | Woodcrest | NULL | 976736763 | NULL | NULL |
7 | Rajesh Koothrappali | Male | NULL | NULL | Woodcrest | NULL | 938867763 | NULL | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | NULL | Woodcrest | NULL | 987636553 | NULL | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | NULL | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me | NULL |
Σημειώστε ότι μόνο 9 μέλη έχουν επιστραφεί στο ερώτημά μας, καθώς το N στο όριο LIMIT είναι μεγαλύτερο από τον αριθμό των συνολικών εγγραφών στον πίνακα μας.
Επανεγγραφή του παραπάνω σεναρίου ως εξής
SELECT * FROM members LIMIT 9;
Επιστρέφει μόνο 9 σειρές στο σύνολο αποτελεσμάτων ερωτημάτων.
Χρησιμοποιώντας το OFF SET στο ερώτημα LIMIT
Η τιμή OFF SET χρησιμοποιείται επίσης πιο συχνά μαζί με τη λέξη-κλειδί LIMIT. Η τιμή OFF SET μας επιτρέπει να καθορίσουμε ποια σειρά θα ξεκινήσει από την ανάκτηση δεδομένων
Ας υποθέσουμε ότι θέλουμε να έχουμε έναν περιορισμένο αριθμό μελών ξεκινώντας από τη μέση των σειρών, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί LIMIT μαζί με την τιμή μετατόπισης για να το επιτύχουμε. Το σενάριο που εμφανίζεται παρακάτω λαμβάνει δεδομένα ξεκινώντας από τη δεύτερη σειρά και περιορίζει τα αποτελέσματα σε 2.
SELECT * FROM `members` LIMIT 1, 2;
Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb δίνει τα ακόλουθα αποτελέσματα.
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
Πότε πρέπει να χρησιμοποιήσουμε τη λέξη-κλειδί LIMIT;
Ας υποθέσουμε ότι αναπτύσσουμε την εφαρμογή που τρέχει πάνω από το myflixdb. Ο σχεδιαστής συστημάτων μας μας ζήτησε να περιορίσουμε τον αριθμό των εγγραφών που εμφανίζονται σε μια σελίδα, δηλαδή 20 εγγραφές ανά σελίδα για να αντιμετωπίσουμε τους αργούς χρόνους φόρτωσης. Πώς προχωράμε στην εφαρμογή του συστήματος που πληροί τέτοιες απαιτήσεις χρήστη; Η λέξη-κλειδί LIMIT είναι βολική σε τέτοιες περιπτώσεις. Θα μπορούσαμε να περιορίσουμε τα αποτελέσματα που επιστρέφονται από ένα ερώτημα σε 20 εγγραφές μόνο ανά σελίδα.
Περίληψη
- Η λέξη-κλειδί LIMIT χρησιμοποιείται για τον περιορισμό του αριθμού των γραμμών που επιστρέφονται από ένα σύνολο αποτελεσμάτων.
- Ο αριθμός LIMIT μπορεί να είναι οποιοσδήποτε αριθμός από το μηδέν (0) προς τα πάνω. Όταν το μηδέν (0) ορίζεται ως το όριο, δεν επιστρέφονται σειρές από το σύνολο αποτελεσμάτων.
- Η τιμή OFF SET μας επιτρέπει να καθορίσουμε ποια σειρά θα ξεκινήσει από την ανάκτηση δεδομένων
- Μπορεί να χρησιμοποιηθεί σε συνδυασμό με τις εντολές SELECT, UPDATE Ή DELETE LIMIT syntax