חידון: הוכיחו את כישורי ה-SQL שלכם! אתה בצד של SQL? או של noSQL?
בדוק את היסודות שלך בשאילתות SQL
האם השימוש ב-ORM מרדד לך את הכישורים?
אל תדאג, זה קורה להמון מפתחים.
קפוץ פנימה ותוכיח את היסודות שלך בשאילתות SQL! 👇
איזו משאילתות ה-SQL הבאות מחזירה נכון שורות שבהן השם הוא “John”?
ב-SQL, סימן שוויון יחיד (=) משמש לבדיקת שוויון בסעיף WHERE, לא == או ===, שהם אופרטורים של JavaScript.
התחביר הנכון הוא SELECT * FROM users WHERE name = 'John';.
SELECT * FROM users WHERE name LIKE(John);
SELECT * FROM users WHERE name = 'John';
SELECT * FROM users WHERE name == "John";
SELECT * FROM users WHERE name === "John";
מה עושה COUNT(column_name) ב-SQL?
COUNT(column_name) סופר את מספר הערכים שאינם NULL בעמודה שצוינה. כדי לספור את כל השורות, כולל NULL, השתמש ב- COUNT(*).
ניתן גם להשתמש ב- COALESCE כדי לוודא ש- NULL יקבלו ערך ברירת מחדל שאינו NULL. לדוגמה: COUNT(COALESCE(column_name, 0)).
סופר את כל השורות כולל ערכי NULL
סופר רק ערכים שאינם NULL בעמודה
סופר ערכי NULL כערך ייחודי אחד
מתייחס לכל ערך NULL כייחודי, בדומה ל- NaN !== NaN
LEFT JOIN מחזיר את כל השורות מהטבלה השמאלית ואת השורות התואמות מהטבלה הימנית, עם NULL עבור שורות לא תואמות בטבלה הימנית.
מחזיר שורה אחת עבור כל שורה תואמת, מתעלם משורות לא תואמות
מחזיר את כל השורות מהטבלה השמאלית, בתוספת השורות התואמות מהימנית
מחזיר את כל השורות התואמות או הלא תואמות, כאשר NULL מציין חוסר התאמה
מחזיר את כל השורות מהטבלה הימנית, עם כל שורות שמאל תואמות
מה עושה INNER JOIN ב-SQL?
INNER JOIN מחזיר שורות שבהן תנאי הצירוף תואם שורות משתי הטבלאות. שורות לא תואמות אינן נכללות בקבוצת התוצאות.
מחזיר שורות לא תואמות משתי הטבלאות
מחזיר את כל השורות משתי הטבלאות, עם NULL עבור שורות לא תואמות
מחזיר שורות שעומדות בתנאי הצירוף בשתי הטבלאות
מחזיר שורות לא תואמות מהטבלה הימנית
מהי תת-שאילתה מתואמת ב-SQL?
תת־שאילתה מתואמת מפנה לעמודות מהשאילתה החיצונית ותלויה בערכי השורה החיצונית. מבחינה לוגית היא נבחנת לכל שורה, אך מתכנן השאילתות עשוי לשכתב או לייעל את הביצוע; אין הבטחה להרצה פיזית נפרדת לכל שורה.
תת־שאילתה שרצה פעם אחת בסך הכול
תת־שאילתה המשמשת רק ב־JOIN
תת־שאילתה שמחזירה רק מספר עמודות
תת־שאילתה שמפנה לעמודות מהשאילתה החיצונית
מהי מטרת סעיף WITH (Common Table Expression) ב-SQL?
סעיף WITH, או Common Table Expression (CTE), משמש להגדרת קבוצת תוצאות זמנית שניתן להפנות אליה בתוך השאילתה הראשית. ב-PostgreSQL, ניתן לצרף את WITH להצהרות כמו SELECT, INSERT, UPDATE, DELETE, או MERGE.
זה יכול לעזור לשפר את הקריאות והתחזוקה של שאילתות מורכבות.
התחביר הוא:
מותר רק בהצהרות DELETE
משמש לפונקציות צבירה
משמש רק להגדרת תצוגות
הגדרת קבוצת תוצאות זמנית לשימוש בהצהרת SQL גדולה יותר
מה עושה האופרטור IS NULL ב-SQL?
IS NULL בודק אם עמודה מסוימת מכילה ערך NULL. IS NOT NULL בודק את ההפך.
בודק אם ערך הוא NULL
בודק אם ערך ריק
בודק אם ערך הוא מחרוזת
בודק אם ערך הוא מספרי
מה עושה האופרטור IN ב-SQL?
IN בודק אם הערך תואם לפחות אחד מהערכים ברשימה, בדומה למספר בדיקות שוויון המחוברות ב־OR. הוא אינו מסיר כפילויות ואינו דורש אינדקס. אינדקס מתאים עשוי לעזור, בהתאם לגודל הטבלה, לסלקטיביות ולתוכנית הביצוע; אין צורך שיהיה UNIQUE.
מחזיר שורות ייחודיות
דורש עמודה עם אינדקס
חל רק על עמודות מספריות
מחזיר שורות התואמות ערכים ברשימה מוגדרת
מה עושה הפונקציה COALESCE ב-SQL?
הפונקציה COALESCE מחזירה את הערך הראשון שאינו NULL ברשימה נתונה, שימושית להחלפת ערכי ברירת מחדל כאשר נתקלים ב-NULL.
לדוגמה, COALESCE(column_name, 0) תחזיר 0 אם column_name הוא NULL.
סופר ערכי NULL
מחזירה את הארגומנט האחרון שאינו NULL
מחזירה את הארגומנט הראשון שאינו NULL
מוגבל לעמודות IDENTITY
מקורו מ-Printer Coalation
מהי מטרת הפקודה GROUP BY ב-SQL?
הפקודה GROUP BY מקבצת שורות בעלות אותם ערכים בעמודות שצוינו, ומאפשרת להפעיל פונקציות צבירה על כל קבוצה.
מסתיר כפילויות
משמש רק בצירופים (JOIN)
ממיין שורות בסדר עולה
מקבץ שורות לפי העמודה/ות שצוינו
התחביר צריך להיות GROUP WITH/USING
מה עושה FULL OUTER JOIN ב-SQL?
FULL OUTER JOIN מחזיר את כל השורות משתי הטבלאות, וממלא שורות לא תואמות ב-NULL עבור ערכים חסרים.
זה שימושי להשוואה בין שתי טבלאות ומציאת הבדלים ביניהן.
מחזיר רק שורות תואמות
מחזיר רק שורות עם ערכים שאינם NULL
מחזיר שורות לא תואמות מהטבלה השמאלית בלבד
מחזיר שורות לא תואמות מהטבלה הימנית בלבד
מחזיר את כל השורות משתי הטבלאות, עם NULL עבור שורות לא תואמות