תרגול SQL לגאמא: שאילתות עם פתרונות

מאת ארז ברזאני · תרגול מקורי של GammaCyber

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

טבלת הדוגמה

נשתמש בטבלה results עם העמודות name, topic, score. שלוש שורות לדוגמה: Yael,C,80; Noam,C,60; Yael,SQL,90. הממוצע בנושא C הוא 70. מספר השורות הוא 3 ומספר השמות הייחודיים הוא 2; אלה שתי שאלות שונות.

סדר חשיבה

קודם מסננים שורות ב־WHERE, אחר כך מקבצים ב־GROUP BY, ולבסוף מסננים קבוצות ב־HAVING. ORDER BY קובע סדר תוצאה מפורש. ללא ORDER BY אין להסתמך על סדר שבו במקרה חזרו שורות במחשב מסוים.

תרגול עצמאי עם הסברים

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

שאלה 1: איזה ביטוי סופר שורות?

  1. COUNT(*)
  2. SUM(name)
  3. ORDER BY
תשובה והסבר

COUNT(*): COUNT(*) סופר שורות, גם אם חלק מהעמודות בהן NULL.

שאלה 2: מה הממוצע של ציוני C בדוגמה?

  1. 60
  2. 70
  3. 80
תשובה והסבר

70: 80 ועוד 60, חלקי 2.

שאלה 3: מה COUNT(DISTINCT name) בדוגמה?

  1. 2
  2. 3
  3. 1
תשובה והסבר

2: Yael ו־Noam הם שני שמות שונים.

שאלה 4: איך בודקים NULL?

  1. score = NULL
  2. score IS NULL
  3. score == NULL
תשובה והסבר

score IS NULL: משתמשים ב־IS NULL; השוואה רגילה ל־NULL אינה בדיקת היעדר ערך.

שאלה 5: מתי משתמשים ב־HAVING?

  1. לסינון קבוצות אחרי קיבוץ
  2. במקום כל WHERE
  3. למחיקת הטבלה
תשובה והסבר

לסינון קבוצות אחרי קיבוץ: למשל HAVING COUNT(*) >= 2 על תוצאות GROUP BY.

שאלה 6: האם SELECT ללא ORDER BY מבטיח סדר?

  1. כן
  2. לא
  3. כן אם יש מעט שורות
תשובה והסבר

לא: סדר מובטח צריך להופיע בחוזה השאילתה באמצעות ORDER BY.

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

הצעד הבא בלמידה

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

לשיעור הקשור בקורסלמפת הקורס וחלוקת התוכן

המשאבים בעמוד הזה פתוחים. חלק משיעורי הקורס זמינים בתצוגה מקדימה, וגישה מלאה בתשלום.

להמשך תרגול

מקורות טכניים וגבולות התרגול

המקורות מסבירים טכנולוגיה. הם אינם אסמכתה למבנה מיון צבאי. התוכן כאן עצמאי; הנחיות הזימון האישי הן הקובעות. מצאתם שגיאה? כתבו לנו.