46
1 SQL : דדדדד דדד- דדדדדדד דדדדדדDDL , DML - בבבבבב בSQL : בבבבבבב בבבבב ןןןןבבבבב,( בבב בבבבבב,)' בבבבב בב בבבבבב, בבבDML – Data Manipulation Language בבבבב ןןןןבבבבב,( בבב בבבבבב,)' בבבבב בב בבבבבב, בבבDDL – Data Definition Language בבבב2012 DBMS - 236363, DDL+DML: SQL

1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

Embed Size (px)

Citation preview

Page 1: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

1

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

:SQLפעולות ב-שאילתות מסד נתונים )עדכון, הוספה של רשומות, תוכןשינוי

DML – Data Manipulation Languageוכו'(, מסד נתונים )יצירה, מחיקה של מבנהשינוי

DDL – Data Definitionטבלאות, וכו'(, Language

2012אביב DBMS - 236363, DDL+DML: SQL

Page 2: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

2

UPDATEעדכון –

UPDATE tablename

SET column-assignment-list

WHERE conditional-expression ;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 3: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

3

UPDATEעדכון –

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

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

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

UPDATE BooksSET Max_Time = 7, Faculty = 'GEN';

2012אביב DBMS - 236363, DDL+DML: SQL

Page 4: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

4

דוגמא - המשך

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 CS

1112 Database Systems 1998 14 348 CS

1113 Database Systems 2001 7 424 CS

2222 Database And Knowledge 1998 1 390 CS

2223 Database And Knowledge 1998 7 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

Books:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 5: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

5

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 GEN

1112 Database Systems 1998 7 348 GEN

1113 Database Systems 2001 7 424 GEN

2222 Database And Knowledge 1998 7 390 GEN

2223 Database And Knowledge 1998 7 390 GEN

3333 Electronic Circuits 1998 7 180 GEN

4444 Genes 7 1985 7 580 GEN

5555 Anatomy 1988 7 450 GEN

דוגמא - תוצאה

UPDATE Books SET Max_Time = 7, Faculty = 'GEN':

2012אביב DBMS - 236363, DDL+DML: SQL

Page 6: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

6

