פקודות לטיפול בנתונים (data manipulation )

61
1 לללללל לללללל לללללל לללללל ללללללל ללללללל( ( Data Data Manipulation Manipulation ) )

Upload: chen

Post on 08-Jan-2016

38 views

Category:

Documents


5 download

DESCRIPTION

פקודות לטיפול בנתונים (Data Manipulation ). הפקודה : SELECT. 2 המשפטים הראשונים הינם חובה וארבעת הנוספים-רשות. משפט ה SELECT -. מגדיר את שמות העמודות שיש לשלוף ולהציג שמות של עמודות מטבלה אחת או יותר ניתן להגדיר חישובים על עמודות - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: פקודות לטיפול בנתונים  (Data Manipulation )

1

פקודות לטיפול בנתוניםפקודות לטיפול בנתונים( ( Data ManipulationData Manipulation))

Page 2: פקודות לטיפול בנתונים  (Data Manipulation )

2

SELECTSELECTהפקודה: הפקודה:

המשפטים הראשונים הינם חובה וארבעת 2 •הנוספים-רשות

Page 3: פקודות לטיפול בנתונים  (Data Manipulation )

3

- -SELECTSELECTמשפט המשפט ה

מגדיר את שמות העמודות שיש לשלוף ולהציג•

שמות של עמודות מטבלה אחת או יותר•

ניתן להגדיר חישובים על עמודות•

ניתן להגדיר פונקציות הפועלות על עמודה • )חישוב ממוצע של גיל(

ניתן להגדיר שם נוסף לעמודה•

הסדר שבו שמות העמודות רשומות • הוא הסדר שבו הן תוצגנה

Page 4: פקודות לטיפול בנתונים  (Data Manipulation )

4

WHEREWHERE משפטמשפט

הגדרת תנאי לוגי לשליפת שורות•<=>, =, <, >, ><, מכיל אופרטורים השוואתיים: =•NOT, OR, ANDמכיל אופרטורים לוגיים: •בדיקת קיום ערך בתוך קבוצה סגורה של ערכים •

-IN ע”י שימוש ב בדיקת קיום ערך בתוך טווח ערכים ע”י שימוש •

BETWEEN ב- בדיקת קיום מחרוזת תווים בתוך ערכים של עמודה •

LIKEע”י שימוש ב-

Page 5: פקודות לטיפול בנתונים  (Data Manipulation )

5

משפטים נוספים בפקודת ה- משפטים נוספים בפקודת ה- SELECTSELECT

- מאפשר הקבצת GROUPED BY משפט•שורות שבהם מופיעים בעמודה/ות מסוימת/ות

ערכים זהים

מגדיר תנאי לוגי - HAVING משפט• אותו יקיימו השורות המקובצות בלבד

מגדיר סדר המיון - ORDER BY משפט• שבו תוצגנה השורות הנשלפות

Page 6: פקודות לטיפול בנתונים  (Data Manipulation )

6

מול מול SQLSQL של שפתשל שפת SelectSelect הפקודההפקודהשל האלגברה של האלגברה SelectSelect פקודתפקודת

הטבלאיתהטבלאית של שפת Select הפקודה•

SQL האופרטורים של 3מכילה בתוכה את האלגברה הטבלאית:

•?

Page 7: פקודות לטיפול בנתונים  (Data Manipulation )

7

מול מול SQLSQL של שפתשל שפת SelectSelect הפקודההפקודהשל האלגברה של האלגברה SelectSelect פקודתפקודת

הטבלאיתהטבלאית•Join, Project, Select

Page 8: פקודות לטיפול בנתונים  (Data Manipulation )

8

בסיס הנתוניםבסיס הנתונים

Page 9: פקודות לטיפול בנתונים  (Data Manipulation )

9

בסיס הנתוניםבסיס הנתונים

STUDENTS סטודנטים

STUDENT_ID NAME CITY

מס. סטודנט שם סטודנט עיר

105 MOSHE HAIFA

210 DAN HAIFA

107 EYAL TEL-AVIV

110 RAN HAIFA

245 YOEL HAIFA

240 AYELET TEL-AVIV

200 DAVID TEL-AVIV

310 TOVA JERUSALEM

Page 10: פקודות לטיפול בנתונים  (Data Manipulation )

10

בסיס הנתוניםבסיס הנתוניםGrades ציונים

STUDENT_ID COURSE_ID SEMESTER TERM GRADE

מס. סטודנט מס. קורס סמסטר מועד ציון

105 C-55 SUM2007 A 70

210 M-100 AUT2008 A 90

105 M-100 SUM2007 B 50

105 C-200 AUT2008 A 85

210 C-200 AUT2008 A 80

210 B-10 WIN2008 A 50

105 B-40 WIN2008 B 70

245 M-100 AUT2008 A 80

245 B-10 AUT2008 A 70

200 C-200 AUT2008 B 50

200 B-10 AUT2008 A 65

245 B-40 WIN2007 A 95

200 M-100 SUM2007 B 90

310 M-100 SUM2007 A 100

Page 11: פקודות לטיפול בנתונים  (Data Manipulation )

11

שליפת כל העמודות וכל השורות - טבלה שליפת כל העמודות וכל השורות - טבלה אחתאחת

Page 12: פקודות לטיפול בנתונים  (Data Manipulation )

12

שליפת שורות ועמודות מסוימותשליפת שורות ועמודות מסוימות

Page 13: פקודות לטיפול בנתונים  (Data Manipulation )

13

שינוי שם עמודהשינוי שם עמודה

Page 14: פקודות לטיפול בנתונים  (Data Manipulation )

14

שליפת שורות ללא הצגת שורות שליפת שורות ללא הצגת שורות כפולותכפולות

Page 15: פקודות לטיפול בנתונים  (Data Manipulation )

15

בחירת שורות - בדיקת השוואהבחירת שורות - בדיקת השוואה

Page 16: פקודות לטיפול בנתונים  (Data Manipulation )

16

בחירת שורות - בדיקת השוואהבחירת שורות - בדיקת השוואה

Page 17: פקודות לטיפול בנתונים  (Data Manipulation )

17

בחירת שורות - בדיקת השוואה עם תנאי בחירת שורות - בדיקת השוואה עם תנאי בוליאניבוליאני

Page 18: פקודות לטיפול בנתונים  (Data Manipulation )

18

בחירת שורות - בדיקת טווח ערכים בחירת שורות - בדיקת טווח ערכים רציףרציף

Page 19: פקודות לטיפול בנתונים  (Data Manipulation )

19

בחירת שורות - בדיקת קיום ערך בתוך קבוצת בחירת שורות - בדיקת קיום ערך בתוך קבוצת ערכיםערכים

Page 20: פקודות לטיפול בנתונים  (Data Manipulation )

20

בחירת שורות - בדיקת מחרוזתבחירת שורות - בדיקת מחרוזת

Wild

Page 21: פקודות לטיפול בנתונים  (Data Manipulation )

21

בחירת שורות - בדיקת מחרוזתבחירת שורות - בדיקת מחרוזת

Page 22: פקודות לטיפול בנתונים  (Data Manipulation )

22

Calculated Calculatedעמודות מחושבות )עמודות מחושבות )columnscolumns))

