46
גגג"ג- גגגג236363- DBMS, גגגגגג גגגג: SQL () 1 - גגגגג גגג גגגגגגג גגגגגגDDL , DML - גגגגגג גSQL : גגגגגגג גגגגג ןןןןגגגגג,) גגג גגגגגג,(' גגגגג גג גגגגגג, גגגDML – Data Manipulation Language ( גגגגג ןןןןגגגגג,) גגג גגגגגג,(' גגגגג גג גגגגגג, גגגDDL – Data Definition Language

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

  • View
    258

  • Download
    0

Embed Size (px)

Citation preview

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

1

שינוי מסד הנתונים- DDL , DMLפעולות

:SQLפעולות ב-

שאילתות•

מסד נתונים (עדכון, הוספה של רשומות, תוכןשינוי •)DML – Data Manipulation Languageוכו'),

מסד נתונים (יצירה, מחיקה של מבנהשינוי •DDL – Data Definition Languageטבלאות, וכו'),

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

2

UPDATEעדכון –

: עדכון ערכים ברשומות קיימות במסד הנתונים.מטרה•

: השמה של ערכים קבועים בעמודות אפשרות ראשונה•מסוימות בכל הרשומות.

העברת כל הספרים לספרייה מרכזית, והגבלת :דוגמא•משך ההשאלה לשבוע ימים.

• UPDATE BooksSET Max_Time = 7, Faculty = ‘GEN’;

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

3

דוגמא - המשך

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 4: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

4

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 5: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

5

UPDATE(...המשך)

עדכון חלק מהרשומות: •WHERE conditionהוספת תנאי

דוגמא: הגבלת משך ההשאלה לשבוע ימים לספרים •השייכים לספריית מדעי המחשב.

UPDATE Books

SET Max_Time = 7

WHERE Faculty = ‘CS’;

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

6

דוגמא - המשך

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 7: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

7

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 8: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

8

UPDATE(...המשך)

אפשרות נוספת: השמה של ביטויים.•

דוגמה: הארכת משך ההשאלה לכל הספרים ביום •אחד.

UPDATE Books

SET Max_Time = Max_Time + 1;

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

9

דוגמא - המשך

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 10: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

10

דוגמא - תוצאה

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 11: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

11

UPDATEשימוש בתת-שאילתות –

הערך החדש יכול להיות תוצאה של תת-שאילתה•

דוגמא: לכל ספר יש לעדכן את משך ההשאלה •למקסימלי באותה פקולטה.

UPDATE Books B

SET Max_Time =

(SELECT MAX(Max_Time)

WHERE Faculty = B.Faculty);

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

12

דוגמא - המשך

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 13: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

13

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) WHERE Faculty = B.Faculty):

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

14

UPDATEהמשך –

הערות:•כל החישובים בשאילתא מתבצעים, כביכול, על –

"העתק" זמני של הטבלה שאינו מתעדכן בזמן ביצוע ההוראה.

כלומר, עדכון של רשומה אינו משפיע על החישובים –הבאים שמתבצעים עבור הרשומות הבאות.

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

15

INSERTהוספה -

: הוספת רשומות חדשותמטרה•

: הוספת רשומה אחת נתונהאפשרות ראשונה•

.Customer: הוספת לקוח לטבלת דוגמא•

INSERT INTO Customer

VALUES (78901, ‘Roy Peled’, ‘EE’);

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

16

דוגמה - המשך

Cust_IdCust_NameFaculty

12345Moshe CohenCS

23456Avi BarakEE

34567Avi BarakMED

45678Lior EdriEE

56789Moshe CohenEE

67890Moshe CohenEE

Customer:

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

17

דוגמא - תוצאה

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 18: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

18

INSERTהמשך –

ניתן לאתחל רק חלק מהשדות.•

דוגמא:•

INSERT INTO Customer(Cust_Id,Cust_Name)

VALUES (78901, ‘Roy Peled’);

