סדרת SQL בסיסי - פוסט 7 - המילים ORDER ו LIMIT

16/08/2024

בשיעור זה נלמד על עוד 3 פקודות חשובות בכתיבת שאילתות: ORDER, LIMIT ו OFFSET.

1. מיון התוצאות

אני חוזר ל SQLime ויוצר בסיס נתונים לדוגמה חדש ואז מציג את כל הנתונים מטבלת העובדים:

select * from employees;

אנחנו רואים שלכל עובד יש משכורת אבל אנחנו קיבלנו את התוצאות קצת בערבוביה. הרבה פעמים נוח לנו לראות את הנתונים ממוינים לפי שדה אחד או יותר - ובשביל זה ל SQL יש את הפקודה ORDER BY. נוסיף אותה לשליפה כדי להציג את הנתונים ממויינים לפי המשכורת:

select * from employees ORDER BY salary;

או אם אנחנו רוצים משכורות גבוהות תחילה נוכל להשתמש במיון בסדר יורד באמצעות הוספת המילה DESC אחרי שם העמודה:

select * from employees ORDER BY salary DESC;

נשים לב שבנתוני הדוגמה לדייב ולסינדי יש את אותה משכורת. סינדי הופיעה קודם אבל זה לגמרי במקרה. אנחנו יכולים להוסיף מיון משני למשל לפי שם העובד:

select * from employees ORDER BY salary DESC, name ASC;

עכשיו אני מבקש את כל הנתונים ממוינים בסדר יורד לפי עמודת המשכורת ואם יש כמה עובדים עם אותה משכורת אז הם יסודרו בסדר עולה לפי עמודת שם העובד.

2. הצגת רק חלק מהתוצאות

בטבלת הדוגמה יש יחסית מעט עובדים אבל קל לדמיין מערכת אמיתית עם אלפי או עשרות אלפי עובדים. עם SQL אני יכול לקבל רק חלק מהתוצאות בעזרת הפקודה LIMIT:

select * from employees ORDER BY salary DESC, name ASC LIMIT 5;

וכך אני מקבל את 5 השורות של העובדים עם המשכורת הגבוהה ביותר. בנוסף הפקודה OFFSET מאפשרת להתחיל את התוצאות שמוחזרות ממקום נמוך יותר למשל:

select * from employees ORDER BY salary DESC, name ASC LIMIT 5 OFFSET 5;

וקיבלתי את 5 התוצאות "הבאות בתור".

3. עכשיו אתם

  1. הציגו את כל השורות בטבלת העובדים ממוינות לפי המחלקה, ובתוך כל מחלקה מיון משני לפי המשכורת.

  2. הציגו רק את 5 השורות העליונות מתוך התוצאה.