- ORDER BY عبارة عن جملة في SQL يتم استخدامها مع استعلام SELECT لجلب السجلات بترتيب تصاعدي أو تنازلي من الجدول.
- مثلما نقوم بفرز الأعداد الصحيحة وقيم السلسلة المخزنة في عمود الجداول، وبالمثل، يمكننا فرز التواريخ المخزنة في عمود جدول SQL.
- سيتم فرز جميع السجلات بشكل افتراضي بترتيب تصاعدي. لفرز السجلات بترتيب تنازلي، يتم استخدام الكلمة الأساسية DESC.
دعونا نرى بعض الأمثلة العملية لفهم هذا المفهوم بشكل أكثر وضوحا. سوف نستخدم قاعدة بيانات MySQL لكتابة كافة الاستعلامات.
كومة في س
ضع في اعتبارك أننا أنشأنا جدولًا باسم الموظفين في قاعدة بيانات MySQL بالبيانات التالية:
بطاقة تعريف | اسم | مرتب | تاريخ الانضمام | تاريخ الميلاد |
---|---|---|---|---|
1 | روهيت مور | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | كونال موهيت | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
3 | سوراب جها | 61000 | 01/05/2015 | 1983-02-20 12:18:45 |
4 | أنانت ديساي | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | كريشنا شارما | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | بهافيش جاين | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
مثال 1:
قم بكتابة استعلام لعرض كافة بيانات الموظفين مرتبة تصاعدياً حسب تاريخ ميلادهم.
استفسار:
mysql> SELECT *FROM employees ORDER BY DOB;
وبما أننا أردنا فرز السجلات بترتيب تصاعدي لتاريخ ميلاد الموظفين، فقد قمنا بتطبيق جملة ORDER BY على العمود 'DOB'.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | تاريخ الانضمام | تاريخ الميلاد |
---|---|---|---|---|
4 | أنانت ديساي | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | سوراب جها | 61000 | 01/05/2015 | 1983-02-20 12:18:45 |
2 | كونال موهيت | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | روهيت مور | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | بهافيش جاين | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | كريشنا شارما | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التصاعدي لـ DOB.
مثال 2:
قم بكتابة استعلام لعرض كافة بيانات الموظفين مرتبة تنازلياً حسب تاريخ التحاقهم.
استفسار:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
نظرًا لأننا أردنا فرز السجلات بالترتيب التنازلي لتاريخ انضمام الموظفين، فقد قمنا بتطبيق جملة ORDER BY مع الكلمة الأساسية DESC في العمود 'Joining_Date'.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | تاريخ الانضمام | تاريخ الميلاد |
---|---|---|---|---|
6 | بهافيش جاين | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | كونال موهيت | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | روهيت مور | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | أنانت ديساي | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | سوراب جها | 61000 | 01/05/2015 | 1983-02-20 12:18:45 |
5 | كريشنا شارما | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التنازلي لتواريخ الانضمام.
مثال 3:
قم بكتابة استعلام لعرض كافة بيانات الموظفين مرتبة تصاعدياً حسب سنة ميلادهم.
استفسار:
سلسلة الإرسال كـ int Java
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
وبما أننا أردنا فرز السجلات بالترتيب التصاعدي لسنة ميلاد الموظفين، فقد قمنا بتطبيق جملة ORDER BY. يتم تطبيق الدالة DATE_FORMAT () على العمود DOB باستخدام المعلمة '%Y' لاستخراج السنة فقط من 'DOB'.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | تاريخ الانضمام | سنة الميلاد |
---|---|---|---|---|
4 | أنانت ديساي | 59000 | 2018-08-27 | 1978 |
3 | سوراب جها | 61000 | 01/05/2015 | 1983 |
2 | كونال موهيت | 34000 | 2021-01-01 | 1990 |
1 | روهيت مور | 50000 | 2020-02-08 | 1991 |
6 | بهافيش جاين | 37000 | 2021-07-03 | 1998 |
5 | كريشنا شارما | 48000 | 2010-10-23 | 1999 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التصاعدي لسنة ميلاد الموظف.
مثال 4:
قم بكتابة استعلام لعرض كافة بيانات الموظفين مرتبة تنازلياً حسب ساعة ميلادهم.
استفسار:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
نظرًا لأننا أردنا فرز السجلات بالترتيب التنازلي لساعة ميلاد الموظفين، فقد قمنا بتطبيق جملة ORDER BY مع الكلمة الأساسية DESC. يتم تطبيق الدالة DATE_FORMAT () على العمود DOB باستخدام المعلمة '%H' لاستخراج ساعة الميلاد فقط من العمود 'DOB'.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | تاريخ الانضمام | ساعة_الميلاد |
---|---|---|---|---|
2 | كونال موهيت | 34000 | 2021-01-01 | 19 |
1 | روهيت مور | 50000 | 2020-02-08 | 18 |
4 | أنانت ديساي | 59000 | 2018-08-27 | خمسة عشر |
6 | بهافيش جاين | 37000 | 2021-07-03 | 13 |
3 | سوراب جها | 61000 | 01/05/2015 | 12 |
5 | كريشنا شارما | 48000 | 2010-10-23 | 02 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التنازلي لساعة ميلاد الموظف.
مثال 5:
قم بكتابة استعلام لعرض كافة بيانات الموظفين مرتبة تصاعدياً حسب سنة انضمامهم.
Mysql إنشاء مستخدم
استفسار:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
وبما أننا أردنا فرز السجلات بترتيب تصاعدي لسنة انضمام الموظفين، فقد قمنا بتطبيق جملة ORDER BY. يتم تطبيق الدالة DATE_FORMAT () على العمود Joining_Date باستخدام المعلمة '%Y' لاستخراج السنة فقط من 'Joining_Date'.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | سنة_الإنضمام | تاريخ الميلاد |
---|---|---|---|---|
5 | كريشنا شارما | 48000 | 2010 | 1999-03-21 02:14:56 |
3 | سوراب جها | 61000 | 2015 | 1983-02-20 12:18:45 |
4 | أنانت ديساي | 59000 | 2018 | 1978-06-29 15:45:13 |
1 | روهيت مور | 50000 | 2020 | 1991-01-28 18:06:08 |
2 | كونال موهيت | 34000 | 2021 | 1990-05-15 19:10:00 |
6 | بهافيش جاين | 37000 | 2021 | 1998-08-02 13:00:01 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التصاعدي لسنة التحاق الموظفين.
مثال 6:
قم بكتابة استعلام لعرض كافة بيانات الموظفين مرتبة تنازليا حسب يوم التحاق الموظفين.
استفسار:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
نظرًا لأننا أردنا فرز السجلات بالترتيب التنازلي ليوم انضمام الموظفين، فقد قمنا بتطبيق جملة ORDER BY مع الكلمة الأساسية DESC. يتم تطبيق وظيفة DAY () على العمود 'Joining_Date' لاستخراج يوم الانضمام فقط من Joining_Date.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | يوم_الانضمام | تاريخ الميلاد |
---|---|---|---|---|
4 | أنانت ديساي | 59000 | 27 | 1978-06-29 15:45:13 |
5 | كريشنا شارما | 48000 | 23 | 1999-03-21 02:14:56 |
1 | روهيت مور | 50000 | 8 | 1991-01-28 18:06:08 |
6 | بهافيش جاين | 37000 | 3 | 1998-08-02 13:00:01 |
2 | كونال موهيت | 34000 | 1 | 1990-05-15 19:10:00 |
3 | سوراب جها | 61000 | 1 | 1983-02-20 12:18:45 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التنازلي ليوم انضمام الموظفين.
مثال 7:
كتابة استعلام لعرض كافة بيانات الموظفين مرتبة تصاعدياً حسب تاريخ ميلاد الموظفين.
استفسار:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
وبما أننا أردنا فرز السجلات بالترتيب التصاعدي ليوم ميلاد الموظفين، فقد قمنا بتطبيق جملة ORDER BY. يتم تطبيق وظيفة DAY () على العمود 'DOB' لاستخراج يوم الميلاد فقط من DOB.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | سنة_الإنضمام | يوم الميلاد |
---|---|---|---|---|
6 | بهافيش جاين | 37000 | 2021-07-03 | 2 |
2 | كونال موهيت | 34000 | 2021-01-01 | خمسة عشر |
3 | سوراب جها | 61000 | 01/05/2015 | عشرين |
5 | كريشنا شارما | 48000 | 2010-10-23 | واحد وعشرين |
1 | روهيت مور | 50000 | 2020-02-08 | 28 |
4 | أنانت ديساي | 59000 | 2018-08-27 | 29 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التصاعدي لتاريخ ميلاد الموظف.
مثال 8:
كتابة استعلام لعرض كافة بيانات الموظفين مرتبة تصاعدياً حسب شهر ميلاد الموظف.
استفسار:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
بطاقة تعريف | اسم | مرتب | تاريخ الانضمام | تاريخ الميلاد |
---|---|---|---|---|
1 | روهيت مور | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | سوراب جها | 61000 | 01/05/2015 | 1983-02-20 12:18:45 |
5 | كريشنا شارما | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | كونال موهيت | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
4 | أنانت ديساي | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | بهافيش جاين | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التصاعدي لشهر ميلاد الموظف.
مثال 9:
قم بكتابة استعلام لعرض كافة بيانات الموظفين مرتبة تصاعدياً حسب شهر التحاق الموظف.
استفسار:
قاعدة البيانات
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
وبما أننا أردنا فرز السجلات بترتيب تصاعدي لشهر انضمام الموظفين، فقد قمنا بتطبيق جملة ORDER BY. يتم تطبيق الدالة MONTH () على العمود 'Joining_Date' لاستخراج شهر الانضمام فقط من Joining_Date.
سوف تحصل على الإخراج التالي:
بطاقة تعريف | اسم | مرتب | تاريخ الانضمام | تاريخ الميلاد |
---|---|---|---|---|
2 | كونال موهيت | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | روهيت مور | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | سوراب جها | 61000 | 01/05/2015 | 1983-02-20 12:18:45 |
6 | بهافيش جاين | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | أنانت ديساي | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | كريشنا شارما | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
تظهر النتائج التي تم الحصول عليها من الاستعلام أعلاه أن السجلات يتم عرضها حسب الترتيب التصاعدي لشهر انضمام الموظف.