Download - SQL (Structured Query Language) : מושגים
![Page 1: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/1.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 1
סכמה
SQL (Structured Query Language)מושגים :
טבלה, רלציה
שורה, רשומה,
n-יה
, תכונה, עמודהאטריביוט, שדה
![Page 2: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/2.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 2
Borrowed•Cust_Id•Book_Id•From_Date•To_Date
Ordered
•Cust_Id
•Book_Name
•Order_Date
Books•Book_Id•Book_Name•Year•Max_Time•Faculty•Pages0
Customers•Cust_Id•Cust_Name•Faculty
מסד נתונים של ספרייה
דוגמא של מסד נתונים
![Page 3: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/3.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 3
פירוט הטבלאות
• Customers(Cust_Id, Cust_Name, Faculty)
– Cust_Id: (ייחודי לכל לקוח) מס' זהות של לקוח
– Cust_Name:שם לקוח – Faculty: שם פקולטה
![Page 4: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/4.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 4
Customersהטבלה
Cust_IdCust_NameFaculty
12345Moshe CohenCS
23456Avi BarakEE
34567Avi BarakMED
45678Lior EdriEE
56789Moshe CohenEE
67890Moshe CohenEE
![Page 5: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/5.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 5
פירוט הטבלאות (המשך...)
Books(Book_Id, Book_Name, Year, Max_Time, Faculty, Pages)
Book_Id: (ייחודי לכל עותק) מס' מזהה Book_Name: שם הספר Year: שנת הוצאה Max_Time: (בימים) משך השאלה מקס' אפשרי Faculty: שם פקולטה Pages: מס' עמודים
![Page 6: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/6.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 6
Booksהטבלה
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
![Page 7: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/7.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 7
פירוט הטבלאות (המשך...)
Ordered(Cust_Id, Book_Name, Order_Date) Cust_Id: מס' זהות של לקוח Book_Name: שם הספר Order_Date: תאריך הזמנת הספר
![Page 8: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/8.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 8
Ordered טבלת
Cust_IdBook_NameOrder_Date12345Database Systems14-Oct-2002
45678Anatomy24-Oct-2002
12345Database And Knowledge30-Oct-2002
45678Electronic Circuits12-Oct-2002
![Page 9: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/9.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 9
פירוט הטבלאות (המשך...)
Borrowed(Book_Id, Cust_Id, From_Date, To_Date) Book_Id: מס' מזהה של הספר Cust_Id: מס' זהות של לקוח From_Date: תאריך השאלת הספר To_Date: תאריך החזרת הספר
![Page 10: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/10.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 10
Borrowedטבלת
Book_IdCust_IdFrom_DateTo_Date
55555678913-Oct-2002
![Page 11: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/11.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 11
SQL: SELECTשאילתות ב-
SELECT [ALL | DISTINCT] {[table.]* | expr [alias], exp [alias], …}
FROM table [alias], table [alias], …
[WHERE condition]
[GROUP BY expr, expr, … [HAVING condition]]
[{INTERSECT | MINUS | UNION | UNION ALL } SELECT …]
[ORDER BY expr [ASC | DESC ], expr [ASC | DESC],…];
![Page 12: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/12.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 12
SQL: SELECTשאילתות ב-
דוגמא: שליפת כל הספרים ומספר העמודים בכלספר:
SELECT Book_Name, Pages FROM Books;
השאילתה הפשוטה ביותר בוחרת שדות מסוימים •מכל הרשומות בטבלה אחת.
SELECT column, column, …
FROM table;
![Page 13: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/13.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 13
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
המשך - דוגמא
Books:
![Page 14: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/14.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 14
SELECT Book_Name, Pages FROM Books:
Book_NamePages
Database Systems 348
Database Systems 348
Database Systems424
Database And Knowledge390
Database And Knowledge390
Electronic Circuits180
Genes 7580
Anatomy450
דוגמא - תוצאה
![Page 15: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/15.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 15
שליפת כל השדות
.(כוכבית) "*" לשליפת כל השדות, משתמשים בתו:דוגמא: שליפת כל השדות של כל הספרים
SELECT ** FROM Books;
![Page 16: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/16.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 16
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
תוצאה - דוגמא
SELECT * FROM Books:
![Page 17: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/17.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 17
ניתן לשלוף ביטויים אריתמטיים המשתמשיםבשדות הטבלה.
דוגמא: שליפת שמות ומספרי זיהוי של כלהספרים ומשך ההשאלה בשבועות.
SELECT Book_Id, Book_Name, Max_Time/7
FROM Books;
אריתמטיים ביטויים
![Page 18: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/18.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 18
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
המשך - דוגמא
Books:
![Page 19: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/19.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 19
Book_IdBook_NameMax_Time/7
1111Database Systems 1
1112Database Systems 2
1113Database Systems1
2222Database And Knowledge0
2223Database And Knowledge1
3333Electronic Circuits3
4444Genes 71
5555Anatomy1
תוצאה - דוגמא
SELECT Book_Id, Book_Name, Max_Time/7 FROM Books :
![Page 20: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/20.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 20
-Whereבחירת חלק מהרשומות
האופציהWHERE condition מאפשרת לבחור רק חלק מהרשומות.
דוגמא: שליפת שמות כל הספרים שהוצאו אחרי:1990השנה
SELECT Book_Name
FROM Books
WHEREWHERE Year > 1990;
![Page 21: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/21.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 21
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
דוגמא - המשך
![Page 22: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/22.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 22
Book_Name
Database Systems
Database Systems
Database Systems
Database And Knowledge
Database And Knowledge
Electronic Circuits
תוצאה - דוגמא
SELECT Book_Name FROM Books WHERE Year > 1990 :
![Page 23: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/23.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 23
WHERE(...המשך)
תנאים יותר מורכבים:... >= ,>> ,> ,= ,> :שימוש בסימני היחס :שימוש בקשרים לוגייםAND, OR, NOT.
דוגמא: שליפת שמות כל הספרים שהוצאו בין:2000 ו 1990השנים
SELECT Book_Name
FROM Books
WHERE Year >> 1990 ANDAND Year >> 2000;
![Page 24: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/24.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 24
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
דוגמא - המשך
![Page 25: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/25.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 25
Book_Name
Database Systems
Database Systems
Database And Knowledge
Database And Knowledge
Electronic Circuits
SELECT Book_Name FROM Books
WHERE Year > 1990 AND Year < 2000 :
דוגמא - תוצאה
![Page 26: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/26.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 26
BETWEENאופרטור
בעזרת האופרטורBETWEEN אפשר לכתוב :ביטוי זה בצורה יותר קריאה
SELECT Book_Name
FROM Books
WHERE Year BETWEENBETWEEN 1990 ANDAND 2000;
![Page 27: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/27.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 27
עוד דוגמא
בין לאדוגמא: שליפת שמות כל הספרים שהוצאו :2000 ו 1990השנים
SELECT Book_Name
FROM Books
WHERE NOTNOT (Year BETWEEN 1990 AND 2000);
או:
WHERE Year NOTNOT BETWEEN 1990 AND 2000;
![Page 28: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/28.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 28
בחירה מרשימה של ערכים
1992דוגמא: שליפת כל הספרים שהוצאו בשנים ,:1999 או 1995
SELECT Book_Name
FROM Books
WHERE Year=1992 OROR Year=1998 OROR Year=2001;
![Page 29: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/29.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 29
שימוש באופרטורIN:
SELECT Book_Name
FROM Books
WHERE Year ININ (1992, 1998, 2001); שימוש באופרטורNOT IN:
SELECT Book_Name
FROM Books
WHERE Year NOT ININ (1992, 1998, 2001);
INבחירה מרשימה של ערכים -
![Page 30: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/30.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 30
LIKEהאופרטור
האופרטורLIKELIKE בודק התאמה של מחרוזת ).wildcardsלתבנית נתונה (
" מתאים לתו בודד._התו "" 0" מתאים לסדרת תווים כלשהי, באורך %התו
או יותר. דוגמא: שליפת כל הספרים ששמם מכיל את
:m והאות לפני אחרונה היא Databaseהמחרוזת SELECT Book_Name FROM BooksWHERE Book_Name LIKELIKE ‘%Database%m_’;
![Page 31: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/31.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 31
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
המשך - דוגמא
Books:
![Page 32: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/32.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 32
Book_Name
Database Systems
Database Systems
Database Systems
תוצאה - דוגמא
SELECT Book_Name FROM Books
WHERE Book_Name LIKE ‘%Database%m_’ :
![Page 33: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/33.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 33
NULLערכים חסרים –
NULL("משבצת ריקה") ערך מיוחד המציין ערך חסר – :דוגמאות
תאריך החזרה של ספר שעדיין לא הוחזרפקולטה של לקוח חיצוני
-השוואה לNULL :expr IS NULL מחזיר – true אם expr הוא ערך NULLexpr IS NOT NULL
.דוגמא: שליפת כל הספרים שעוד לא הוחזרו
SELECT Book_Id FROM Borrowed
WHERE To_Date IS NULLIS NULL;
![Page 34: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/34.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 34
(המשך)NULLערכי
מוטיבציה: קביעת "ברירת מחדל" עבור ערך שיכולNULL:להיות
COALESCE(value, default) סיבה נוספת: ערך של ביטוי אריתמטי המכילNULL תמיד
.NULLיהיה דוגמא: הצגת משך ההשאלה בשבועות של כל הספרים (עבור
).0ספרים שעדיין לא הוחזרו יש להציג SELECT Book_Id , COALESCECOALESCE(To_Date – From_Date, 0) / 7
FROM Borrowed;
:בצורה כלליתCOALESCE(expr1,expr2,…) מחזיר את NULLהערך הראשון השונה מ-
![Page 35: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/35.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 35
DISTINCT השמטת כפילויות -
האופציהDISTINCT משמיטה את הרשומות הכפולות מתוצאת השאילתא.
,דוגמא: שליפת כל שמות הספרים ושנות ההוצאהללא חזרות.
SELECT DISTINCTDISTINCT Book_Name, Year
FROM Books;
![Page 36: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/36.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 36
Book_IdBook_NameYearMax_TimePagesFaculty1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
המשך - דוגמא
Books:
![Page 37: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/37.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 37
Book_NameYearDatabase Systems 1998
Database Systems 1998
Database Systems2001
Database And Knowledge1998
Database And Knowledge1998
Electronic Circuits1998
Genes 71985
Anatomy1988
תוצאה - דוגמא
Book_NameYearDatabase Systems 1998
Database Systems2001
Database And Knowledge1998
Electronic Circuits1998
Genes 71985
Anatomy1988
DISTINCT ללא DISTINCT אחרי
![Page 38: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/38.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 38
ORDER BY מיון -
ORDER BY מיון של הרשומות הנשלפות על פי : הערכים של שדות או ביטויים נתונים.
דוגמא: שליפת כל הספרים ממוינים לפי שנתההוצאה:
SELECT * FROM Books
ORDER BYORDER BY Year;
![Page 39: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/39.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 39
Book_IdBook_NameYearMax_TimePagesFaculty
4444Genes 719857580MED
5555Anatomy19887450MED
1111Database Systems 19987348CS
1112Database Systems 199814348CS
2222Database And Knowledge19981390CS
3333Electronic Circuits199821180EE
2223Database And Knowledge19987390EE
1113Database Systems20017424CS
תוצאה - דוגמא
SELECT * FROM Books ORDER BY Year :
![Page 40: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/40.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 40
DESCמיון בסדר הפוך -
SELECT * FROM Books ORDER BY Year DESCDESC;
Book_IdBook_NameYearMax_TimePagesFaculty
1113Database Systems20017424CS
5555Anatomy19887450MED
1111Database Systems 19987348CS
1112Database Systems 199814348CS
2222Database And Knowledge19981390CS
3333Electronic Circuits199821180EE
2223Database And Knowledge19987390EE
4444Genes 719857580MED
![Page 41: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/41.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 41
מיון לפי כמה ביטויים
.מיון ראשוני ומשני דוגמא: שליפת פרטי הספרים ממוינים לפי שנת
ההוצאה , ולפי מספר העמודים (בין הספרים שהוצאו באותה שנה).
SELECT * FROM Books
ORDER BY Year,, Pages;
![Page 42: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/42.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 42
מיון (המשך...)
.ניתן לציין את מס' השדה שלפיו יש למיין דוגמא: שליפת פרטי הספרים ממוינים לפי השדה
השלישי:
SELECT * FROM Books
ORDER BY 33;
![Page 43: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/43.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 43
פונקציות סטטיסטיות
-בSQL:ישנן הפונקציות הסטטיסטיות הבאות MINמינימום – MAXמקסימום – AVGממוצע – SUMסכום – COUNTמספר הרשומות – כל אחת מפונקציות אלה פועלת על קבוצת ערכים
ומחזירה ערך אחד.
![Page 44: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/44.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 44
דוגמא
חשב את מספר העמודים הממוצע דוגמא :והמקסימלי בין כל הספרים:
פתרון:
SELECT AVG(Pages), MAX(Pages)
FROM Books;
![Page 45: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/45.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 45
דוגמא – המשך
Books:
Book_IdBook_NameYearMax_TimePagesFaculty1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
![Page 46: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/46.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 46
דוגמא – המשך
Pages
348
348
424
390
390
180
580
450
AVG(Pages)MAX(Pages)
389580
![Page 47: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/47.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 47
פונקציות סטטיסטיות – המשך
ניתן לחשב פונקציות סטטיסטיות רק על חלק . WHEREמרשומות הטבלה ע"י שימוש באופציה
:לדוגמא
SELECT COUNT (Book_Name)
FROM Books
WHERE Year = 1998;
![Page 48: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/48.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 48
פונקציות סטטיסטיות – המשך
Books:Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
![Page 49: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/49.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 49
דוגמא – המשך
Book_Name:Book_Name
Database Systems
Database Systems
Database Systems
Database And Knowledge
Database And Knowledge
Electronic Circuits
Genes 7
Anatomy
COUNT(Book_Name)
5
Book_Name
Database Systems
Database Systems
Database And Knowledge
Database And Knowledge
Electronic Circuits
WHERE
COUNT
![Page 50: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/50.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 50
פונקציות סטטיסטיות -השמטת כפילויות
השמטת כפילויות בזמן חישוב הפונקציה: ע"י לפני הפרמטר. DISTINCTהוספת המילה
:דוגמא
SELECT COUNT (DISTINCT Book_Name)
FROM Books
WHERE Year = 1998;
![Page 51: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/51.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 51
)DISTINCTדוגמא – המשך (
COUNT(DISTINCT Book_Name)
3
DISTINCT Book_Name
Database Systems
Database And Knowledge
Electronic Circuits
Book_Name
Database Systems
Database Systems
Database And Knowledge
Database And Knowledge
Electronic Circuits
![Page 52: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/52.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 52
פעולות סטטיסטיות על ערכי NULL
כל הפונקציות הסטטיסטיות מתעלמות מערכי NULL.
יוצא מן הכלל : COUNT(*).:דוגמא
SELECT COUNT(*)
FROM Books
WHERE Year = 1998;
![Page 53: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/53.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 53
פונקציות סטטיסטיות – המשך
שליפת מספר הספרים בכל שנהדוגמא ::ניסיון ראשון
SELECT Year, COUNT(Book_Id)
FROM Books;
!הרבה ערכים של לא חוקי) Year ערך אחד של ,COUNT.(
![Page 54: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/54.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 54
) Aggregation( – קיבוץGROUP BY
הפעלת פונקציות סטטיסטיות על קבוצות של רשומות.
:(תיקון) המשך הדוגמא
SELECT Year, COUNT(Book_Id)
FROM Books
GROUP BY Year; לכל ערך של Year-ה ,COUNT.מחושב בנפרד
![Page 55: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/55.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 55
)GROUP BY( דוגמא – המשך
Book_IdYear
11111998
11121998
11132001
22221998
22231998
33331998
44441985
55551988
YearCOUNT(Book_Id)
19985
19881
20011
19851
![Page 56: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/56.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 56
) Aggregation(קיבוץ – המשך
:דוגמא נוספת
SELECT Faculty, COUNT(Book_Id)
FROM Books
GROUP BY Year; !לאחר הקיבוץ לפי לא חוקי Year בכל קבוצה ,
שונים.Facultyיכולים להיות ערכי בנוסף לפעולות סטטיסטיות, מותר לשלוף כלל :
רק שדות לפיהם מתבצע הקיבוץ (וביטויים).
![Page 57: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/57.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 57
HAVINGבחירה לאחר קיבוץ -
האופציה HAVING condition בחירת חלק :. GROUP BYמהקבוצות המתקבלות מ-
התנאי condition פונקציות סטטיסטיות, שדות :לפיהם מתבצע הקיבוץ, ביטויים.
![Page 58: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/58.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 58
)HAVINGדוגמא (
מה מחזירה השאילתה הבאה?דוגמא :
SELECT Year, COUNT(Book_Id)
FROM Books
GROUP BY Year
HAVING AVG(Pages) > 400;, מבין כל Year הסבר: לאחר הקיבוץ לפי •
הקבוצות נבחרות כאלה שבהן ממוצע מספרי .400העמודים גדול מ-
![Page 59: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/59.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 59
)HAVINGדוגמא – המשך (
Books:
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
![Page 60: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/60.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 60
)HAVINGדוגמא – המשך (
YearCOUNT(Book_Id)AVG(Pages)
19985331
19881450
20011424
19851580
11988
1
1
COUNT(Book_Id)
1985
2001
Year
AVG(Pages) > 400
![Page 61: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/61.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 61
לעומת WHEREבחירה: HAVING
WHERE הקיבוץלפנירשומות : בחירת HAVING הקיבוץ.אחרי קבוצות: בחירת
עמודים, 200: בין כל הספרים עם יותר מ-דוגמא חשב בכל שנה את מס' הספרים שיצאו לאור,
בתנאי שבממוצע מספר העמודים באותה שנה .400גדול מ-
![Page 62: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/62.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 62
דוגמא – המשך
עמודים, 200: בין כל הספרים עם יותר מ-דוגמא חשב בכל שנה את מס' הספרים שיצאו לאור,
בתנאי שבממוצע מספר העמודים באותה שנה .400גדול מ-
SELECT Year, COUNT(Book_Id)FROM BooksWHERE Pages > 200GROUP BY YearHAVING AVG(Pages) > 400;
![Page 63: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/63.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 63
דוגמא – המשך
Books:
MED45071988Anatomy5555
MED58071985Genes 74444
EE180211998Electronic Circuits3333
CS34871998Database Systems 1111
CS348141998Database Systems 1112
CS42472001Database Systems1113
CS39011998Database And Knowledge2222
EE39071998Database And Knowledge2223
FacultyPagesMax_TimeYearBook_NameBook_Id
WHERE Pages > 200
![Page 64: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/64.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 64
דוגמא – המשך
אחרי“GROUP BY Year”:YearCOUNT(Book_Id)AVG(Pages)19984369
19881450
20011424
19851580
11988
1
1
COUNT(Book_Id)
1985
2001
Year
HAVING AVG(Pages) > 400
![Page 65: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/65.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 65
דוגמא – המשך
(שלבים):הסבר
בחירת הרשומות של הספרים שמכילים יותר מ- 1. עמודים.200
קיבוץ הרשומות לקבוצות, כך שבכל קבוצה יש 2..Yearלכל הרשומות (הספרים) אותו
חישוב מספר העמודים הממוצע בכל קבוצה, 3..400ובחירת הקבוצות בהן הממוצע הוא לפחות
חישוב מס' הספרים בכל קבוצה.4.
![Page 66: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/66.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 66
שאילתות משתי טבלאות או )JOIN(** צירוףיותר:
להצליב" רשומות מרלציות/טבלאות שונותמטרה" : syntax: FROM table1, table2… , מכפלה קרטזית בין כל הטבלאותמשמעות : :התייחסות לשדות מטבלה מסוימת table1.field ע"י הוספת תנאים ב- ביצוע הצלבה :WHERE
** also known as: Inner JOIN or Equi-JOIN
![Page 67: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/67.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 67
)JOINדוגמא (
שליפת שמות ומספרי הזהות של דוגמא :הלקוחות יחד עם שמות הספרים שהזמינו.
:פתרון
SELECT Customer.Cust_Id, Cust_Name, Book_Name
FROM Customer, Ordered
WHERE Customer.Cust_Id = Ordered.Cust_Id;
![Page 68: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/68.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 68
Cust_IdBook_NameOrder_Date12345Database Systems 14-Oct-2002
45678Anatomy24-Oct-2002
12345Database And Knowledge30-Oct-2002
45678Electronic Circuits12-Oct-2002
Cust_IdCust_NameFaculty
12345Moshe CohenCS
23456Avi BarakEE
34567Avi BarakMED
45678Lior EdriEE
56789Moshe CohenEE
67890Moshe CohenEE
)JOINדוגמא – המשך (
Customer
Ordered
![Page 69: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/69.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 69
Naturalדוגמא – המשך (JOIN(
Cust_IdCust_NameBook_Name
12345Moshe CohenDatabase Systems
12345Moshe CohenDatabase And Knowledge
45678Lior EdriAnatomy
45678Lior EdriElectronic Circuits
:תוצאה
![Page 70: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/70.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 70
.שליפת כל השדות של הטבלה
SELECT Customer.*, Book_Name
FROM Customer, Ordered
WHERE Customer.Cust_Id = Ordered.Cust_Id;
JOIN שליפת כל השדות :מטבלה
![Page 71: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/71.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 71
לכלול את הלקוחות שלא הזמינו אף ספרמטרה :פתרון:
SELECT Customer.Cust_Id, Cust_Name, Book_Name
FROM Customer LEFT OUTER JOIN Ordered
ON ( Customer.Cust_Id = Ordered. Cust_Id );הוספת שורת ערכי אינטואיציה :NULL לטבלת
ההזמנות, ש"מתאימה" לכל לקוחשימו לב :ON במקום WHERE(תנאי ההצלבה)
OUTER JOIN :רשומות שליפתהשניה בטבלה התאמה ללא
![Page 72: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/72.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 72
Cust_IdCust_NameBook_Name
12345Moshe CohenDatabase Systems
12345Moshe CohenDatabase And Knowledge
45678Lior EdriAnatomy
45678Lior EdriElectronic Circuits
23456Avi Barak
34567Avi Barak
56789Moshe Cohen
67890Moshe Cohen
המשך – ) OUTERדוגמאJOIN)
תוצאה:
![Page 73: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/73.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 73
מה עושה שאילתה זו?דוגמא :
SELECT Customer.Cust_Id, Cust_Name, COUNT(Book_Name)
FROM Customer LEFT OUTER JOIN Ordered
ON (Customer.Cust_Id = Ordered. Cust_Id (
GROUP BY Customer.Cust_Id, Cust_Name;
נוספת דוגמא
![Page 74: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/74.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 74
תשובה: השאילתה מחזירה לכל לקוחID שם ,ומס' הספרים שהזמין.
:תוצאה
המשך – דוגמא
Cust_IdCust_NameCOUNT (Book_Name)
12345Moshe Cohen2
45678Lior Edri2
23456Avi Barak0
34567Avi Barak0
56789Moshe Cohen0
67890Moshe Cohen0
•- ה ללא התוצאה הייתה ?OUTER JOINמה
![Page 75: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/75.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 75
שם נוסף (בד"כ קצר יותר) לטבלהמטרה :דוגמא:
SELECT C.Cust_Id, Cust_Name, Book_Name
FROM Customer C, Ordered O
WHERE C.Cust_Id = O. Cust_Id;
נרדפים – ALIASשמות
![Page 76: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/76.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 76
שימוש נוסף: מספר עותקים של אותה טבלה
SELECT C1.Cust_Name
FROM Customer C1, Customer C2
WHERE C1. Cust_Name = C2. Cust_Name
AND C1.Cust_Id >> C2.Cust_Id;
ALIAS :טבלה מאותה שליפהפעמיים
שאלה: מה מחזירה השאילתה?•
תשובה: כל הלקוחות כך שיש בספרייה עוד לקוח •)Self JOINעם אותו שם. (זאת דוגמא של
![Page 77: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/77.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 77
SELECT Year, COUNT(Book_Id) AS Num_Books
FROM Books
GROUP BY Year;
שימוש נוסף: לתת שם לביטוי סטטיסטי או •אריתמטי
דוגמא:•
ALIAS :נשלף לביטוי שם מתן
![Page 78: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/78.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 78
של קבוצההתייחסות לרלציה כאל n .יות--אופרטורים בSQL:
– חיתוךINTERSECT – חיסור/הפרשEXCEPT – איחודUNION - איחוד ללא השמטת כפילויותUNION ALL
השאילתות מחזירות אותו מספר עמודות תנאי :ואותם סוגי עמודות, בהתאמה.
הקבוצות מתורת אופרטורים
![Page 79: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/79.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 79
:דוגמא: כל הלקוחות שלא הזמינו אף ספר
SELECT Cust_Id FROM Customer
EXCEPT
SELECT Cust_Id FROM Ordered;
הקבוצות – מתורת אופרטוריםהמשך
שימוש במיון:•
–ORDER BY צריך להופיע אחרי כלהאופרטורים
יש להשתמש במספר השדה ולא בשמו (שיכול –להיות שונה בין האופרנדים)
![Page 80: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/80.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 80
-מוטיבציה: התנאי בWHERE מכיל ביטוי שלא ידוע מראש, אלא תלוי בתוכן מסד הנתונים.**
דוגמא: שליפת כל הספרים שיצאו לאור באותה.1112שנה כמו ספר מס'
SELECT Book_Name FROM Books WHERE Year =
(SELECT Year FROM Books WHERE Book_Id = 1112);
** Dynamic WHERE clause
שאילתות- – SUBQUERIESתת
![Page 81: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/81.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 81
.תת-שאילתה יכולה לשלוף כמה ביטויים אפשר להשוות לערכים של כל הביטויים האלה
בו-זמנית. דוגמא: שליפת כל הספרים שיצאו לאור באותה
.1112שנה ונמצאים באותה פקולטה כמו ספר מס' SELECT Book_Name FROM Books WHERE (Year, Faculty) =
(SELECT Year, Faculty FROM Books WHERE Book_Id = 1112);
המשך- – שאילתות תת
![Page 82: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/82.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 82
-תת-השאילתה יכולה להופיע כחלק מFROM. תת-השאילתה חייבת לקבלAlias.20-0: שליפת שמות הספרים שהוזמנו אחרי דוגמאct-98
.1234ע"י לקוח מס'
SELECT Book_Name FROM (SELECT * FROM Ordered
WHERE Order_Date > 20-0ct-98) OWHERE O. Cust_Id = 1234;
המשך- – שאילתות תת
![Page 83: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/83.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 83
מוטיבציה: השוואת ערך בודד לקבוצת ערכים בהינתן ערךx וקבוצה A:נרצה לבטא ,
x-גדול מכל הערכים ב A (yA:x>y)x-קטן מערך כלשהו ב A (yA:x>y) xA (yA:x=y)
-כמתים בSQL:•ANYקיים --•ALLלכל --
( Quantifiers)כמתים
![Page 84: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/84.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 84
הכימות נעשה ע"י כתיבת המילהANY או ALL אחרי סימן ההשוואה
דוגמא: שליפת ספרים בעלי יותר עמודים מכלהספרים בפקולטה למדעי המחשב.
SELECT Book_Name, Pages
FROM Books
WHERE Pages >ALL (SELECT Pages FROM Books WHERE Faculty = ‘CS’);
המשך – כמתים
![Page 85: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/85.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 85
:ניתן לממש אופרטור שייכות באמצעות כמתים.1=ANY IN
.2>>ALL NOT IN :דוגמא
אופרטור – ) המשך כמתיםשייכות(
SELECT Book_Name, Year
FROM Books
WHERE Year IN (SELECT Year FROM Books WHERE Faculty =
‘MED’);
![Page 86: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/86.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 86
ניתן לקונן תת-שאילתות דוגמה: כל הפקולטות שמחזיקות ספרים שהזמין
לקוח בשם ליאור אדרי:
)Nested Subqueries( -שאילתות תתמקוננות
SELECT Faculty FROM Books WHERE Book_Name IN
(SELECT Book_Name FROM Ordered
WHERE Cust_Id IN
(SELECT Cust_Id FROM Customer
WHERE Cust_Name = ‘Lior Edri’));
![Page 87: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/87.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 87
תת-שאילתות לעומתJOINדוגמא: כתוב אותה שאילתה ללא שימוש בתת שאילתות
המשך- – שאילתות תת
SELECT B.FacultyFROM Books B, Customer C, Ordered OWHERE B.Book_Name = O.Book_Name
AND C.Cust_Id = O. Cust_Id;AND C.Cust_Name = ‘Lior Edri’;
שאלה: איזו מהן יותר יעילה?•תשובה: תלוי באופטימיזציה בשרת, בד"כ הפתרון עם •
התת-שאילתות יעיל יותר
![Page 88: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/88.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 88
מוטיבציה: יש קשר דו-כיווני בין הפרמטרים של השאילתההחיצונית והפנימית
דוגמא: מצא כל הספרים שניתן להשאיל אותם לתקופהארוכה מהממוצע באותה פקולטה
(Interconnected Subqueries) -קשורות שאילתות תתהדדית
SELECT Book_Id, Book_Name, Max_Time
FROM Books B
WHERE Max_Time >
(SELECT AVG(Max_Time) FROM Books
WHERE Faculty = B.Faculty);
![Page 89: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/89.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 89
EXIST .הוא אופרטור בוליאני שפועל על תת-שאילתה מחזירtrue ,אם תת-השאילתה מחזירה ערך כלשהו
False.אם אינה מחזירה דבר דוגמא: שליפת כל הלקוחות שהזמינו ספר כלשהו
EXISTאופרטור
SELECT Cust_Name
FROM Customer C
WHERE EXIST
(SELECT * FROM Ordered
WHERE Cust_Id = C.Cust_Id);
![Page 90: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/90.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 90
שינוי מסד הנתונים - DDL , DMLפעולות
:SQLפעולות ב-שאילתות מסד נתונים (עדכון, הוספה של רשומות, תוכןשינוי
)DML – Data Manipulation Languageוכו'), מסד נתונים (יצירה, מחיקה של מבנהשינוי
DDL – Data Definitionטבלאות, וכו'), Language
![Page 91: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/91.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 91
UPDATE tablename
column-assignment-list SET
conditional-expression WHERE ;
UPDATEעדכון –
![Page 92: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/92.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 92
UPDATEעדכון –
עדכון ערכים ברשומות קיימות במסד מטרה :הנתונים.
השמה של ערכים קבועים אפשרות ראשונה :בעמודות מסוימות בכל הרשומות.
העברת כל הספרים לספרייה מרכזית, :דוגמא והגבלת משך ההשאלה לשבוע ימים.
UPDATE BooksSET Max_Time = 7, Faculty = ‘GEN’;
![Page 93: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/93.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 93
דוגמא - המשך
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
![Page 94: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/94.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 94
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348GEN
1112Database Systems 19987348GEN
1113Database Systems20017424GEN
2222Database And Knowledge19987390GEN
2223Database And Knowledge19987390GEN
3333Electronic Circuits19987180GEN
4444Genes 719857580GEN
5555Anatomy19887450GEN
דוגמא - תוצאה
UPDATE Books SET Max_Time = 7, Faculty = ‘GEN’:
![Page 95: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/95.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 95
UPDATE(...המשך)
:עדכון חלק מהרשומותWHERE conditionהוספת תנאי
דוגמא: הגבלת משך ההשאלה לשבוע ימיםלספרים השייכים לספריית מדעי המחשב.
UPDATE Books
SET Max_Time = 7
WHERE Faculty = ‘CS’;
![Page 96: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/96.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 96
דוגמא - המשך
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
![Page 97: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/97.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 97
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 19987348CS
1113Database Systems20017424CS
2222Database And Knowledge19987390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
דוגמא - תוצאה
UPDATE Books SET Max_Time = 7 WHERE Faculty = ‘CS’:
![Page 98: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/98.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 98
UPDATE(...המשך)
.אפשרות נוספת: השמה של ביטויים דוגמה: הארכת משך ההשאלה לכל הספרים ביום
אחד.
UPDATE Books
SET Max_Time = Max_Time + 1;
![Page 99: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/99.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 99
דוגמא - המשך
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
![Page 100: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/100.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 100
דוגמא - תוצאה
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19988348CS
1112Database Systems 199815348CS
1113Database Systems20018424CS
2222Database And Knowledge19982390CS
2223Database And Knowledge19988390EE
3333Electronic Circuits199822180EE
4444Genes 719858580MED
5555Anatomy19888450MED
UPDATE Books SET Max_Time = Max_Time + 1:
![Page 101: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/101.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 101
UPDATE שימוש – בתת-שאילתות
הערך החדש יכול להיות תוצאה של תת-שאילתה דוגמא: לכל ספר יש לעדכן את משך ההשאלה
למקסימלי באותה פקולטה.
UPDATE Books B
SET Max_Time =
(SELECT MAX(Max_Time) FROM Books
WHERE Faculty = B.Faculty);
![Page 102: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/102.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 102
דוגמא - המשך
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
MAX
![Page 103: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/103.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 103
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 199814348CS
1112Database Systems 199814348CS
1113Database Systems200114424CS
2222Database And Knowledge199814390CS
2223Database And Knowledge199821390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
דוגמא – תוצאהUPDATE Books B
SET Max_Time = (SELECT MAX(Max_Time) FROM Books WHERE Faculty = B.Faculty):
![Page 104: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/104.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 104
UPDATEהמשך –
:הערות כל החישובים בשאילתה מתבצעים, כביכול, על
"העתק" זמני של הטבלה שאינו מתעדכן בזמן ביצוע ההוראה.
כלומר, עדכון של רשומה אינו משפיע על החישוביםהבאים שמתבצעים עבור הרשומות הבאות.
![Page 105: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/105.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 105
INSERT INTO tablename [( column-list )]
VALUES ( constant-list ) ;
INSERTהוספה -
![Page 106: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/106.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 106
INSERTהוספה -
הוספת רשומות חדשותמטרה :הוספת רשומה אחת נתונהאפשרות ראשונה :הוספת לקוח לטבלת דוגמא :Customer.
INSERT INTO Customer
VALUES (78901, ‘Roy Peled’, ‘EE’);
![Page 107: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/107.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 107
דוגמה - המשך
Cust_IdCust_NameFaculty
12345Moshe CohenCS
23456Avi BarakEE
34567Avi BarakMED
45678Lior EdriEE
56789Moshe CohenEE
67890Moshe CohenEE
Customer:
![Page 108: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/108.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 108
דוגמא - תוצאה
Cust_IdCust_NameFaculty
12345Moshe CohenCS
23456Avi BarakEE
34567Avi BarakMED
45678Lior EdriEE
56789Moshe CohenEE
67890Moshe CohenEE
78901Roy PeledEE
INSERT INTO Customer VALUES (78901, ‘Roy Peled’, ‘EE’):
![Page 109: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/109.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 109
INSERTהמשך –
.ניתן לאתחל רק חלק מהשדות:דוגמא
INSERT INTO Customer(Cust_Id,Cust_Name)
VALUES (78901, ‘Roy Peled’);:הערות
) שדות לא מאותחליםFaculty יקבלו ערך (NULL. אם בעמודהFaculty אסור שיופיע NULLההוראה ,
INSERT.אינה חוקית, ולכן היא לא תתבצע
![Page 110: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/110.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 110
דוגמה - המשך
Cust_IdCust_NameFaculty
12345Moshe CohenCS
23456Avi BarakEE
34567Avi BarakMED
45678Lior EdriEE
56789Moshe CohenEE
67890Moshe CohenEE
Customer:
![Page 111: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/111.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 111
דוגמא - תוצאה
Cust_IdCust_NameFaculty
12345Moshe CohenCS
23456Avi BarakEE
34567Avi BarakMED
45678Lior EdriEE
56789Moshe CohenEE
67890Moshe CohenEE
78901Roy Peled
INSERT INTO Customer(Cust_Id, Cust_Name)
VALUES (78901, ‘Roy Peled’):
![Page 112: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/112.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 112
INSERT שימוש בשאילתות –
.הוספת רשומות המתקבלות כתוצאה של שאילתה דוגמא: הכנסת כל הלקוחות שהזמינו ספרים
. ReadersלטבלהINSERT INTO Readers( Id, Name)
(SELECT Cust_Id, Cust_Name
FROM Customer C WHERE EXIST
(SELECT * FROM Ordered
WHERE Cust_Id = C.Cust_Id));
קיימת.Readersהוראה זו חוקית רק אם הטבלה •
![Page 113: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/113.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 113
דוגמא - המשך
Customer: Ordered:
EEMoshe Cohen67890
CSMoshe Cohen12345
EEAvi Barak23456
MEDAvi Barak34567
EELior Edri45678
EEMoshe Cohen56789
FacultyCust_NameCust_Id
SELECT Cust_Id, Cust_Name
FROM Customer C WHERE EXIST
(SELECT * FROM Qrdered
WHERE Cust_Id = C.Cust_Id):
14-Oct-2002Database Systems 12345
24-Oct-2002Anatomy45678
30-Oct-2002Database And Knowledge12345
12-Oct-2002Electronic Circuits45678
Order_DateBook_NameCust_Id
Moshe Cohen12345
Lior Edri45678
Cust_NameCust_Id
Readers:
![Page 114: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/114.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 114
INSERT.מתבצעת על "העתק" זמני של הטבלה :דוגמא
INSERT INTO Readers
(SELECT * FROM Readers);
הוראה זו לא תכנס ללולאה אינסופית אלא רקתכפיל את הטבלה.
INSERTהמשך –
![Page 115: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/115.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 115
תוצאה
CSMoshe Cohen12345
EELior Edri45678
FacultyCust_NameCust_Id
Readers:
EELior Edri45678
CSMoshe Cohen12345
CSMoshe Cohen12345
EELior Edri45678
FacultyCust_NameCust_Id
Readers:
INSERT INTO Readers
(SELECT * FROM Readers);
![Page 116: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/116.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 116
DELETE FROM tablename
conditional-expression WHERE
DELETEמחיקה –
![Page 117: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/117.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 117
DELETEמחיקה –
ההוראהDELETE.מוחקת רשומות מתוך הטבלה בהוראה זו צריך רק להגדיר אלו רשומות רוצים
למחוק..דוגמה: מחיקת כל ההזמנות
DELETE FROM Ordered;
.הטבלה עצמה אינה נמחקת, אך היא נותרת ריקה
![Page 118: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/118.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 118
DELETE) המשך – WHERE(
אופציהWHERE מאפשרת לבחור אלו רשומות ימחקו מהטבלה.
דוגמה: מחיקת כל ההזמנות של הלקוח בעל.12345מספר מזהה
DELETE FROM Ordered
WHERE Cust_Id = 12345;
![Page 119: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/119.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 119
דוגמא – המשך
Cust_IdBook_NameOrder_Date12345Database Systems 14-Oct-2002
45678Anatomy24-Oct-2002
12345Database And Knowledge30-Oct-2002
45678Electronic Circuits12-Oct-2002
Cust_IdBook_NameOrder_Date45678Anatomy24-Oct-2002
45678Electronic Circuits12-Oct-2002
Ordered:
Ordered:
DELETE FROM Ordered
WHERE Cust_Id = 12345;
![Page 120: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/120.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 120
DELETEהמשך –
בתוך התנאי אפשר להשתמש בביטויים בוליאנייםיותר מורכבים ובשאילתות.
דוגמה: ביטול כל ההזמנות של אנשים שאינםמופיעים בטבלת הלקוחות.
DELETE FROM Ordered O
WHERE NOT EXIST
(SELECT * FROM Customer
WHERE Cust_Id = O.Cust_Id);
![Page 121: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/121.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 121
דוגמה - המשך
Cust_IdBook_NameOrder_Date
12345Database Systems 14-Oct-2002
45678Anatomy24-Oct-2002
12345Database And Knowledge30-Oct-2002
45678Electronic Circuits12-Oct-2002
55555Electronic Circuits12-Oct-2002
Ordered: Cust_IdCust_NameFaculty
12345Moshe CohenCS
23456Avi BarakEE
34567Avi BarakMED
45678Lior EdriEE
56789Moshe CohenEE
67890Moshe CohenEE
Customer:
![Page 122: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/122.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 122
דוגמא - תוצאה
Cust_IdBook_NameOrder_Date12345Database Systems 14-Oct-2002
45678Anatomy24-Oct-2002
12345Database And Knowledge30-Oct-2002
45678Electronic Circuits12-Oct-2002
Ordered:
![Page 123: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/123.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 123
ביטול של שינויים/שמירהCOMMIT/ROLLBACK
של המסד."העתק"שינויים מתבצעים על .ניתן "להתחרט" ולבטל את השינויים האחרוניםCOMMIT העברת כל השינויים מההעתק אל מסד הנתונים :ROLLBACK-ביטול כל השינויים מה :COMMIT האחרון (או
מתחילת העבודה עם המסד).:דוגמה
DELETE FROM Ordered;ROLLBACK;
במקרים מסוימים מתבצעת פעולתCOMMIT באופן אוטומטי (נראה בהמשך).
![Page 124: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/124.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 124
CREATEיצירת טבלה – TABLE
יצירת טבלה ריקה :CREATE TABLE table (column_name column_type [(length)] [NOT NULL],…);
:יצירת טבלה המכילה תוצאה של שאילתה CREATE TABLE table AS SELECT …;
הפעולה COMMIT מתבצעת אוטומטית לפני . CREATE TABLEואחרי
![Page 125: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/125.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 125
- CREATE TABLE דוגמא
CREATE TABLE example(AB varchar(15),
CD integer NOT NULL, EF decimal(5), GH decimal(7,2));
![Page 126: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/126.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 126
PostgreSQLטיפוסים ב-
varchar (n) – מחרוזת boolean – ערך בוליאני date – תאריך integer – מספר שלם decimal [(p,s)] – מספר עם דיוק עשרוני נתון …
![Page 127: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/127.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 127
CREATE TABLEדוגמא –
דוגמא: יצירת טבלה חדשה בשםCSBooks .’CS‘שמכילה את כל הספרים השייכים לפקולטה
CREATE TABLE CSBooks AS
SELECT Book_Id, Book_Name
FROM Books
WHERE Faculty = ‘CS’;
![Page 128: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/128.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 128
דוגמה - המשך
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
![Page 129: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/129.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 129
Book_IdBook_Name
1111Database Systems
1112Database Systems
1113Database Systems
2222Database And Knowledge
Book_IdBook_Name
1111Database Systems
1112Database Systems
1113Database Systems
2222Database And Knowledge
CSBooks:
דוגמה - תוצאה
![Page 130: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/130.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 130
:הסכימה של הטבלה החדשה סוגי העמודות נקבעים ע"י השאילתה שבהוראת
CREATE.:את שמות העמודות בטבלה החדשה אפשר לשנות
CREATE TABLEהמשך –
דוגמא:•CREATE TABLE CSBooks(Id, Name) AS
SELECT Book_Id, Book_Name FROM BooksWHERE Faculty = ‘CS’;
Database Systems 1111
Database Systems 1112
Database Systems1113
Database And Knowledge2222
NameId
CSBooks:
![Page 131: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/131.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 131
DROP TABLEמחיקת טבלה –
דוגמא: מחיקת הטבלהCSBooks.
DROP TABLE CSBooks;
!הפקודה שימו לב DROP TABLE היא בלתי מתבצע אוטומטית לפניה COMMITהפיכה, כי
ואחריה.
![Page 132: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/132.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 132
VIEWSמבטים –
להתייחס לפלט של שאילתה כאל טבלה מוטיבציה :נפרדת (בלי ליצור אותה פיזית).
השאילתה שמגדירה את המבט נשמרת בפועל :במסד הנתונים ומופעלת כל פעם מחדש.
המבט מהווה מעין "חלון" דרכו אפשר אינטואיציה :להסתכל על חלק ממסד הנתונים.
הסתרת מידע, פישוט שאילתות...מטרה :
![Page 133: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/133.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 133
)VIEWS(מבטים - המשך
יצירת מבט:CREATE VIEW view_name AS SELECT…;
:דוגמאCREATE VIEW CSBooks AS
SELECT Book_Id, Book_Name, Max_Time FROM BooksWHERE Faculty = ‘CS’;
-בCSBooks כל העמודות של מוסתרות Books -פרט ל Book_Id, Book_Name, Max_Time וכל השורות פרט
לספרים של מדעי מחשב. שיופיע אסורבשאילתה זו ORDER BY.
![Page 134: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/134.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 134
דוגמא – המשך
Book_IdBook_NameYearMax_TimePagesFaculty1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
7Database Systems 1111
14Database Systems 1112
7Database Systems1113
1Database And Knowledge2222
Max_TimeBook_NameBook_Id
CSBooks
![Page 135: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/135.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 135
)VIEWS( מבטים – המשך (שאילתות)
.על מבט ניתן לבצע שאילתות ממש כאילו היה טבלה דוגמה: שליפת כל הספרים של מדעי מחשב שמשך
ימים.7ההשאלה שלהם הוא
SELECT Book_Name
FROM CSBooks
WHERE Max_Time = 7;
![Page 136: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/136.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 136
.כל שינוי בטבלה המקורית מייד משפיע על המבט) ניתן לבצע עדכוניםUPDATE ,למסד הנתונים דרך המבט (
.read-onlyפרט למקרים בהם המבט הוא מבט הואread-only אם השאילתה של CREATE VIEW
מכילה:JOINGROUP BYביטויים ברשימת העמודות
:דוגמה לעדכוןUPDATE CSBooks SET Max_Time = Max_Time + 1;
) )VIEWS מבטים – המשך (עדכון)
![Page 137: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/137.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 137
))VIEWSדוגמא – המשך
Book_IdBook_NameYearMax_TimePagesFaculty1111Database Systems 19988348CS
1112Database Systems 199815348CS
1113Database Systems20018424CS
2222Database And Knowledge19982390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
8Database Systems 1111
15Database Systems 1112
8Database Systems1113
2Database And Knowledge2222
Max_TimeBook_NameBook_Id
CSBooks
עדכון אחריMax_Time:
![Page 138: SQL (Structured Query Language) : מושגים](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814e14550346895dbb7bd9/html5/thumbnails/138.jpg)
אביב תשס"ג DBMS - 236363, שפות שאילתה: SQL 138
))VIEWS מבטים – המשך (מחיקה)
:מחיקת מבטDROP VIEW:דוגמה
DROP VIEW CSBooks;
.לטבלה שעליה מבוסס המבט לא קורה כלום