חורף תשס " ג dbms - 236363, שפות שאילתה : sql ( א ') 1 סכמה sql:...

Post on 21-Dec-2015

288 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

סכמה

SQLמושגים :

טבלה, רלציה

שורה, רשומה,

nיה-

עמודה, תכונה, שדה, אטריביוט

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

דוגמא של מסד נתונים

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

• Customers(Cust_Id, Cust_Name, Faculty)– Cust_Id: מס' זהות של לקוח– Cust_Name:שם לקוח – Faculty: שם פקולטה

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

Customersהטבלה

Cust_IdCust_NameFaculty

12345Moshe CohenCS

23456Avi BarakEE

34567Avi BarakMED

45678Lior EdriEE

56789Moshe CohenEE

67890Moshe CohenEE

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

פירוט הטבלאות (המשך...)

• Books(Book_Id, Book_Name, Year, Max_Time, Faculty, Pages)

– Book_Id: (ייחודי לכל עותק) מס' מזהה– Book_Name: שם הכותר – Year: שנת הוצאה– Max_Time: (בימים) משך השאלה מקס' אפשרי– Faculty: שם פקולטה– Pages: מס' עמודים

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

Booksהטבלה

Book_IdBook_NameYearMax_TimePagesFaculty

1111Database Systems 19987348CS

1112Database Systems 199814348CS

1113Database Systems20017424CS

2222Database And Knowledge19981390CS

2223Database And Knowledge19987390EE

3333Electronic Circuits199821180EE

4444Genes 719857580MED

5555Anatomy19887450MED

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

פירוט הטבלאות (המשך...)

• Ordered(Cust_Id, Book_Name, Order_Date)– Cust_Id: מס' זהות של לקוח– Book_Name: שם הכותר– Order_Date: תאריך הזמנת הכותר

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

Ordered טבלת

Cust_IdBook_NameOrder_Date12345Database Systems 14-Oct-2002

45678Anatomy24-Oct-2002

12345Database And Knowledge30-Oct-2002

45678Electronic Circuits12-Oct-2002

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

פירוט הטבלאות (המשך...)

• Borrowed(Book_Id, Cust_Id, From_Date, To_Date)– Book_Id: מס' מזהה של ספר– Cust_Id: מס' זהות של לקוח– From_Date: תאריך השאלת הספר– To_Date: תאריך החזרת הספר

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

Borrowedטבלת

Book_IdCust_IdFrom_DateTo_Date

55555678913-Oct-2002

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

SQL: SELECTשאילתות ב-

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

SELECT Book_Name, Pages FROM Books;

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

SELECT column, column, …

FROM table;

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

Book_IdBook_NameYearMax_TimePagesFaculty

1111Database Systems 19987348CS

1112Database Systems 199814348CS

1113Database Systems20017424CS

2222Database And Knowledge19981390CS

2223Database And Knowledge19987390EE

3333Electronic Circuits199821180EE

4444Genes 719857580MED

5555Anatomy19887450MED

דוגמא - המשך

Books:

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

דוגמא - תוצאה

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

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

שלפית כל השדות

לשליפת כל השדות, משתמשים בתו "*" (כוכבית).•

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

SELECT * FROM Books;

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

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:

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

ניתן לשלוף ביטויים אריתמטיים המשתמשים •בשדות הטבלה.

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

SELECT Book_Id, Book_Name, Max_Time/7

FROM Books;

ביטויים אריתמטיים

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

Book_IdBook_NameYearMax_TimePagesFaculty

1111Database Systems 19987348CS

1112Database Systems 199814348CS

1113Database Systems20017424CS

2222Database And Knowledge19981390CS

2223Database And Knowledge19987390EE

3333Electronic Circuits199821180EE

4444Genes 719857580MED

5555Anatomy19887450MED

דוגמא - המשך

Books:

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

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 :

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

בחירת חלק מהרשומות

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

דוגמא: שליפת שמות כל הספרים שהוצאו אחרי •:1990השנה

SELECT Book_Name

FROM Books

WHERE Year > 1990;

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

Book_IdBook_NameYearMax_TimePagesFaculty

1111Database Systems 19987348CS

1112Database Systems 199814348CS

1113Database Systems20017424CS

2222Database And Knowledge19981390CS

2223Database And Knowledge19987390EE

3333Electronic Circuits199821180EE

4444Genes 719857580MED

5555Anatomy19887450MED

דוגמא - המשך

Books:

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

Book_Name

Database Systems

Database Systems

Database Systems

Database And Knowledge

Database And Knowledge

Electronic Circuits

דוגמא - תוצאה

SELECT Book_Name FROM Books WHERE Year > 1990 :

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

WHERE(...המשך)

:תנאים יותר מורכבים•שימוש בסימני היחס: <, =, <, <<, =< ...–.AND, OR, NOTשימוש בקשרים לוגיים: –

דוגמא: שליפת שמות כל הספרים שהוצאו בין •:2000 ו 1990השנים

SELECT Book_NameFROM BooksWHERE Year > 1990 AND Year > 2000;

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

Book_IdBook_NameYearMax_TimePagesFaculty