הערות:•.NULL) יקבלו ערך Facultyשדות לא מאותחלים (– , ההוראהNULL אסור שיופיע Facultyאם בעמודה –

INSERT.אינה חוקית, ולכן היא לא תתבצע

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

19

דוגמה - המשך

Cust_IdCust_NameFaculty

12345Moshe CohenCS

23456Avi BarakEE

34567Avi BarakMED

45678Lior EdriEE

56789Moshe CohenEE

67890Moshe CohenEE

Customer:

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

20

דוגמא - תוצאה

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 21: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

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הוראה זו חוקית רק אם טבלה •

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

22

דוגמה - המשך

EEMoshe Cohen67890

CSMoshe Cohen12345EEAvi Barak23456

MEDAvi Barak34567EELior Edri45678EEMoshe 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-2002Database Systems 12345

24-Oct-2002Anatomy45678

30-Oct-2002Database And Knowledge12345

12-Oct-2002Electronic Circuits45678

Order_DateBook_NameCust_IdOrdered:

Moshe Cohen12345

Lior Edri45678

Cust_NameCust_Id

Readers:

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

23

•INSERT.מתבצעת על "העתק" זמני של הטבלה

דוגמא:•

INSERT INTO Readers

(SELECT * FROM Readers);

הוראה זו לא לא תכנס ללולאה אינסופית אלא רק •תכפיל את הטבלה.

INSERTהמשך –

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

24

תוצאה

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 25: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

25

DELETEמחיקה –

מוחקת רשומות מתוך הטבלה.DELETEההוראה •

בהוראה זו צריך רק להגדיר אלו רשומות רוצים •למחוק.

דוגמה: מחיקת כל ההזמנות.•

DELETE FROM Ordered;

הטבלה עצמה אינה נמחקת, אך היא נותרת ריקה.•

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

26

DELETE) המשך – WHERE(

מאפשרת לבחור אלו רשומות WHEREאופציה •ימחקו מהטבלה.

דוגמה: מחיקת כל ההזמנות של הלקוח בעל מספר •.12345מזהה

DELETE FROM Ordered

WHERE Cust_Id = 12345;

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

27

דוגמה – המשך

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 28: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

28

DELETEהמשך –

בתוך התנאי אפשר להשתמש בביטויים בוליאניים •יותר מורכבים ובשאילתות.

דוגמה: ביטול כל ההזמנות של אנשים שאינם •מופיעים בטבלת הלקוחות.

DELETE FROM Ordered O

WHERE NOT EXIST

(SELECT * FROM Customer

WHERE Cust_Id = O.Cust_Id);

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

29

דוגמה - המשך

Cust_IdBook_NameOrder_Date12345Database

Systems 14-Oct-2002

45678Anatomy24-Oct-2002

12345Database And Knowledge

30-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 30: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

30

דוגמא - תוצאה

Cust_IdBook_NameOrder_Date12345Database

Systems 14-Oct-2002

45678Anatomy24-Oct-2002

12345Database And Knowledge

30-Oct-2002

45678Electronic Circuits12-Oct-2002

Ordered:

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

31

ביטול של שינויים/שמירהCOMMIT/ROLLBACK

של המסד."העתק"שינויים מתבצעים על •ניתן "להתחרט" ולבטל את השינויים האחרונים.••COMMIT העברת כל השינויים מההעתק אל מסד הנתונים :•ROLLBACK-ביטול כל השינויים מה :COMMIT האחרון

(או מתחילת העבודה עם המסד).דוגמה:•

DELETE FROM Ordered;ROLLBACK;

באופן COMMITבמקרים מסוימים מתבצעת פעולת •אוטומטי (נראה בהמשך).

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

32

CREATE TABLEיצירת טבלה –

: יצירת טבלה ריקה•CREATE TABLE table (column_type [(length)] [NOT NULL],…);

יצירת טבלה המכילה תוצאה של שאילתה:•CREATE TABLE table AS SELECT …;

מתבצעת אוטומטית לפני ואחרי COMMIT הפעולה •CREATE TABLE.

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

33

דוגמא

• CREATE TABLE EXAMPLE(AB VARCHAR(15),

CD INTEGER NOT NULL, EF DECIMAL(5), GH DECIMAL(7,2));

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

34

PostgreSQLטיפוסים ב-

• VARCHAR (n) – מחרוזת

• BOOLEAN – ערך בוליאני

• DATE – תאריך

• INTEGER – מספר שלם

• DECIMAL [(p,s)] – מספר עם דיוק עשרוני נתון

• …

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

35

CREATE TABLEדוגמא –

CSBooksדוגמא: יצירת טבלה חדשה בשם •.’CS‘שמכילה את כל הספרים השייכים לפקולטה

CREATE TABLE CSBooks AS

SELECT Book_Id, Book_Name

FROM Books

WHERE Faculty = ‘CS’;

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

36

דוגמה - המשך

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 37: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

37

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 38: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

38

הסכמה של הטבלה החדשה:•סוגי העמודות נקבעים ע"י השאילתא שבהוראת –

.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 39: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

39

DROP TABLEמחיקת טבלה –

.CSBooksדוגמה: מחיקת הטבלה •

DROP TABLE CSBooks;

היא בלתי DROP TABLE הפקודה שימו לב!• מתבצע אוטומטית לפניה COMMITהפיכה, כי

ואחריה.

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

40

VIEWSמבטים –

: להתייחס לפלט של שאילתה כאל טבלה מוטיבציה•נפרדת (בלי ליצור אותה פיזית).

: השאילתה שמגדירה את המבט נשמרת במסד בפועל•הנתונים ומופעלת כל פעם מחדש.

: המבט מהווה מעין "חלון" דרכו אפשר אינטואיציה•להסתכל על חלק ממסד הנתונים.

: הסתרת מידע, פישוט שאילתות...מטרה•

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

41

מבטים - המשך:יצירת מבט•

CREATE VIEW view_name AS SELECT…;דוגמא:•

CREATE VIEW CSBooks ASSELECT Book_Id, Book_Name, Max_Time FROM BooksWHERE Faculty = ‘CS’;

פרט ל- Books כל העמודות של מוסתרות CSBooksב-•Book_Id, Book_Name, Max_Time וכל השורות פרט

לספרים של מדעי מחשב..ORDER BY שיופיע אסורבשאילתה •

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

42

דוגמא – המשך

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 43: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

43

מבטים – המשך (שאילתות)

על מבט ניתן לבצע שאילתות ממש כאילו היה טבלה.•

דוגמה: שליפת כל הספרים של מדעי מחשב שמשך • ימים.7ההשאלה שלהם הוא

SELECT Book_Name

FROM CSBooks

WHERE Max_Time = 7;

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

44

כל שינוי בטבלה המקורית מייד משפיע על המבט.•) למסד הנתונים דרך המבט, UPDATEניתן לבצע עדכונים (•

.read-onlyפרט למקרים בהם המבט הוא CREATE VIEW אם השאילתה של read-onlyמבט הוא •

מכילה:–JOIN–GROUP BYביטויים ברשימת העמודות–

דוגמה לעדכון:•UPDATE CSBooks SET Max_Time = Max_Time + 1;

מבטים – המשך (עדכון)

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

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

45

דוגמא – המשך

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 46: חורף - תשס " ג 236363- DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי

SQL :שפות שאילתא ,DBMS -236363חורף-תשס"ג('ג)

46

מבטים – המשך (מחיקה)

DROP VIEWמחיקת מבט: •

דוגמה:•

DROP VIEW CSBooks;

לטבלה שעליה מבוסס המבט לא קורה כלום.•