סדרת SQL בסיסי - פוסט 12 - עוד כמה יכולות של SELECT
הנה עוד כמה יכולות של פקודת SELECT שיעזרו לנו בכתיבת שאילתות.
1. כותרות לעמודות
מה קורה כששם העמודה בבסיס הנתונים ארוך מדי או לא מספיק אינפורמטיבי? הפקודה SELECT מאפשרת לנו להגדיר כותרת אחרת לעמודה באמצעות הוספת המילה as אחרי שם העמודה. זה נראה ככה (נסו את זה על בסיס הנתונים לדוגמה של SQLime):
SELECT id, name, city as City, salary as 'Hourly Wage' from employees;
שימו לב שאת City כתבתי כמילה בודדת אחרי as, אבל את Hourly Wage כבר הקפתי בגרש בודד כי מדובר בכמה מילים.
2. ערכים מחושבים
בשיעור על עדכון ראינו שאנחנו יכולים לעדכן ערך להיות תוצאה של ביטוי חשבוני. מעניין לשים לב שגם ב SELECT ניתן לרשום ביטוי חשבוני ולקבל את ערך העמודה אחרי הפעלת הביטוי. הדוגמה הבאה מציגה את המשכורת בתוספת 10%:
SELECT *, salary * 1.1 as 'After Raise' from employees;
id name city department salary After Raise
11 Diane London hr 70 77
12 Bob London hr 78 85.80000000000001
21 Emma London it 84 92.4
22 Grace Berlin it 90 99.00000000000001
23 Henry London it 104 114.4
24 Irene Berlin it 104 114.4
25 Frank Berlin it 120 132
31 Cindy Berlin sales 96 105.60000000000001
32 Dave London sales 96 105.60000000000001
33 Alice Berlin sales 100 110.00000000000001
3. בחירה בלי טבלה
פקודת SELECT יכולה גם לעזור לנו בניסויים עם SQL אפילו כשאין טבלה, לדוגמה בשביל פעולות חשבון נוכל לכתוב:
select 2 + 5;
ונקבל את התוצאה 7. או בשביל לקבל מספר עמודות נוכל לכתוב:
select 2 as "A", 3 as "B", 5 as "C";
4. הצגת ערכים ייחודיים
נתבונן בתוצאות של:
select id, name, city, department from employees;
אנחנו רואים שהעובדים מחולקים בין המחלקות hr, it ו sales. אפשר לנסות להדפיס רק את שמות המחלקות ואז נקבל:
select department from employees;
department
hr
hr
it
it
it
it
it
sales
sales
sales
שזה בדיוק הרשימה הנכונה אבל למה כל השורות הכפולות? התשובה היא שזה שבחרתי עמודה מסוימת לא אומר כלום על העמודות האחרות, ומבחינת SQL הוא מציג את הערך של עמודת department לכל אחת מהשורות. אני יכול לבקש מ select לצמצם ערכים כפולים בעזרת המילה distinct. זה נראה ככה:
select distinct department from employees;
והתוצאה:
department
hr
it
sales