Presentation is loading. Please wait.

Presentation is loading. Please wait.

תרגול מספר 10 מעבדת SQL מספר 3

Similar presentations


Presentation on theme: "תרגול מספר 10 מעבדת SQL מספר 3"— Presentation transcript:

1 תרגול מספר 10 מעבדת SQL מספר 3
בסיסי נתונים תרגול מספר 10 מעבדת SQL מספר 3

2 הנושאים לתרגול Basic SELECT statements Join Aggregation Order by Top
Subqueries

3 Subquery Output Types Single Value Single Column Table בכל מקום בו יכול להופיע ביטוי, ניתן להשתמש במקומו בתת-שאילתא שמחזירה ערך בודד. לדוגמה: SELECT sname [Ship Name], max_speed [Max Speed] FROM Ships WHERE max_speed > שלוף את שמות החיזרים בעלי מספר הרגליים הנמוך ביותר "Speed Delta" מוגדר כַּהפרש בין מהירות חללית מסוימת למהירות החללית המהירה ביותר בצי, הצג את הדלתא עבור כל חללית (SELECT AVG(max_speed) FROM Ships) 90

4 Referencing the Outer Query
Subquery Output Types Single Value Single Column Table Referencing the Outer Query נניח שנרצה לדעת עבור כל כוכב לכת את החללית המהירה ביותר שהגיעה אליו: SELECT pname [Planet], sname [Fastest Ship] FROM dbo.Planets p JOIN dbo.Trips t ON p.p_no = t.p_no JOIN dbo.Ships s ON t.s_no = s.s_no WHERE max_speed = ( SELECT MAX(max_speed) FROM dbo.Trips t1 JOIN dbo.Ships s ON t1.s_no = s1.s_no WHERE t1.p_no = p.p_no)

5 Subquery Output Types Single Value Single Column Table ניתן להשתמש בתת-שאילתא שמחזירה עמודה בודדת בסעיף WHERE במספר אופנים: SELECT pname [Planet] FROM dbo.Planets p JOIN dbo.Trips t ON p.p_no = t.p_no JOIN dbo.Aliens_in_trips at ON t.t_no = at.t_no WHERE id_no IN (SELECT id_no FROM dbo.Aliens_in_trips GROUP BY id_no HAVING COUNT(*) = 1) מה עושה השאילתא? שלוף את שמות כוכבי הלכת בהם ביקרו חייזרים בעלי יותר מ- 5 רגליים שביקרו בלפחות שלושה כוכבי לכת שונים * IN IN ANY ALL

6 Subquery Output Types Single Value Single Column Table ניתן להשתמש בתת-שאילתא שמחזירה עמודה בודדת בסעיף WHERE במספר אופנים: SELECT pname [Planet] FROM dbo.Planets p JOIN dbo.Trips t ON p.p_no = t.p_no JOIN dbo.Aliens_in_trips at ON t.t_no = at.t_no WHERE id_no = ANY (SELECT id_no FROM dbo.Aliens_in_trips GROUP BY id_no HAVING COUNT(*) = 1) שלוף את שמות כל החלליות שמהירוֹת יותר מלפחות חללית אחת בעלת פחות מושבים IN ANY ALL

7 Subquery Output Types Single Value Single Column Table ניתן להשתמש בתת-שאילתא שמחזירה עמודה בודדת בסעיף WHERE במספר אופנים: פועל בדיוק כמו ANY רק עבור כל הרשומות בתת-השאילתא שלוף את שמות כוכבי הלכת שהכי גדולים במערכת השמש שלהם (ניתן לביצוע בלי אגרגציה) IN ANY ALL

8 Subquery Output Types ניתן להשתמש בתת-שאילתא שמחזירה טבלה בשתי צורות:
Single Value Single Column Table ניתן להשתמש בתת-שאילתא שמחזירה טבלה בשתי צורות: SELECT pname [Planet] FROM dbo.Planets p WHERE NOT EXISTS(SELECT * FROM dbo.Aliens a JOIN dbo.Aliens_in_trips at ON a.id_no = at.id_no JOIN dbo.Trips t ON at.t_no = t.t_no WHERE t.p_no = p.p_no AND no_of_legs > 5) מה עושה השאילתא? EXISTS EXISTS As table

9 Subquery Output Types ניתן להשתמש בתת-שאילתא שמחזירה טבלה בשתי צורות:
Single Value Single Column Table ניתן להשתמש בתת-שאילתא שמחזירה טבלה בשתי צורות: ניתן לכתוב תת-שאילתא בשדה ה- FROM והתוצאה תתנהג כמו טבלה מצא, עבור כל חללית, את ממוצע מספר הרגליים המקסימאלי שהיה לחייזר שטס בה במסע מסוים האם התוצאה נכונה? CAST(expression AS <data_type>) EXISTS As table


Download ppt "תרגול מספר 10 מעבדת SQL מספר 3"

Similar presentations


Ads by Google