ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ MySQL: DESC & Ερώτημα ASC με ΠΑΡΑΔΕΙΓΜΑ

Πίνακας περιεχομένων

Ταξινόμηση αποτελεσμάτων

Χρησιμοποιώντας την εντολή SELECT, τα αποτελέσματα επιστράφηκαν με την ίδια σειρά που οι εγγραφές προστέθηκαν στη βάση δεδομένων. Αυτή είναι η προεπιλεγμένη σειρά ταξινόμησης. Σε αυτήν την ενότητα, θα δούμε πώς μπορούμε να ταξινομήσουμε τα αποτελέσματα των ερωτημάτων μας. Η ταξινόμηση απλώς αναδιατάσσει τα αποτελέσματα των ερωτημάτων μας με καθορισμένο τρόπο. Η ταξινόμηση μπορεί να πραγματοποιηθεί σε μία στήλη ή σε περισσότερες από μία στήλες. Μπορεί να γίνει σε αριθμούς, συμβολοσειρές καθώς και σε τύπους δεδομένων ημερομηνίας

Τι είναι το ORDER BY στο MySQL;

Το MySQL ORDER BY χρησιμοποιείται σε συνδυασμό με το ερώτημα SELECT για την ταξινόμηση δεδομένων με ομαλό τρόπο. Ο όρος MySQL ORDER BY χρησιμοποιείται για την ταξινόμηση των συνόλων αποτελεσμάτων ερωτήματος είτε με αύξουσα είτε φθίνουσα σειρά.

SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

ΕΔΩ

  • "SELECT statement ..." είναι το κανονικό επιλεγμένο ερώτημα
  • Το "|" αντιπροσωπεύει εναλλακτικές λύσεις
  • "[WHERE condition | GROUP BY` field_name (s) "HAVING condition" είναι η προαιρετική συνθήκη που χρησιμοποιείται για το φιλτράρισμα των συνόλων αποτελεσμάτων ερωτήματος.
  • Το "ORDER BY" εκτελεί την ταξινόμηση συνόλου αποτελεσμάτων ερωτήματος
  • "[ASC | DESC]" είναι η λέξη-κλειδί που χρησιμοποιείται για την ταξινόμηση συνόλων αποτελεσμάτων με αύξουσα ή φθίνουσα σειρά. Σημείωση Το ASC χρησιμοποιείται ως προεπιλογή.

Τι είναι οι λέξεις-κλειδιά DESC και ASC;

Το ASC είναι η σύντομη φόρμα για την άνοδο

Το MySQL DESC είναι η σύντομη φόρμα για κατέβασμα

Χρησιμοποιείται για την ταξινόμηση των αποτελεσμάτων του ερωτήματος σε στυλ από πάνω προς τα κάτω.

Χρησιμοποιείται για την ταξινόμηση των αποτελεσμάτων του ερωτήματος σε στυλ από κάτω προς τα πάνω

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

. Όταν εργάζεστε σε τύπους ημερομηνιών, η τελευταία ημερομηνία εμφανίζεται στην κορυφή της λίστας.

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

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

Όταν εργάζεστε με τύπους δεδομένων συμβολοσειράς, το σύνολο αποτελεσμάτων ερωτήματος ταξινομείται από εκείνους που ξεκινούν με το γράμμα A μέχρι το γράμμα Z.

Όταν εργάζεστε με τύπους δεδομένων συμβολοσειράς, το σύνολο αποτελεσμάτων ερωτήματος ταξινομείται από αυτούς που ξεκινούν με το γράμμα Z μέχρι το γράμμα A.

Τόσο οι λέξεις-κλειδιά SQL DESC όσο και ASC χρησιμοποιούνται μαζί σε συνδυασμό με τη δήλωση SELECT και το MySQL ORDER BY.

Σύνταξη DESC και ASC

Η λέξη-κλειδί ταξινόμησης SQL DESC έχει την ακόλουθη βασική σύνταξη.

SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

ΕΔΩ

  • ΕΠΙΛΟΓΗ {fieldName (s) | *} FROM tableName (s) είναι η δήλωση που περιέχει τα πεδία και τους πίνακες από τους οποίους θα λάβετε το σύνολο των αποτελεσμάτων.
  • [WHERE condition] είναι προαιρετικό, αλλά μπορεί να χρησιμοποιηθεί για φιλτράρισμα των δεδομένων σύμφωνα με τη δεδομένη συνθήκη.
  • ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ τα ονόματα πεδίων είναι υποχρεωτικά και είναι το πεδίο στο οποίο θα γίνει η ταξινόμηση. Η λέξη-κλειδί MySQL DESC καθορίζει ότι η ταξινόμηση πρέπει να είναι σε φθίνουσα σειρά.
  • Το [LIMIT] είναι προαιρετικό, αλλά μπορεί να χρησιμοποιηθεί για τον περιορισμό του αριθμού των αποτελεσμάτων που επιστρέφονται από το σύνολο αποτελεσμάτων ερωτήματος.