1111Database Systems 19987348CS

1112Database Systems 199814348CS

1113Database Systems20017424CS

2222Database And Knowledge19981390CS

2223Database And Knowledge19987390EE

3333Electronic Circuits199821180EE

4444Genes 719857580MED

5555Anatomy19887450MED

דוגמא - המשך

Books:

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

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 :

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

BETWEENאופרטור

אפשר לכתוב BETWEENבעזרת האופרטור •:ביטוי זה בצורה יותר קריאה

SELECT Book_Name

FROM Books

WHERE Year BETWEEN 1990 AND 2000;

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

עוד דוגמא

בין לאדוגמא: שליפת שמות כל הספרים שהוצאו •:2000 ו 1990השנים

SELECT Book_Name

FROM Books

WHERE NOTNOT (Year BETWEEN 1990 AND 2000);

או:

WHERE Year NOTNOT BETWEEN 1990 AND 2000;

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

בחירה מרשימה של ערכים

1995, 1992דוגמא: שליפת כל הספרים שהוצאו בשנים •:1999או

SELECT Book_Name

FROM Books

WHERE Year=1992 OR Year=1998 OR Year=2001;

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

:INשימוש באופרטור •SELECT Book_NameFROM BooksWHERE Year IN (1992, 1998, 2001);

:NOT INשימוש באופרטור •SELECT Book_NameFROM BooksWHERE Year NOT IN (1992, 1998, 2001);

INבחירה מרשימה של ערכים -

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

LIKEהאופרטור

בודק התאמה של מחרוזת LIKEהאופרטור •).wildcardsלתבנית נתונה (

" מתאים לתו בודד._התו "• או 0" מתאים לסדרת תווים כלשהי, באורך %התו "•

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

:m והאות לפני אחרונה היא Databaseהמחרוזת SELECT Book_Name FROM BooksWHERE Book_Name LIKE ‘%Database%m_’;

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

Book_IdBook_NameYearMax_TimePagesFaculty

1111Database Systems 19987348CS

1112Database Systems 199814348CS

1113Database Systems20017424CS

2222Database And Knowledge19981390CS

2223Database And Knowledge19987390EE

3333Electronic Circuits199821180EE

4444Genes 719857580MED

5555Anatomy19887450MED

דוגמא - המשך

Books:

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

Book_NameDatabase Systems

Database Systems

Database Systems

דוגמא - תוצאה

SELECT Book_Name FROM Books

WHERE Book_Name LIKE ‘%Database%m_’ :

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

NULLערכים חסרים –

•NULL("משבצת ריקה") ערך מיוחד המציין ערך חסר – דוגמאות:•

תאריך החזרה של ספר שעדיין לא הוחזר–פקולטה של לקוח חיצוני–

: NULLהשוואה ל-•–expr IS NULL מחזיר – true אם expr הוא ערך NULL–expr IS NOT NULL

דוגמא: שליפת כל הספרים שעוד לא הוחזרו.•SELECT Book_Id FROM BorrowedWHERE To_Date IS NULL;

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

(המשך)NULLערכי

מוטיבציה: קביעת "ברירת מחדל" עבור ערך שיכול •NULL:להיות

COALESCE(value, default) תמיד NULLסיבה נוספת: ערך של ביטוי אריתמטי המכיל •

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

).0ספרים שעדיין לא הוחזרו יש להציג SELECT Book_Id , COALESCE(To_Date – From_Date, 0) / 7FROM Borrowed;

מחזיר את COALESCE(expr1,expr2,…)בצורה כללית: •NULLהערך הראשון השונה מ-

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

DISTINCT השמטת כפילויות -

משמיטה את הרשומות DISTINCTהאופציה •הכפולות מתוצאת השאילתא.

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

SELECT DISTINCT Book_Name, Year

FROM Books;

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

Book_IdBook_NameYearMax_TimePagesFaculty1111Database Systems 19987348CS

1112Database Systems 199814348CS

1113Database Systems20017424CS

2222Database And Knowledge19981390CS

2223Database And Knowledge19987390EE

3333Electronic Circuits199821180EE

4444Genes 719857580MED

5555Anatomy19887450MED

דוגמא - המשך

Books:

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

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 אחרי

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

ORDER BY מיון -

•ORDER BY מיון של הרשומות הנשלפות על פי : הערכים של שדות או ביטויים נתונים.

דוגמא: שליפת כל הספרים ממוינים לפי שנת •ההוצאה:

SELECT * FROM Books

ORDER BY Year;

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

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 :

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

DESCמיון בסדר הפוך -

SELECT * FROM Books

ORDER BY Year DESC;

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

מיון לפי כמה ביטויים

מיון ראשוני ומשני.•

דוגמא: שליפת פרטי הספרים ממוינים לפי שנת •ההוצאה , ולפי מספר העמודים (בין הספרים

שהוצאו באותה שנה).

SELECT * FROM Books

ORDER BY Year, Pages;

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

מיון (המשך...)

ניתן לציין את מס' השדה שלפיו יש למיין.•

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

SELECT * FROM Books

ORDER BY 3;

top related