Presentation is loading. Please wait.

Presentation is loading. Please wait.

חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי תוכן מסד נתונים ( עדכון, הוספה.

Similar presentations


Presentation on theme: "חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי תוכן מסד נתונים ( עדכון, הוספה."— Presentation transcript:

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; לטבלה שעליה מבוסס המבט לא קורה כלום.


Download ppt "חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי תוכן מסד נתונים ( עדכון, הוספה."

Similar presentations


Ads by Google