‘AUT2008’

2008

Page 23: פקודות לטיפול בנתונים  (Data Manipulation )

23

הוספת כיתוב קבועהוספת כיתוב קבוע

2008

‘AUT2008’

Page 24: פקודות לטיפול בנתונים  (Data Manipulation )

24

((Build-In FunctionBuild-In Functionפונקציות מובנות )פונקציות מובנות )

פועלות על עמודה כל שהיא ומחזירות ערך יחיד•

אם רוצים שהפונקציה תתעלם מערכים כפולים •לפני שם העמודה Distinctבעמודה נשתמש ב-

רשימת הפונקציות הינה:•

Page 25: פקודות לטיפול בנתונים  (Data Manipulation )

25

תחביר הפקודהתחביר הפקודה

Page 26: פקודות לטיפול בנתונים  (Data Manipulation )

26

דוגמאותדוגמאות

Page 27: פקודות לטיפול בנתונים  (Data Manipulation )

27

דוגמאותדוגמאות

2007

‘SUM2007’

Page 28: פקודות לטיפול בנתונים  (Data Manipulation )

28

((Order ByOrder Byמיון התוצאה )מיון התוצאה )

Page 29: פקודות לטיפול בנתונים  (Data Manipulation )

29

Grouped Groupedשאילתות מקובצות- שאילתות מקובצות- QueriesQueries

מאפשר הקבצה של שורות בעלות ערך זהה•

הצגת שורה אחת עבור אוסף של שורות •המכילות אותו ערך בעמודות מסוימות