UPDATE)...המשך(

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

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

UPDATE Books

SET Max_Time = 7

WHERE Faculty = 'CS';

2012אביב DBMS - 236363, DDL+DML: SQL

Page 7: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

7

דוגמא - המשך

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 CS

1112 Database Systems 1998 14 348 CS

1113 Database Systems 2001 7 424 CS

2222 Database And Knowledge 1998 1 390 CS

2223 Database And Knowledge 1998 7 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

Books:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 8: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

8

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 CS

1112 Database Systems 1998 7 348 CS

1113 Database Systems 2001 7 424 CS

2222 Database And Knowledge 1998 7 390 CS

2223 Database And Knowledge 1998 7 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

דוגמא - תוצאה

UPDATE Books SET Max_Time = 7 WHERE Faculty = 'CS':

2012אביב DBMS - 236363, DDL+DML: SQL

Page 9: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

9

UPDATE)...המשך(

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

אחד.

UPDATE Books

SET Max_Time = Max_Time + 1;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 10: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

10

דוגמא - המשך

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 CS

1112 Database Systems 1998 14 348 CS

1113 Database Systems 2001 7 424 CS

2222 Database And Knowledge 1998 1 390 CS

2223 Database And Knowledge 1998 7 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

Books:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 11: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

11

דוגמא - תוצאה

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 8 348 CS

1112 Database Systems 1998 15 348 CS

1113 Database Systems 2001 8 424 CS

2222 Database And Knowledge 1998 2 390 CS

2223 Database And Knowledge 1998 8 390 EE

3333 Electronic Circuits 1998 22 180 EE

4444 Genes 7 1985 8 580 MED

5555 Anatomy 1988 8 450 MED

UPDATE Books SET Max_Time = Max_Time + 1:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 12: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

12

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

הערך החדש יכול להיות תוצאה של תת-שאילתה דוגמא: לכל ספר יש לעדכן את משך ההשאלה

למקסימלי באותה פקולטה.

UPDATE Books

SET Max_Time =

(SELECT MAX(Max_Time) FROM Books B

WHERE B.Faculty = Books.Faculty);

2012אביב DBMS - 236363, DDL+DML: SQL

Page 13: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

13

דוגמא - המשך

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 CS

1112 Database Systems 1998 14 348 CS

1113 Database Systems 2001 7 424 CS

2222 Database And Knowledge 1998 1 390 CS

2223 Database And Knowledge 1998 7 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

Books:

MAX

2012אביב DBMS - 236363, DDL+DML: SQL

Page 14: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

14

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 14 348 CS

1112 Database Systems 1998 14 348 CS

1113 Database Systems 2001 14 424 CS

2222 Database And Knowledge 1998 14 390 CS

2223 Database And Knowledge 1998 21 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

דוגמא – תוצאהUPDATE Books

SET Max_Time = (SELECT MAX(Max_Time) FROM Books B WHERE B.Faculty = Books.Faculty);

2012אביב DBMS - 236363, DDL+DML: SQL

Page 15: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

15

UPDATEהמשך –

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

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

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

2012אביב DBMS - 236363, DDL+DML: SQL

Page 16: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

16

INSERTהוספה -

INSERT INTO tablename [) column-list (]

VALUES ) constant-list ( ;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 17: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

17

INSERTהוספה -

הוספת רשומות חדשותמטרה :הוספת רשומה אחת נתונהאפשרות ראשונה :הוספת לקוח לטבלת דוגמא :Customers.

INSERT INTO Customers

VALUES )78901, 'Roy Peled', 'EE'(;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 18: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

18

דוגמה - המשך

Cust_Id Cust_Name Faculty

12345 Moshe Cohen CS

23456 Avi Barak EE

34567 Avi Barak MED

45678 Lior Edri EE

56789 Moshe Cohen EE

67890 Moshe Cohen EE

Customers:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 19: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

19

דוגמא - תוצאה

Cust_Id Cust_Name Faculty

12345 Moshe Cohen CS

23456 Avi Barak EE

34567 Avi Barak MED

45678 Lior Edri EE

56789 Moshe Cohen EE

67890 Moshe Cohen EE

78901 Roy Peled EE

INSERT INTO Customers VALUES (78901, 'Roy Peled', 'EE'):

2012אביב DBMS - 236363, DDL+DML: SQL

Page 20: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

20

INSERTהמשך –

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

INSERT INTO Customers)Cust_Id,Cust_Name(

VALUES )78901, 'Roy Peled'(;:הערות

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

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

2012אביב DBMS - 236363, DDL+DML: SQL

Page 21: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

21

דוגמה - המשך

Cust_Id Cust_Name Faculty

12345 Moshe Cohen CS

23456 Avi Barak EE

34567 Avi Barak MED

45678 Lior Edri EE

56789 Moshe Cohen EE

67890 Moshe Cohen EE

Customers:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 22: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

22

דוגמא - תוצאה

Cust_Id Cust_Name Faculty

12345 Moshe Cohen CS

23456 Avi Barak EE

34567 Avi Barak MED

45678 Lior Edri EE

56789 Moshe Cohen EE

67890 Moshe Cohen EE

78901 Roy Peled

INSERT INTO Customers(Cust_Id, Cust_Name)

VALUES (78901, 'Roy Peled'):

2012אביב DBMS - 236363, DDL+DML: SQL

Page 23: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

23

INSERT שימוש בשאילתות –

.הוספת רשומות המתקבלות כתוצאה של שאילתה דוגמא: הכנסת כל הלקוחות שהזמינו ספרים

. ReadersלטבלהINSERT INTO Readers( Id, Name)

(SELECT Cust_Id, Cust_Name

FROM Customers C WHERE EXISTS

(SELECT * FROM Ordered

WHERE Cust_Id = C.Cust_Id));

קיימת.Readersהוראה זו חוקית רק אם טבלה •

2012אביב DBMS - 236363, DDL+DML: SQL

Page 24: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

24

דוגמה - המשך

Customers: Ordered:

EEMoshe Cohen67890

CSMoshe Cohen12345

EEAvi Barak23456

MEDAvi Barak34567

EELior Edri45678

EEMoshe Cohen56789

FacultyCust_NameCust_Id

SELECT Cust_Id, Cust_Name

FROM Customers C WHERE EXISTS

(SELECT * FROM Ordered

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:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 25: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

25

INSERT.מתבצעת על "העתק" זמני של הטבלה :דוגמא

INSERT INTO Readers

)SELECT * FROM Readers(;

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

INSERTהמשך –

2012אביב DBMS - 236363, DDL+DML: SQL

Page 26: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

26

תוצאה

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);

2012אביב DBMS - 236363, DDL+DML: SQL

Page 27: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

27

DELETEמחיקה –

DELETE FROM tablename

WHERE conditional-expression

2012אביב DBMS - 236363, DDL+DML: SQL

Page 28: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

28

DELETEמחיקה –

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

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

DELETE FROM Ordered;

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

2012אביב DBMS - 236363, DDL+DML: SQL

Page 29: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

29

DELETE( המשך – WHERE)

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

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

DELETE FROM Ordered

WHERE Cust_Id = 12345;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 30: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

30

דוגמה – המשך

Cust_Id Book_Name Order_Date

12345 Database Systems 14-Oct-2002

45678 Anatomy 24-Oct-2002

12345 Database And Knowledge 30-Oct-2002

45678 Electronic Circuits 12-Oct-2002

Cust_Id Book_Name Order_Date

45678 Anatomy 24-Oct-2002

45678 Electronic Circuits 12-Oct-2002

Ordered:

Ordered:

DELETE FROM Ordered

WHERE Cust_Id = 12345;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 31: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

31

DELETEהמשך –

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

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

DELETE FROM Ordered

WHERE NOT EXISTS

(SELECT * FROM Customers

WHERE Cust_Id = Ordered.Cust_Id);2012אביב DBMS - 236363, DDL+DML: SQL

Page 32: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

32

דוגמה - המשך

Cust_Id Book_Name Order_Date

12345 Database Systems 14-Oct-2002

45678 Anatomy 24-Oct-2002

12345 Database And Knowledge 30-Oct-2002

45678 Electronic Circuits 12-Oct-2002

55555 Electronic Circuits 12-Oct-2002

Ordered: Cust_Id Cust_Name Faculty

12345 Moshe Cohen CS

23456 Avi Barak EE

34567 Avi Barak MED

45678 Lior Edri EE

56789 Moshe Cohen EE

67890 Moshe Cohen EE

Customers:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 33: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

33

דוגמא - תוצאה

Cust_Id Book_Name Order_Date

12345 Database Systems 14-Oct-2002

45678 Anatomy 24-Oct-2002

12345 Database And Knowledge 30-Oct-2002

45678 Electronic Circuits 12-Oct-2002

Ordered:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 34: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

34

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

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

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

2012אביב DBMS - 236363, DDL+DML: SQL

Page 35: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

35

דוגמא

CREATE TABLE EXAMPLE(AB VARCHAR(15),

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

2012אביב DBMS - 236363, DDL+DML: SQL

Page 36: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

36

PostgreSQLטיפוסים ב-

VARCHAR )n( – מחרוזת BOOLEAN – ערך בוליאני DATE – תאריך INTEGER – מספר שלם DECIMAL [)p,s(] – מספר עם דיוק עשרוני נתון …

2012אביב DBMS - 236363, DDL+DML: SQL

Page 37: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

37

CREATE TABLEדוגמא –

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

CREATE TABLE CSBooks AS

SELECT Book_Id, Book_Name

FROM Books

WHERE Faculty = 'CS';

2012אביב DBMS - 236363, DDL+DML: SQL

Page 38: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

38

דוגמה - המשך

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 CS

1112 Database Systems 1998 14 348 CS

1113 Database Systems 2001 7 424 CS

2222 Database And Knowledge 1998 1 390 CS

2223 Database And Knowledge 1998 7 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

Books:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 39: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

39

Book_Id Book_Name

1111 Database Systems

1112 Database Systems

1113 Database Systems

2222 Database And Knowledge Book_Id Book_Name

1111 Database Systems

1112 Database Systems

1113 Database Systems

2222 Database And Knowledge

CSBooks:

דוגמה - תוצאה

2012אביב DBMS - 236363, DDL+DML: SQL

Page 40: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

40

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

.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:

2012אביב DBMS - 236363, DDL+DML: SQL

Page 41: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

41

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

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

DROP TABLE CSBooks;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 42: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

42

VIEWSמבטים –

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

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

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

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

2012אביב DBMS - 236363, DDL+DML: SQL

Page 43: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

43

מבטים - המשך

יצירת מבט: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.

2012אביב DBMS - 236363, DDL+DML: SQL

Page 44: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

44

דוגמא – המשך

Book_Id Book_Name Year Max_Time Pages Faculty

1111 Database Systems 1998 7 348 CS

1112 Database Systems 1998 14 348 CS

1113 Database Systems 2001 7 424 CS

2222 Database And Knowledge 1998 1 390 CS

2223 Database And Knowledge 1998 7 390 EE

3333 Electronic Circuits 1998 21 180 EE

4444 Genes 7 1985 7 580 MED

5555 Anatomy 1988 7 450 MED

Books:

7Database Systems 1111

14Database Systems 1112

7Database Systems1113

1Database And Knowledge2222

Max_TimeBook_NameBook_Id

CSBooks

2012אביב DBMS - 236363, DDL+DML: SQL

Page 45: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

45

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

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

ימים.7ההשאלה שלהם הוא

SELECT Book_Name

FROM CSBooks

WHERE Max_Time = 7;

2012אביב DBMS - 236363, DDL+DML: SQL

Page 46: 1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות,

46

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

:מחיקת מבטDROP VIEW:דוגמה

DROP VIEW CSBooks;

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

2012אביב DBMS - 236363, DDL+DML: SQL