Παραδείγματα:

Ας δούμε τώρα ένα πρακτικό παράδειγμα -

SELECT * FROM members;

Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb μας δίνει τα ακόλουθα αποτελέσματα που εμφανίζονται παρακάτω.

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 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.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553

Ας υποθέσουμε ότι το τμήμα μάρκετινγκ θέλει τα στοιχεία των μελών να ταξινομούνται με φθίνουσα σειρά της ημερομηνίας γέννησης. Αυτό θα τους βοηθήσει να στείλουν χαιρετισμούς γενεθλίων εγκαίρως. Μπορούμε να πάρουμε την εν λόγω λίστα εκτελώντας ένα ερώτημα όπως παρακάτω -

SELECT * FROM members ORDER BY date_of_birth DESC;

Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb μας δίνει τα ακόλουθα αποτελέσματα που εμφανίζονται παρακάτω.

Το ίδιο ερώτημα σε αύξουσα σειρά

ΕΠΙΛΟΓΗ * ΑΠΟ μέλη ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ ημερομηνία_of_birth ASC

Σημείωση: Οι τιμές NULL δεν σημαίνει τιμές (όχι μηδέν ή κενή συμβολοσειρά). Παρατηρήστε τον τρόπο με τον οποίο ταξινομήθηκαν.

Περισσότερα παραδείγματα

Ας εξετάσουμε το ακόλουθο σενάριο που παραθέτει όλες τις εγγραφές μελών.

SELECT * FROM `members`;

Η εκτέλεση του παραπάνω σεναρίου δίνει τα ακόλουθα αποτελέσματα που φαίνονται παρακάτω.

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 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.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

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

SELECT * FROM `members` ORDER BY `gender`;
 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 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.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

Τα μέλη "Θηλυκά" εμφανίστηκαν πρώτα ακολουθούμενα από μέλη "Άνδρας", διότι όταν χρησιμοποιείται η ρήτρα ORDER BY DESC χωρίς να καθορίζεται η λέξη-κλειδί ASC ή MySQL DESC, από προεπιλογή, η MySQL έχει ταξινομήσει το αποτέλεσμα ερωτήματος που έχει οριστεί με αύξουσα σειρά.

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

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb δίνει τα ακόλουθα αποτελέσματα.

Η στήλη φύλου ταξινομήθηκε σε αύξουσα σειρά από προεπιλογή, ενώ η στήλη ημερομηνίας γέννησης ταξινομήθηκε με φθίνουσα σειρά

Γιατί μπορούμε να χρησιμοποιήσουμε DESC και ASC;

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

Το DESC in SQL είναι μια λέξη-κλειδί που γίνεται πρακτική σε τέτοιες καταστάσεις. Μπορούμε να γράψουμε ένα ερώτημα που ταξινομεί τη λίστα με φθίνουσα σειρά χρησιμοποιώντας την ημερομηνία πληρωμής.

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

Η λέξη-κλειδί ASC είναι βολική σε τέτοιες καταστάσεις. μπορούμε να πάρουμε τη λίστα ταινιών ταξινομημένη κατά όνομα κατηγορίας και τίτλο ταινίας με αύξουσα σειρά.

Περίληψη

  • Η ταξινόμηση των αποτελεσμάτων ερωτημάτων είναι η τακτοποίηση των σειρών που επιστρέφονται από ένα αποτέλεσμα ερωτήματος που έχει οριστεί είτε σε αύξουσα είτε φθίνουσα σειρά.
  • Η λέξη-κλειδί DESC σε SQL, χρησιμοποιείται για την ταξινόμηση του αποτελέσματος του ερωτήματος που καθορίζεται με φθίνουσα σειρά.
  • Η λέξη-κλειδί ASC χρησιμοποιείται για να ταξινομήσει το σύνολο των ερωτημάτων σε αύξουσα σειρά.
  • Τόσο το DESC όσο και το ASC συνεργάζονται με τη λέξη-κλειδί ORDER BY. Μπορούν επίσης να χρησιμοποιηθούν σε συνδυασμό με άλλες λέξεις-κλειδιά, όπως ο όρος WHERE και LIMIT
  • Η προεπιλογή για ORDER BY όταν τίποτα δεν έχει καθοριστεί ρητά είναι ASC.

ενδιαφέροντα άρθρα...