מגדיר תנאי על השורות Havingמשפט ה- •המקובצות

חייב Group By כל שם עמודה המופיע במשפט•ובאותו הסדר Selectלהופיע קודם במשפט ה-

Page 30: פקודות לטיפול בנתונים  (Data Manipulation )

30

Grouped QueriesGrouped Queriesשאילתות מקובצות - שאילתות מקובצות -

Page 31: פקודות לטיפול בנתונים  (Data Manipulation )

31

Grouped Groupedשאילתות מקובצות - שאילתות מקובצות - QueriesQueries

desc

Page 32: פקודות לטיפול בנתונים  (Data Manipulation )

32

שאילתות עם מספר טבלאותשאילתות עם מספר טבלאות

מתבסס על הקשרים הלוגיים בין הטבלאות•

מתבצע ע”י הגדרת תנאי כל ( Joinהצירוף )•שהוא בין העמודות של הטבלאות

או ( Equi Joinהתנאי יכול להיות: שוויון )•( Theta Join תנאי לוגי אחר )

מספרמערכות מסחריות קובעות מגבלות לגבי •8הטבלאות המשתתפות -

Page 33: פקודות לטיפול בנתונים  (Data Manipulation )

33

דוגמאדוגמא

הצג את שמות הסטודנטים ואת עיר מגוריהם •c-200 עבור כל הסטודנטים שלמדו בקורס

Page 34: פקודות לטיפול בנתונים  (Data Manipulation )

34

שאילתות עם מספר טבלאותשאילתות עם מספר טבלאות

INNER

Page 35: פקודות לטיפול בנתונים  (Data Manipulation )

35

שאילתות עם מספר טבלאותשאילתות עם מספר טבלאות

Page 36: פקודות לטיפול בנתונים  (Data Manipulation )

36

שאילתות עם מספר טבלאותשאילתות עם מספר טבלאות

Page 37: פקודות לטיפול בנתונים  (Data Manipulation )

37

סטודנטים בקורסים עם ציון ממוצע גבוה מציון הממוצע של הקורס

•SELECT • course_name,student_id,student_name,c_avg.course_avg,avg)grade( as

student_avg•FROM grades g, students s, courses c, )SELECT course_id,

