Επιλέξτε τις 10 κορυφαίες σειρές στην SQL

Epilexte Tis 10 Koryphaies Seires Sten Sql



Όταν εργαζόμαστε σε μια βάση δεδομένων SQL, μπορεί να συναντήσουμε περιπτώσεις όπου πρέπει να ανακτήσουμε ένα συγκεκριμένο υποσύνολο σειρών από έναν δεδομένο πίνακα. Αυτό μας επιτρέπει να περιορίσουμε τους πόρους που απαιτούνται για την ανάκτηση των τιμών από τον πίνακα.

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

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







Απαιτήσεις:

Πριν βουτήξουμε στη λειτουργία και τη χρήση της ρήτρας LIMIT στην SQL, ας συζητήσουμε μερικές βασικές απαιτήσεις για αυτό το σεμινάριο.



Για να ακολουθήσετε αυτήν την ανάρτηση, θα χρειαστείτε τα εξής:



  1. Η MySQL 8.0 και νεότερη έκδοση λειτουργεί με την MySQL 5
  2. Πρόσβαση στη δειγματοληπτική βάση δεδομένων Sakila
  3. Δικαιώματα αναζήτησης σειρών από τη βάση δεδομένων προορισμού (πρόσβαση για ανάγνωση)

Εφόσον πληρούνται οι δεδομένες απαιτήσεις, μπορούμε να προχωρήσουμε σε αυτό το σεμινάριο.





SQL LIMIT

Στην SQL, ο όρος LIMIT μας επιτρέπει να περιορίσουμε τον αριθμό των γραμμών που επιστρέφονται από ένα δεδομένο ερώτημα SQL. Για παράδειγμα, σε μια πρόταση επιλογής, αντί να επιστρέψουμε όλες τις σειρές από τον πίνακα που μπορεί να περιέχουν περισσότερες από 1000 εγγραφές, μπορούμε να επιλέξουμε να προβάλουμε μόνο τις πρώτες 10 σειρές.

Το παρακάτω δείχνει τη βασική σύνταξη του όρου LIMIT στην SQL:



ΕΠΙΛΟΓΗ col1, col2, ...

ΑΠΟ tbl_name

LIMIT num_rows;

Σε αυτό το παράδειγμα, χρησιμοποιούμε την πρόταση LIMIT σε συνδυασμό με την πρόταση SELECT.

Από τη δεδομένη σύνταξη, το 'tbl_name' αντιπροσωπεύει το όνομα του πίνακα από τον οποίο θέλουμε να ανακτήσουμε τα δεδομένα.

Το 'num_rows' μας επιτρέπει να καθορίσουμε τον μέγιστο αριθμό σειρών που επιστρέφονται στο σύνολο αποτελεσμάτων.

Παράδειγμα 1: Περιορίστε τον αριθμό των σειρών

Ο πιο συνηθισμένος και θεμελιώδης ρόλος της ρήτρας LIMIT είναι να ορίσει τον μέγιστο αριθμό σειρών που περιλαμβάνονται στο σύνολο αποτελεσμάτων.

Ας υποθέσουμε ότι θέλουμε να χρησιμοποιήσουμε τον πίνακα 'φιλμ' από τη βάση δεδομένων δειγμάτων Sakila. Ωστόσο, επειδή δεν θέλουμε να ανακτήσουμε όλες τις συσχετισμένες σειρές, μπορούμε να επιλέξουμε τις πρώτες 10 σειρές όπως φαίνεται στην ακόλουθη ρήτρα παραδείγματος:

ΕΠΙΛΟΓΗ * ΑΠΟ ταινία

ΟΡΙΟ 10 ;

Μόλις εκτελέσουμε το συγκεκριμένο ερώτημα, θα πρέπει να λάβουμε μια έξοδο ως εξής:

  Ένα στιγμιότυπο οθόνης ενός υπολογιστή Περιγραφή δημιουργήθηκε αυτόματα

Σε αυτό το παράδειγμα, χρησιμοποιούμε τον όρο LIMIT για να περιορίσουμε το σύνολο αποτελεσμάτων σε 10 σειρές. Αυτό φέρνει τις πρώτες 10 σειρές από το αποτέλεσμα.

Παράδειγμα 2: Χρήση της τιμής OFFSET

Σε ορισμένες περιπτώσεις, μπορεί να θέλουμε να παραλείψουμε ή να παραλείψουμε έναν συγκεκριμένο αριθμό σειρών. Για παράδειγμα, ας υποθέσουμε ότι θέλουμε να ανακτήσουμε μόνο πέντε στοιχεία, αλλά θέλουμε να ξεκινήσουμε από τη θέση 20. Μπορούμε να χρησιμοποιήσουμε την παράμετρο OFFSET που μας επιτρέπει να πούμε στον όρο LIMIT σε ποια θέση θέλουμε να ξεκινήσουμε.

Αυτό είναι ιδιαίτερα χρήσιμο όταν χρειάζεται να εφαρμόσετε τη σελιδοποίηση σε ένα μεγάλο σύνολο δεδομένων όπως φαίνεται στο ακόλουθο παράδειγμα:

SELECT film_id, τίτλος, release_year, `length` FROM film

ΟΡΙΟ 10 ΑΝΤΙΣΤΑΘΜΙΖΕΤΑΙ είκοσι ;;

Αυτό θα πρέπει να επιστρέψει 10 σειρές ξεκινώντας από τη θέση 20 ως εξής:

Όπως μπορείτε να δείτε από το δεδομένο αποτέλεσμα, η αρχή «film_id» ξεκινά από τη θέση 21 και προχωρά στη θέση 30.

Παράδειγμα 3: Χρήση της ρήτρας Order BY

Μια άλλη κοινή χρήση της ρήτρας LIMIT είναι σε συνδυασμό με την ρήτρα ORDER BY. Αυτό μας επιτρέπει να ανακτήσουμε συγκεκριμένο αριθμό σειρών που βασίζονται σε μια συγκεκριμένη σειρά. Αυτό μπορεί να περιλαμβάνει τη βασική ταξινόμηση (αύξουσα ή φθίνουσα) κ.λπ.

Για παράδειγμα, ας υποθέσουμε ότι θέλουμε να ανακτήσουμε τις 10 μεγαλύτερες ταινίες από τον πίνακα 'ταινία'. Μπορούμε να χρησιμοποιήσουμε τον όρο ORDER BY για να ταξινομήσουμε τις τιμές με βάση το μήκος και στη συνέχεια να περιορίσουμε τις πρώτες 10 σειρές.

Ένα παράδειγμα είναι το εξής:

ΕΠΙΛΟΓΗ f.film_id, f.title, f.length

ΑΠΟ την ταινία f

ΣΕΙΡΑ ΚΑΤΑ μήκος ΠΕΡΙΦ

ΟΡΙΟ 10 ;

Σε αυτήν την περίπτωση, χρησιμοποιούμε τον όρο ORDER BY για να ταξινομήσουμε τις σειρές με φθίνουσα σειρά (από το υψηλότερο προς το χαμηλότερο) και στη συνέχεια να ανακτήσουμε τις πρώτες 10 σειρές χρησιμοποιώντας τον όρο LIMIT.

Το σύνολο των αποτελεσμάτων έχει ως εξής:

  Πίνακας λίστας Περιγραφή που δημιουργείται αυτόματα με μέτρια εμπιστοσύνη

Ορίστε το!

συμπέρασμα

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