Download presentation
Presentation is loading. Please wait.
1
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי תוכן מסד נתונים ( עדכון, הוספה של רשומות, וכו '), DML – Data Manipulation Language) שינוי מבנה מסד נתונים ( יצירה, מחיקה של טבלאות, וכו '), DDL – Data Definition Language
2
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 2 עדכון – UPDATE מטרה : עדכון ערכים ברשומות קיימות במסד הנתונים. אפשרות ראשונה : השמה של ערכים קבועים בעמודות מסוימות בכל הרשומות. דוגמא : העברת כל הספרים לספרייה מרכזית, והגבלת משך ההשאלה לשבוע ימים. UPDATE Books SET Max_Time = 7, Faculty = ‘ GEN ’ ;
3
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 3 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS34871998 Database Systems 1111 CS348141998 Database Systems 1112 CS42472001 Database Systems 1113 CS39011998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 Books:
4
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 4 FacultyPagesMax_TimeYearBook_NameBook_Id GEN34871998 Database Systems 1111 GEN34871998 Database Systems 1112 GEN42472001 Database Systems 1113 GEN39071998Database And Knowledge2222 GEN39071998Database And Knowledge2223 GEN18071998Electronic Circuits3333 GEN58071985Genes 74444 GEN45071988Anatomy5555 דוגמא - תוצאה UPDATE Books SET Max_Time = 7, Faculty = ‘ GEN ’ :
5
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 5 UPDATE ( המשך...) עדכון חלק מהרשומות : הוספת תנאי WHERE condition דוגמא : הגבלת משך ההשאלה לשבוע ימים לספרים השייכים לספריית מדעי המחשב. UPDATE Books SET Max_Time = 7 WHERE Faculty = ‘CS’;
6
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 6 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS34871998 Database Systems 1111 CS348141998 Database Systems 1112 CS42472001 Database Systems 1113 CS39011998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 Books:
7
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 7 FacultyPagesMax_TimeYearBook_NameBook_Id CS34871998 Database Systems 1111 CS34871998 Database Systems 1112 CS42472001 Database Systems 1113 CS39071998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 דוגמא - תוצאה UPDATE Books SET Max_Time = 7 WHERE Faculty = ‘CS’:
8
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 8 UPDATE ( המשך...) אפשרות נוספת : השמה של ביטויים. דוגמה : הארכת משך ההשאלה לכל הספרים ביום אחד. UPDATE Books SET Max_Time = Max_Time + 1;
9
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 9 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS34871998 Database Systems 1111 CS348141998 Database Systems 1112 CS42472001 Database Systems 1113 CS39011998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 Books:
10
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 10 דוגמא - תוצאה FacultyPagesMax_TimeYearBook_NameBook_Id CS34881998 Database Systems 1111 CS348151998 Database Systems 1112 CS42482001 Database Systems 1113 CS39021998Database And Knowledge2222 EE39081998Database And Knowledge2223 EE180221998Electronic Circuits3333 MED58081985Genes 74444 MED45081988Anatomy5555 UPDATE Books SET Max_Time = Max_Time + 1:
11
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 11 UPDATE – שימוש בתת - שאילתות הערך החדש יכול להיות תוצאה של תת - שאילתה דוגמא : לכל ספר יש לעדכן את משך ההשאלה למקסימלי באותה פקולטה. UPDATE Books B SET Max_Time = (SELECT MAX(Max_Time) WHERE Faculty = B.Faculty);
12
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 12 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS34871998 Database Systems 1111 CS348141998 Database Systems 1112 CS42472001 Database Systems 1113 CS39011998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 Books: MAX
13
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 13 FacultyPagesMax_TimeYearBook_NameBook_Id CS348141998 Database Systems 1111 CS348141998 Database Systems 1112 CS424142001 Database Systems 1113 CS390141998Database And Knowledge2222 EE390211998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 דוגמא – תוצאה UPDATE Books B SET Max_Time = (SELECT MAX(Max_Time) WHERE Faculty = B.Faculty):
14
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 14 UPDATE – המשך הערות : – כל החישובים בשאילתא מתבצעים, כביכול, על " העתק " זמני של הטבלה שאינו מתעדכן בזמן ביצוע ההוראה. – כלומר, עדכון של רשומה אינו משפיע על החישובים הבאים שמתבצעים עבור הרשומות הבאות.
15
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 15 הוספה - INSERT מטרה : הוספת רשומות חדשות אפשרות ראשונה : הוספת רשומה אחת נתונה דוגמא : הוספת לקוח לטבלת Customer. INSERT INTO Customer VALUES (78901, ‘Roy Peled’, ‘EE’);
16
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 16 דוגמה - המשך FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 Customer:
17
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 17 דוגמא - תוצאה FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 EERoy Peled78901 INSERT INTO Customer VALUES (78901, ‘Roy Peled’, ‘EE’):
18
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 18 INSERT – המשך ניתן לאתחל רק חלק מהשדות. דוגמא : INSERT INTO Customer(Cust_Id,Cust_Name) VALUES (78901, ‘Roy Peled’); הערות : – שדות לא מאותחלים (Faculty) יקבלו ערך NULL. – אם בעמודה Faculty אסור שיופיע NULL, ההוראה INSERT אינה חוקית, ולכן היא לא תתבצע.
19
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 19 דוגמה - המשך FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 Customer:
20
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 20 דוגמא - תוצאה FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 Roy Peled78901 INSERT INTO Customer(Cust_Id, Cust_Name) VALUES (78901, ‘Roy Peled’):
21
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 21 INSERT – שימוש בשאילתות הוספת רשומות המתקבלות כתוצאה של שאילתה. דוגמא : הכנסת כל הלקוחות שהזמינו ספרים לטבלה Readers. INSERT INTO Readers( Id, Name) (SELECT Cust_Id, Cust_Name FROM Customer C WHERE EXIST (SELECT * FROM Qrdered WHERE Cust_Id = C.Cust_Id); הוראה זו חוקית רק אם טבלה Readers קיימת.
22
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 22 דוגמה - המשך EEMoshe Cohen67890 CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 FacultyCust_NameCust_Id Customer: SELECT Cust_Id, Cust_Name FROM Customer C WHERE EXIST (SELECT * FROM Qrdered WHERE Cust_Id = C.Cust_Id): 14-Oct-2002 Database Systems 12345 24-Oct-2002Anatomy45678 30-Oct-2002Database And Knowledge12345 12-Oct-2002Electronic Circuits45678 Order_DateBook_NameCust_Id Ordered: Moshe Cohen12345 Lior Edri45678 Cust_NameCust_Id Readers:
23
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 23 INSERT מתבצעת על " העתק " זמני של הטבלה. דוגמא : INSERT INTO Readers (SELECT * FROM Readers); הוראה זו לא לא תכנס ללולאה אינסופית אלא רק תכפיל את הטבלה. INSERT – המשך
24
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 24 תוצאה CSMoshe Cohen12345 EELior Edri45678 Faculty Cust_NameCust_Id Readers: EELior Edri45678 CSMoshe Cohen12345 CSMoshe Cohen12345 EELior Edri45678 FacultyCust_NameCust_Id Readers: INSERT INTO Readers (SELECT * FROM Readers);
25
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 25 מחיקה – DELETE ההוראה DELETE מוחקת רשומות מתוך הטבלה. בהוראה זו צריך רק להגדיר אלו רשומות רוצים למחוק. דוגמה : מחיקת כל ההזמנות. DELETE FROM Ordered; הטבלה עצמה אינה נמחקת, אך היא נותרת ריקה.
26
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 26 DELETE – המשך (WHERE) אופציה WHERE מאפשרת לבחור אלו רשומות ימחקו מהטבלה. דוגמה : מחיקת כל ההזמנות של הלקוח בעל מספר מזהה 12345. DELETE FROM Ordered WHERE Cust_Id = 12345;
27
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 27 דוגמה – המשך Order_DateBook_NameCust_Id 14-Oct-2002 Database Systems 12345 24-Oct-2002Anatomy45678 30-Oct-2002Database And Knowledge12345 12-Oct-2002Electronic Circuits45678 Order_DateBook_NameCust_Id 24-Oct-2002Anatomy45678 12-Oct-2002Electronic Circuits45678 Ordered: DELETE FROM Ordered WHERE Cust_Id = 12345;
28
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 28 DELETE – המשך בתוך התנאי אפשר להשתמש בביטויים בוליאניים יותר מורכבים ובשאילתות. דוגמה : ביטול כל ההזמנות של אנשים שאינם מופיעים בטבלת הלקוחות. DELETE FROM Ordered O WHERE NOT EXIST (SELECT * FROM Customer WHERE Cust_Id = O.Cust_Id);
29
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 29 דוגמה - המשך Order_DateBook_NameCust_Id 14-Oct-2002 Database Systems 12345 24-Oct-2002Anatomy45678 30-Oct-2002Database And Knowledge 12345 12-Oct-2002Electronic Circuits45678 12-Oct-2002Electronic Circuits55555 Ordered: FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 Customer:
30
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 30 דוגמא - תוצאה Order_DateBook_NameCust_Id 14-Oct-2002 Database Systems 12345 24-Oct-2002Anatomy45678 30-Oct-2002Database And Knowledge 12345 12-Oct-2002Electronic Circuits45678 Ordered:
31
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 31 שמירה / ביטול של שינויים COMMIT/ROLLBACK שינויים מתבצעים על " העתק " של המסד. ניתן " להתחרט " ולבטל את השינויים האחרונים. COMMIT: העברת כל השינויים מההעתק אל מסד הנתונים ROLLBACK: ביטול כל השינויים מה -COMMIT האחרון ( או מתחילת העבודה עם המסד ). דוגמה : DELETE FROM Ordered; ROLLBACK; במקרים מסוימים מתבצעת פעולת COMMIT באופן אוטומטי ( נראה בהמשך ).
32
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 32 יצירת טבלה – CREATE TABLE יצירת טבלה ריקה : CREATE TABLE table (column_type [(length)] [NOT NULL],…); יצירת טבלה המכילה תוצאה של שאילתה : CREATE TABLE table AS SELECT …; הפעולה COMMIT מתבצעת אוטומטית לפני ואחרי CREATE TABLE.
33
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 33 דוגמא CREATE TABLE EXAMPLE (AB VARCHAR(15), CDINTEGER NOT NULL, EFDECIMAL(5), GHDECIMAL(7,2));
34
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 34 טיפוסים ב - PostgreSQL VARCHAR (n) – מחרוזת BOOLEAN – ערך בוליאני DATE – תאריך INTEGER – מספר שלם DECIMAL [(p,s)] – מספר עם דיוק עשרוני נתון …
35
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 35 CREATE TABLE – דוגמא דוגמא : יצירת טבלה חדשה בשם CSBooks שמכילה את כל הספרים השייכים לפקולטה ‘CS’. CREATE TABLE CSBooks AS SELECT Book_Id, Book_Name FROM Books WHERE Faculty = ‘CS’;
36
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 36 דוגמה - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS34871998 Database Systems 1111 CS348141998 Database Systems 1112 CS42472001 Database Systems 1113 CS39011998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 Books:
37
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 37 Book_NameBook_Id Database Systems 1111 Database Systems 1112 Database Systems 1113 Database And Knowledge2222 Book_NameBook_Id Database Systems 1111 Database Systems 1112 Database Systems 1113 Database And Knowledge2222 CSBooks: דוגמה - תוצאה
38
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 38 הסכמה של הטבלה החדשה : – סוגי העמודות נקבעים ע " י השאילתא שבהוראת ה - CREATE. – את שמות העמודות בטבלה החדשה אפשר לשנות : CREATE TABLE – המשך דוגמא : CREATE TABLE CSBooks(Id, Name) AS SELECT Book_Id, Book_Name FROM Books WHERE Faculty = ‘CS’; Database Systems 1111 Database Systems 1112 Database Systems 1113 Database And Knowledge2222 NameId CSBooks:
39
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 39 מחיקת טבלה – DROP TABLE דוגמה : מחיקת הטבלה CSBooks. DROP TABLE CSBooks; שימו לב ! הפקודה DROP TABLE היא בלתי הפיכה, כי COMMIT מתבצע אוטומטית לפניה ואחריה.
40
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 40 מבטים – VIEWS מוטיבציה : להתייחס לפלט של שאילתה כאל טבלה נפרדת ( בלי ליצור אותה פיזית ). בפועל : השאילתה שמגדירה את המבט נשמרת במסד הנתונים ומופעלת כל פעם מחדש. אינטואיציה : המבט מהווה מעין " חלון " דרכו אפשר להסתכל על חלק ממסד הנתונים. מטרה : הסתרת מידע, פישוט שאילתות...
41
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 41 מבטים - המשך יצירת מבט : CREATE VIEW view_name AS SELECT…; דוגמא : CREATE VIEW CSBooks AS SELECT Book_Id, Book_Name, Max_Time FROM Books WHERE Faculty = ‘CS’; ב -CSBooks מוסתרות כל העמודות של Books פרט ל - Book_Id, Book_Name, Max_Time וכל השורות פרט לספרים של מדעי מחשב. בשאילתה אסור שיופיע ORDER BY.
42
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 42 דוגמא – המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS34871998 Database Systems 1111 CS348141998 Database Systems 1112 CS42472001 Database Systems 1113 CS39011998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 Books: 7 Database Systems 1111 14 Database Systems 1112 7 Database Systems 1113 1Database And Knowledge2222 Max_TimeBook_NameBook_Id CSBooks
43
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 43 מבטים – המשך ( שאילתות ) על מבט ניתן לבצע שאילתות ממש כאילו היה טבלה. דוגמה : שליפת כל הספרים של מדעי מחשב שמשך ההשאלה שלהם הוא 7 ימים. SELECT Book_Name FROM CSBooks WHERE Max_Time = 7;
44
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 44 כל שינוי בטבלה המקורית מייד משפיע על המבט. ניתן לבצע עדכונים (UPDATE) למסד הנתונים דרך המבט, פרט למקרים בהם המבט הוא read-only. מבט הוא read-only אם השאילתה של CREATE VIEW מכילה : –JOIN –GROUP BY – ביטויים ברשימת העמודות דוגמה לעדכון : UPDATE CSBooks SET Max_Time = Max_Time + 1; מבטים – המשך ( עדכון )
45
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 45 דוגמא – המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS34881998 Database Systems 1111 CS348151998 Database Systems 1112 CS42482001 Database Systems 1113 CS39021998Database And Knowledge2222 EE39071998Database And Knowledge2223 EE180211998Electronic Circuits3333 MED58071985Genes 74444 MED45071988Anatomy5555 Books: 8 Database Systems 1111 15 Database Systems 1112 8 Database Systems 1113 2Database And Knowledge2222 Max_TimeBook_NameBook_Id CSBooks אחרי עדכון Max_Time:
46
חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 46 מבטים – המשך ( מחיקה ) מחיקת מבט : DROP VIEW דוגמה : DROP VIEW CSBooks; לטבלה שעליה מבוסס המבט לא קורה כלום.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.