avg)grade( as course_avg FROM grades GROUP BY course_id( c_avg•WHERE s.student_id = g.student_id •and c.course_id = g.course_id •and c_avg.course_id = g.course_id •GROUP BY course_name,student_id,student_name,c_avg.course_avg•HAVING avg)grade( < c_avg.course_avg •ORDER BY s.student_id,student_name

Page 38: פקודות לטיפול בנתונים  (Data Manipulation )

38

Outer JoinOuter Join צירוף טבלאות ע”י צירוף טבלאות ע”י

מעביר Inner Join הצירוף הרגיל הנקרא גם• 2לטבלת התוצאה רק זוגות של שורות מ-

טבלאות עבורן מתקיים תנאי הצירוף

מעביר אל טבלת Outer Join הצירוף החיצוני•התוצאה את כל השורות של אחת או שתי

הטבלאות המשתתפות בצירוף:

Page 39: פקודות לטיפול בנתונים  (Data Manipulation )

39

Outer JoinOuter Join צירוף טבלאות ע”י צירוף טבלאות ע”י

• Left Outer Join לטבלת התוצאה עוברות - השמאלית כל השורות מהטבלה

• Right Outer Join לטבלה התוצאה עוברות -כל השורות מהטבלה הימנית

• Full Outer Join לטבלת התוצאה עוברות - הטבלאות2כל השורות מ-

Page 40: פקודות לטיפול בנתונים  (Data Manipulation )

40

- -Outer JoinOuter Join צירוף טבלאות ע”יצירוף טבלאות ע”יתחביר הפקודהתחביר הפקודה

Page 41: פקודות לטיפול בנתונים  (Data Manipulation )

41

- - Outer JoinOuter Join צירוף טבלאות ע”יצירוף טבלאות ע”ידוגמא:דוגמא:

הצג את רשימת ראשי המחלקה, שם המחלקה •שבראשם הם עומדים ושמות הקורסים

המוצעים ע”י אותה מחלקה

Page 42: פקודות לטיפול בנתונים  (Data Manipulation )

42

צירוף טבלה אל עצמהצירוף טבלה אל עצמה( ( Reflexive Join, Self JoinReflexive Join, Self Join))

מאפשר התייחסות מספר פעמים אל אותה •טבלה

Page 43: פקודות לטיפול בנתונים  (Data Manipulation )

43

תת שאילתאתת שאילתא

להיקרא שפה מובנית SQL יכולת הקינון מאפשרת לשפת•

סדר ביצוע השאילתות הוא מתת השאילתא הפנימית ביותר ועד •לשאילתא הראשית

WHERE תת השאילתא מוקפת בסוגריים ומופיעה בתוך משפט• של השאילתא הראשית

תת השאילתא יוצרת טבלת תוצאה המכילה עמודה אחת בלבד •או ערך בודד

תת השאילתא אינה יכולה להכיל מיון•

של תת-שאילתא יכול להכיל בעצמו תת WHERE משפט•

מקונןשאילתא נוספת - מבנה

Page 44: פקודות לטיפול בנתונים  (Data Manipulation )

44

תת שאילתא - דוגמאתת שאילתא - דוגמא

Page 45: פקודות לטיפול בנתונים  (Data Manipulation )

45

תת שאילתאתת שאילתא

כאשר תת שאילתא מחזירה קבוצת ערכים ניתן •לבדוק אם הערכים של עמודה מהשאילתא

הראשית מופיעים בתוך קבוצת הערכים המוחזרים ע”י תת השאילתא באמצעות

IN האופרטור

Page 46: פקודות לטיפול בנתונים  (Data Manipulation )

46

תת שאילתא - דוגמאותתת שאילתא - דוגמאותומספר הקורס

Page 47: פקודות לטיפול בנתונים  (Data Manipulation )

47

תת שאילתא - דוגמאותתת שאילתא - דוגמאות

NAME, CITY

Page 48: פקודות לטיפול בנתונים  (Data Manipulation )

48

נקודות והציונים שלהם 4סטודנטים שלא לקחו קורסים עם 75 מעל

•SELECT student_id, student_name, course_name, points, grade

•FROM students s, grades g, courses c •WHERE g.student_id=s.student_id

• and c.course_id =g.course_id

• and not exist )SELECT * from courses WHERE points=4(

• and grade < 75

Page 49: פקודות לטיפול בנתונים  (Data Manipulation )

49

איחוד תוצאות של שאילתות איחוד תוצאות של שאילתות ((UnionUnion ) )

Page 50: פקודות לטיפול בנתונים  (Data Manipulation )

50

( ( IntersectIntersectחיתוך תוצאות של שאילתות )חיתוך תוצאות של שאילתות )

Page 51: פקודות לטיפול בנתונים  (Data Manipulation )

51

פקודות לעדכון בסיס הנתונים - הוספה פקודות לעדכון בסיס הנתונים - הוספה ((Single Row InsertSingle Row Insertשל שורה בודדת )של שורה בודדת )

מאפשרת הוספת שורה חדשה לטבלה קיימת•

Page 52: פקודות לטיפול בנתונים  (Data Manipulation )

52

הוספה של שורה בודדתהוספה של שורה בודדת

מאחר ואנו קובעים ערכים לכל העמודות, ניתן •גם:

Page 53: פקודות לטיפול בנתונים  (Data Manipulation )

53

((Multi-Row InsertMulti-Row Insertהוספת מספר שורות )הוספת מספר שורות )

חדשה

Using course_id

Page 54: פקודות לטיפול בנתונים  (Data Manipulation )

54

((UpdateUpdateעדכון שורות )עדכון שורות )

Page 55: פקודות לטיפול בנתונים  (Data Manipulation )

55

דוגמאותדוגמאות

.2007

‘SUM2007’

Page 56: פקודות לטיפול בנתונים  (Data Manipulation )

56

((DeleteDeleteבטול שורות )בטול שורות )

Page 57: פקודות לטיפול בנתונים  (Data Manipulation )

57

בטול שורות - דוגמאותבטול שורות - דוגמאות

Page 58: פקודות לטיפול בנתונים  (Data Manipulation )

58

)ת.ז ,

Page 59: פקודות לטיפול בנתונים  (Data Manipulation )

59

תרגיליםתרגילים

Page 60: פקודות לטיפול בנתונים  (Data Manipulation )

60

תרגיליםתרגילים

Page 61: פקודות לטיפול בנתונים  (Data Manipulation )

61

תרגיליםתרגילים