אביב תשס"גDBMS - 236363, שפות שאילתה: SQL1 סכמה SQL (Structured Query Language) : מושגים טבלה, רלציה שורה, רשומה, n- יה עמודה, תכונה, שדה, אטריביוט.

Slides:



Advertisements
Similar presentations
ממיבחניםC שאלות ++.
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
עיבוד תמונות ואותות בעזרת מחשב
אקסס מבוא למערכות מידע.
מתמטיקה בדידה תרגול 3.
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
אביב תשס"הDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
חורף תשס " ג DBMS , שפות שאילתה : SQL ( א ') 1 סכמה SQL: מושגים טבלה, רלציה שורה, רשומה, n- יה עמודה, תכונה, שדה, אטריביוט.
מסדי נתונים תשס " ג 1 More on SQL קורס מסדי נתונים.
DBMS , שפות שאילתה: SQL (ב')
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Multi-Cycle MIPS דוגמאות. דוגמה 1 נתון קטע הקוד הבא: begin:addi $v0, $zero, -1 loop:add $a0, $a0, $a0 addi$v0,$v0,1 bne $a0, $zero, loop הניחו כי בתחילת.
חורף DBMS , שפות שאילתה: SQL 1 SQL questions.
חורף תשס"טDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.
חורף - תשס " ג DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי תוכן מסד נתונים ( עדכון, הוספה.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts SQL n מבנה שאילתה n פונקציות צבירה.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
עקרון ההכלה וההדחה.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Last time on Clang משתנה: "פתק" המשמש את המחשב לשמירת מידע. לכל משתנה יש שם וטיפוס כללים לשמות משתנים –חייבים להכיל רק אותיות, מספרים ו '_' –חייבים להתחיל.
1 compute תנאים פשוטים בעזרת compute לוגי לדוגמא: compute q1 = w > 80. Freq var = q1.
אביב תשס"הDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
1 SQL/ DML Structured Query Language Data Manipulation Language (DML) is used to query and update data מהדורה 02.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות  שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות, וכו'), DML – Data Manipulation Language.
File Systems Motivation SQL (Structured Query Language) MapReduce 1 תרגול 1.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
2003B Q5 Suppliers(sid, sname, city) Select sid from suppliers where city=‘jerusalem’ or sname like ‘%Smith’ Select sid from suppliers where city=‘jerusalem’
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
מחרוזות – הטיפוס String
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
מבוא למדעי המחשב לתעשייה וניהול
Structured Query Language
Summary SQL DML.
Operators Overloading
Formal Specifications for Complex Systems (236368) Tutorial #1
Database Management Systems
Database Management Systems
SQL בסיסי – הגדרה אינדוקטיבית
Structured Query Language
SQL SQL הינה השפה הדומיננטית לטיפול בבסיסי נתונים יחסיים, אך לא קיים סטנדרט SQL יחיד. ׁ(SQL92, SQL3 …) ניתן לחלק את פקודות SQL לארבע משפחות: פקודות להגדרת.
עבודה עם נתונים באמצעות ADO.NET
Based on the lecture notes of Prof. Sagiv
בסיסי נתונים ושפת SQL הרצאה #6
טבלאות מדומות (Views).
איתור נתונים מתקדם, בעזרת vlookup וחברים
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

אביב תשס"גDBMS , שפות שאילתה: SQL1 סכמה SQL (Structured Query Language) : מושגים טבלה, רלציה שורה, רשומה, n- יה עמודה, תכונה, שדה, אטריביוט

אביב תשס"גDBMS , שפות שאילתה: SQL2 Borrowed Cust_Id Book_Id From_Date To_Date Ordered Cust_Id Book_Name Order_Date Books Book_Id Book_Name Year Max_Time Faculty Pages0 Customers Cust_Id Cust_Name Faculty מסד נתונים של ספרייה דוגמא של מסד נתונים

אביב תשס"גDBMS , שפות שאילתה: SQL3 פירוט הטבלאות Customers(Cust_Id, Cust_Name, Faculty) –Cust_Id: ( ייחודי לכל לקוח) מס' זהות של לקוח –Cust_Name: שם לקוח –Faculty: שם פקולטה

אביב תשס"גDBMS , שפות שאילתה: SQL4 הטבלה Customers FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890

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

אביב תשס"גDBMS , שפות שאילתה: SQL6 הטבלה Books FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555

אביב תשס"גDBMS , שפות שאילתה: SQL7 פירוט הטבלאות (המשך...) Ordered(Cust_Id, Book_Name, Order_Date) Cust_Id: מס' זהות של לקוח Book_Name: שם הספר Order_Date: תאריך הזמנת הספר

אביב תשס"גDBMS , שפות שאילתה: SQL8 טבלת Ordered Order_DateBook_NameCust_Id 14-Oct-2002Database Systems Oct-2002Anatomy Oct-2002Database And Knowledge Oct-2002Electronic Circuits45678

אביב תשס"גDBMS , שפות שאילתה: SQL9 פירוט הטבלאות (המשך...) Borrowed(Book_Id, Cust_Id, From_Date, To_Date) Book_Id: מס' מזהה של הספר Cust_Id: מס' זהות של לקוח From_Date: תאריך השאלת הספר To_Date: תאריך החזרת הספר

אביב תשס"גDBMS , שפות שאילתה: SQL10 טבלת Borrowed To_DateFrom_DateCust_IdBook_Id 13-Oct

אביב תשס"גDBMS , שפות שאילתה: SQL11 שאילתות ב-SQL: SELECT SELECT [ALL | DISTINCT] {[table.]* | expr [alias], exp [alias], …} FROM table [alias], table [alias], … [WHERE condition] [GROUP BY expr, expr, … [HAVING condition]] [{INTERSECT | MINUS | UNION | UNION ALL } SELECT …] [ORDER BY expr [ASC | DESC ], expr [ASC | DESC],…];

אביב תשס"גDBMS , שפות שאילתה: SQL12 שאילתות ב-SQL: SELECT דוגמא: שליפת כל הספרים ומספר העמודים בכל ספר: SELECT Book_Name, Pages FROM Books; השאילתה הפשוטה ביותר בוחרת שדות מסוימים מכל הרשומות בטבלה אחת. SELECT column, column, … FROM table;

אביב תשס"גDBMS , שפות שאילתה: SQL13 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 דוגמא - המשך Books:

אביב תשס"גDBMS , שפות שאילתה: SQL14 SELECT Book_Name, Pages FROM Books: PagesBook_Name 348 Database Systems 348 Database Systems 424 Database Systems 390Database And Knowledge 390Database And Knowledge 180Electronic Circuits 580Genes 7 450Anatomy דוגמא - תוצאה

אביב תשס"גDBMS , שפות שאילתה: SQL15 שליפת כל השדות לשליפת כל השדות, משתמשים בתו "*" (כוכבית). דוגמא: שליפת כל השדות של כל הספרים: * SELECT * FROM Books;

אביב תשס"גDBMS , שפות שאילתה: SQL16 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 דוגמא - תוצאה SELECT * FROM Books:

אביב תשס"גDBMS , שפות שאילתה: SQL17 ניתן לשלוף ביטויים אריתמטיים המשתמשים בשדות הטבלה. דוגמא: שליפת שמות ומספרי זיהוי של כל הספרים ומשך ההשאלה בשבועות. SELECT Book_Id, Book_Name, Max_Time/7 FROM Books; ביטויים אריתמטיים

אביב תשס"גDBMS , שפות שאילתה: SQL18 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 דוגמא - המשך Books:

אביב תשס"גDBMS , שפות שאילתה: SQL19 Max_Time/7Book_NameBook_Id 1 Database Systems Database Systems Database Systems Database And Knowledge2222 1Database And Knowledge2223 3Electronic Circuits3333 1Genes Anatomy5555 דוגמא - תוצאה SELECT Book_Id, Book_Name, Max_Time/7 FROM Books :

אביב תשס"גDBMS , שפות שאילתה: SQL20 בחירת חלק מהרשומות Where - האופציה WHERE condition מאפשרת לבחור רק חלק מהרשומות. דוגמא: שליפת שמות כל הספרים שהוצאו אחרי השנה 1990: SELECT Book_Name FROM Books WHERE WHERE Year > 1990;

אביב תשס"גDBMS , שפות שאילתה: SQL21 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books: דוגמא - המשך

אביב תשס"גDBMS , שפות שאילתה: SQL22 Book_Name Database Systems Database And Knowledge Electronic Circuits דוגמא - תוצאה SELECT Book_Name FROM Books WHERE Year > 1990 :

אביב תשס"גDBMS , שפות שאילתה: SQL23 WHERE (המשך...) תנאים יותר מורכבים: שימוש בסימני היחס: >, =,, =<... שימוש בקשרים לוגיים: AND, OR, NOT. דוגמא: שליפת שמות כל הספרים שהוצאו בין השנים 1990 ו 2000: SELECT Book_Name FROM Books >AND 1990 AND Year < 2000;

אביב תשס"גDBMS , שפות שאילתה: SQL24 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books: דוגמא - המשך

אביב תשס"גDBMS , שפות שאילתה: SQL25 Book_Name Database Systems Database And Knowledge Electronic Circuits SELECT Book_Name FROM Books WHERE Year > 1990 AND Year < 2000 : דוגמא - תוצאה

אביב תשס"גDBMS , שפות שאילתה: SQL26 אופרטור BETWEEN בעזרת האופרטור BETWEEN אפשר לכתוב ביטוי זה בצורה יותר קריאה: SELECT Book_Name FROM Books BETWEENAND WHERE Year BETWEEN 1990 AND 2000;

אביב תשס"גDBMS , שפות שאילתה: SQL27 עוד דוגמא דוגמא: שליפת שמות כל הספרים שהוצאו לא בין השנים 1990 ו 2000: SELECT Book_Name FROM Books NOT WHERE NOT (Year BETWEEN 1990 AND 2000); או: NOT WHERE Year NOT BETWEEN 1990 AND 2000;

אביב תשס"גDBMS , שפות שאילתה: SQL28 בחירה מרשימה של ערכים דוגמא: שליפת כל הספרים שהוצאו בשנים 1992, 1995 או 1999: SELECT Book_Name FROM Books OROR WHERE Year=1992 OR Year=1998 OR Year=2001;

אביב תשס"גDBMS , שפות שאילתה: SQL29 שימוש באופרטור IN: SELECT Book_Name FROM Books IN WHERE Year IN (1992, 1998, 2001); שימוש באופרטור NOT IN: SELECT Book_Name FROM Books IN WHERE Year NOT IN (1992, 1998, 2001); בחירה מרשימה של ערכים - IN

אביב תשס"גDBMS , שפות שאילתה: SQL30 האופרטור LIKE LIKE האופרטור LIKE בודק התאמה של מחרוזת לתבנית נתונה (wildcards). התו "_" מתאים לתו בודד. התו "%" מתאים לסדרת תווים כלשהי, באורך 0 או יותר. דוגמא: שליפת כל הספרים ששמם מכיל את המחרוזת Database והאות לפני אחרונה היא m: SELECT Book_Name FROM Books LIKE WHERE Book_Name LIKE ‘%Database%m_’;

אביב תשס"גDBMS , שפות שאילתה: SQL31 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 דוגמא - המשך Books:

אביב תשס"גDBMS , שפות שאילתה: SQL32 Book_Name Database Systems דוגמא - תוצאה SELECT Book_Name FROM Books WHERE Book_Name LIKE ‘%Database%m_’ :

אביב תשס"גDBMS , שפות שאילתה: SQL33 ערכים חסרים – NULL NULL – ערך מיוחד המציין ערך חסר ("משבצת ריקה") דוגמאות: תאריך החזרה של ספר שעדיין לא הוחזר פקולטה של לקוח חיצוני השוואה ל-NULL: expr IS NULL – מחזיר true אם expr הוא ערך NULL expr IS NOT NULL דוגמא: שליפת כל הספרים שעוד לא הוחזרו. SELECT Book_Id FROM Borrowed IS NULL WHERE To_Date IS NULL;

אביב תשס"גDBMS , שפות שאילתה: SQL34 ערכי NULL (המשך) מוטיבציה: קביעת "ברירת מחדל" עבור ערך שיכול להיות :NULL COALESCE(value, default) סיבה נוספת: ערך של ביטוי אריתמטי המכיל NULL תמיד יהיה NULL. דוגמא: הצגת משך ההשאלה בשבועות של כל הספרים (עבור ספרים שעדיין לא הוחזרו יש להציג 0). COALESCE SELECT Book_Id, COALESCE(To_Date – From_Date, 0) / 7 FROM Borrowed; בצורה כללית: COALESCE(expr1,expr2,…) מחזיר את הערך הראשון השונה מ- NULL

אביב תשס"גDBMS , שפות שאילתה: SQL35 השמטת כפילויות - DISTINCT האופציה DISTINCT משמיטה את הרשומות הכפולות מתוצאת השאילתא. דוגמא: שליפת כל שמות הספרים ושנות ההוצאה, ללא חזרות. DISTINCT SELECT DISTINCT Book_Name, Year FROM Books;

אביב תשס"גDBMS , שפות שאילתה: SQL36 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 דוגמא - המשך Books:

אביב תשס"גDBMS , שפות שאילתה: SQL37 YearBook_Name 1998 Database Systems 1998 Database Systems 2001 Database Systems 1998Database And Knowledge 1998Database And Knowledge 1998Electronic Circuits 1985Genes Anatomy דוגמא - תוצאה YearBook_Name 1998 Database Systems 2001 Database Systems 1998Database And Knowledge 1998Electronic Circuits 1985Genes Anatomy ללא DISTINCT אחרי DISTINCT

אביב תשס"גDBMS , שפות שאילתה: SQL38 מיון - ORDER BY ORDER BY : מיון של הרשומות הנשלפות על פי הערכים של שדות או ביטויים נתונים. דוגמא: שליפת כל הספרים ממוינים לפי שנת ההוצאה: SELECT * FROM Books ORDER BY ORDER BY Year;

אביב תשס"גDBMS , שפות שאילתה: SQL39 FacultyPagesMax_TimeYearBook_NameBook_Id MED Genes MED Anatomy5555 CS Database Systems 1111 CS Database Systems 1112 CS Database And Knowledge2222 EE Electronic Circuits3333 EE Database And Knowledge2223 CS Database Systems 1113 דוגמא - תוצאה SELECT * FROM Books ORDER BY Year :

אביב תשס"גDBMS , שפות שאילתה: SQL40 מיון בסדר הפוך -DESC DESC SELECT * FROM Books ORDER BY Year DESC; FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1113 MED Anatomy5555 CS Database Systems 1111 CS Database Systems 1112 CS Database And Knowledge2222 EE Electronic Circuits3333 EE Database And Knowledge2223 MED Genes 74444

אביב תשס"גDBMS , שפות שאילתה: SQL41 מיון לפי כמה ביטויים מיון ראשוני ומשני. דוגמא: שליפת פרטי הספרים ממוינים לפי שנת ההוצאה, ולפי מספר העמודים (בין הספרים שהוצאו באותה שנה). SELECT * FROM Books, ORDER BY Year, Pages;

אביב תשס"גDBMS , שפות שאילתה: SQL42 מיון (המשך...) ניתן לציין את מס' השדה שלפיו יש למיין. דוגמא: שליפת פרטי הספרים ממוינים לפי השדה השלישי: SELECT * FROM Books 3 ORDER BY 3;

אביב תשס"גDBMS , שפות שאילתה: SQL43 פונקציות סטטיסטיות ב- SQL ישנן הפונקציות הסטטיסטיות הבאות: MIN – מינימום MAX – מקסימום AVG – ממוצע SUM – סכום COUNT – מספר הרשומות כל אחת מפונקציות אלה פועלת על קבוצת ערכים ומחזירה ערך אחד.

אביב תשס"גDBMS , שפות שאילתה: SQL44 דוגמא דוגמא: חשב את מספר העמודים הממוצע והמקסימלי בין כל הספרים: פתרון: SELECT AVG(Pages), MAX(Pages) FROM Books;

אביב תשס"גDBMS , שפות שאילתה: SQL45 דוגמא – המשך Books: FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555

אביב תשס"גDBMS , שפות שאילתה: SQL46 דוגמא – המשך Pages AVG(Pages)MAX(Pages)

אביב תשס"גDBMS , שפות שאילתה: SQL47 פונקציות סטטיסטיות – המשך ניתן לחשב פונקציות סטטיסטיות רק על חלק מרשומות הטבלה ע"י שימוש באופציה WHERE. לדוגמא: SELECT COUNT (Book_Name) FROM Books WHERE Year = 1998;

אביב תשס"גDBMS , שפות שאילתה: SQL48 פונקציות סטטיסטיות – המשך Books: FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555

אביב תשס"גDBMS , שפות שאילתה: SQL49 דוגמא – המשך Book_Name: Book_Name Database Systems Database And Knowledge Electronic Circuits Genes 7 Anatomy COUNT(Book_Name) 5 Book_Name Database Systems Database And Knowledge Electronic Circuits WHERE COUNT

אביב תשס"גDBMS , שפות שאילתה: SQL50 פונקציות סטטיסטיות -השמטת כפילויות השמטת כפילויות בזמן חישוב הפונקציה: ע"י הוספת המילהDISTINCT לפני הפרמטר. דוגמא: SELECT COUNT (DISTINCT Book_Name) FROM Books WHERE Year = 1998;

אביב תשס"גDBMS , שפות שאילתה: SQL51 דוגמא – המשך (DISTINCT) COUNT(DISTINCT Book_Name) 3 DISTINCT Book_Name Database Systems Database And Knowledge Electronic Circuits Book_Name Database Systems Database And Knowledge Electronic Circuits

אביב תשס"גDBMS , שפות שאילתה: SQL52 פעולות סטטיסטיות על ערכי NULL כל הפונקציות הסטטיסטיות מתעלמות מערכי NULL. יוצא מן הכלל: COUNT(*). דוגמא: SELECT COUNT (*) FROM Books WHERE Year = 1998;

אביב תשס"גDBMS , שפות שאילתה: SQL53 פונקציות סטטיסטיות – המשך דוגמא: שליפת מספר הספרים בכל שנה ניסיון ראשון: SELECT Year, COUNT(Book_Id) FROM Books; לא חוקי! (הרבה ערכים של Year, ערך אחד של COUNT).

אביב תשס"גDBMS , שפות שאילתה: SQL54 (Aggregation)קיבוץ – GROUP BY הפעלת פונקציות סטטיסטיות על קבוצות של רשומות. המשך הדוגמא (תיקון): SELECT Year, COUNT(Book_Id) FROM Books GROUP BY Year; לכל ערך של Year, ה-COUNT מחושב בנפרד.

אביב תשס"גDBMS , שפות שאילתה: SQL55 דוגמא – המשך (GROUP BY) YearBook_Id COUNT(Book_Id)Year

אביב תשס"גDBMS , שפות שאילתה: SQL56 (Aggregation)קיבוץ – המשך דוגמא נוספת: SELECT Faculty, COUNT(Book_Id) FROM Books GROUP BY Year; לא חוקי! לאחר הקיבוץ לפי Year, בכל קבוצה יכולים להיות ערכי Faculty שונים. כלל: בנוסף לפעולות סטטיסטיות, מותר לשלוף רק שדות לפיהם מתבצע הקיבוץ (וביטויים).

אביב תשס"גDBMS , שפות שאילתה: SQL57 בחירה לאחר קיבוץ - HAVING האופציה HAVING condition: בחירת חלק מהקבוצות המתקבלות מ-GROUP BY. התנאי condition: פונקציות סטטיסטיות, שדות לפיהם מתבצע הקיבוץ, ביטויים.

אביב תשס"גDBMS , שפות שאילתה: SQL58 דוגמא (HAVING) דוגמא: מה מחזירה השאילתה הבאה? SELECT Year, COUNT(Book_Id) FROM Books GROUP BY Year HAVING AVG(Pages) > 400; הסבר: לאחר הקיבוץ לפי Year, מבין כל הקבוצות נבחרות כאלה שבהן ממוצע מספרי העמודים גדול מ- 400.

אביב תשס"גDBMS , שפות שאילתה: SQL59 דוגמא – המשך (HAVING) Books: FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555

אביב תשס"גDBMS , שפות שאילתה: SQL60 דוגמא – המשך (HAVING) AVG(Pages)COUNT(Book_Id)Year COUNT(Book_Id) Year AVG(Pages) > 400

אביב תשס"גDBMS , שפות שאילתה: SQL61 בחירה: WHERE לעומת HAVING WHERE: בחירת רשומות לפני הקיבוץ HAVING: בחירת קבוצות אחרי הקיבוץ. דוגמא: בין כל הספרים עם יותר מ-200 עמודים, חשב בכל שנה את מס' הספרים שיצאו לאור, בתנאי שבממוצע מספר העמודים באותה שנה גדול מ- 400.

אביב תשס"גDBMS , שפות שאילתה: SQL62 דוגמא – המשך דוגמא: בין כל הספרים עם יותר מ-200 עמודים, חשב בכל שנה את מס' הספרים שיצאו לאור, בתנאי שבממוצע מספר העמודים באותה שנה גדול מ SELECT Year, COUNT(Book_Id) FROM Books WHERE Pages > 200 GROUP BY Year HAVING AVG(Pages) > 400;

אביב תשס"גDBMS , שפות שאילתה: SQL63 דוגמא – המשך Books: MED Anatomy5555 MED Genes EE Electronic Circuits3333 CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 FacultyPagesMax_TimeYearBook_NameBook_Id WHERE Pages > 200

אביב תשס"גDBMS , שפות שאילתה: SQL64 דוגמא – המשך אחרי “GROUP BY Year”: AVG(Pages)COUNT(Book_Id)Year COUNT(Book_Id) Year HAVING AVG(Pages) > 400

אביב תשס"גDBMS , שפות שאילתה: SQL65 דוגמא – המשך הסבר (שלבים): 1. בחירת הרשומות של הספרים שמכילים יותר מ- 200 עמודים. 2. קיבוץ הרשומות לקבוצות, כך שבכל קבוצה יש לכל הרשומות (הספרים) אותו Year. 3. חישוב מספר העמודים הממוצע בכל קבוצה, ובחירת הקבוצות בהן הממוצע הוא לפחות חישוב מס' הספרים בכל קבוצה.

אביב תשס"גDBMS , שפות שאילתה: SQL66 שאילתות משתי טבלאות או יותר: צירוף (**JOIN) מטרה: "להצליב" רשומות מרלציות/טבלאות שונות syntax: FROM table1, table2, … משמעות: מכפלה קרטזית בין כל הטבלאות התייחסות לשדות מטבלה מסוימת: table1.field ביצוע הצלבה: ע"י הוספת תנאים ב- WHERE ** also known as: Inner JOIN or Equi-JOIN

אביב תשס"גDBMS , שפות שאילתה: SQL67 דוגמא (JOIN) דוגמא: שליפת שמות ומספרי הזהות של הלקוחות יחד עם שמות הספרים שהזמינו. פתרון: SELECT Customer.Cust_Id, Cust_Name, Book_Name FROM Customer, Ordered WHERE Customer.Cust_Id = Ordered.Cust_Id;

אביב תשס"גDBMS , שפות שאילתה: SQL68 Order_DateBook_NameCust_Id 14-Oct-2002 Database Systems Oct-2002Anatomy Oct-2002Database And Knowledge Oct-2002Electronic Circuits45678 FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 דוגמא – המשך (JOIN) Customer Ordered

אביב תשס"גDBMS , שפות שאילתה: SQL69 דוגמא – המשך (Natural JOIN) Book_NameCust_NameCust_Id Database SystemsMoshe Cohen12345 Database And KnowledgeMoshe Cohen12345 AnatomyLior Edri45678 Electronic CircuitsLior Edri45678 תוצאה:

אביב תשס"גDBMS , שפות שאילתה: SQL70 שליפת כל השדות של הטבלה. SELECT Customer.*, Book_Name FROM Customer, Ordered WHERE Customer.Cust_Id = Ordered.Cust_Id; JOIN: שליפת כל השדות מטבלה

אביב תשס"גDBMS , שפות שאילתה: SQL71 מטרה: לכלול את הלקוחות שלא הזמינו אף ספר פתרון: SELECT Customer.Cust_Id, Cust_Name, Book_Name FROM Customer LEFT OUTER JOIN Ordered ON ( Customer.Cust_Id = Ordered. Cust_Id ); אינטואיציה: הוספת שורת ערכי NULL לטבלת ההזמנות, ש"מתאימה" לכל לקוח שימו לב: ON במקום WHERE (תנאי ההצלבה) OUTER JOIN: שליפת רשומות ללא התאמה בטבלה השניה

אביב תשס"גDBMS , שפות שאילתה: SQL72 Book_NameCust_NameCust_Id Database SystemsMoshe Cohen12345 Database And KnowledgeMoshe Cohen12345 AnatomyLior Edri45678 Electronic CircuitsLior Edri45678 Avi Barak23456 Avi Barak34567 Moshe Cohen56789 Moshe Cohen67890 דוגמא – המשך (OUTER JOIN) תוצאה:

אביב תשס"גDBMS , שפות שאילתה: SQL73 דוגמא: מה עושה שאילתה זו? SELECT Customer.Cust_Id, Cust_Name, COUNT(Book_Name) FROM Customer LEFT OUTER JOIN Ordered ON (Customer.Cust_Id = Ordered. Cust_Id ( GROUP BY Customer.Cust_Id, Cust_Name; דוגמא נוספת

אביב תשס"גDBMS , שפות שאילתה: SQL74 תשובה: השאילתה מחזירה לכל לקוח ID, שם ומס' הספרים שהזמין. תוצאה: דוגמא – המשך COUNT (Book_Name)Cust_NameCust_Id 2Moshe Cohen Lior Edri Avi Barak Avi Barak Moshe Cohen Moshe Cohen67890 מה הייתה התוצאה ללא ה -OUTER JOIN?

אביב תשס"גDBMS , שפות שאילתה: SQL75 מטרה: שם נוסף (בד"כ קצר יותר) לטבלה דוגמא: SELECT C.Cust_Id, Cust_Name, Book_Name FROM Customer C, Ordered O WHERE C.Cust_Id = O. Cust_Id; שמות נרדפים – ALIAS

אביב תשס"גDBMS , שפות שאילתה: SQL76 שימוש נוסף: מספר עותקים של אותה טבלה SELECT C1.Cust_Name FROM Customer C1, Customer C2 WHERE C1. Cust_Name = C2. Cust_Name AND C1.Cust_Id <> C2.Cust_Id; ALIAS: שליפה מאותה טבלה פעמיים שאלה: מה מחזירה השאילתה? תשובה: כל הלקוחות כך שיש בספרייה עוד לקוח עם אותו שם. (זאת דוגמא של Self JOIN)

אביב תשס"גDBMS , שפות שאילתה: SQL77 SELECT Year, COUNT(Book_Id) AS Num_Books FROM Books GROUP BY Year; שימוש נוסף: לתת שם לביטוי סטטיסטי או אריתמטי דוגמא: ALIAS: מתן שם לביטוי נשלף

אביב תשס"גDBMS , שפות שאילתה: SQL78 התייחסות לרלציה כאל קבוצה של n-יות. אופרטורים ב-SQL: חיתוך – INTERSECT חיסור/הפרש – EXCEPT איחוד – UNION איחוד ללא השמטת כפילויות - UNION ALL תנאי: השאילתות מחזירות אותו מספר עמודות ואותם סוגי עמודות, בהתאמה. אופרטורים מתורת הקבוצות

אביב תשס"גDBMS , שפות שאילתה: SQL79 דוגמא: כל הלקוחות שלא הזמינו אף ספר: SELECT Cust_Id FROM Customer EXCEPT SELECT Cust_Id FROM Ordered; אופרטורים מתורת הקבוצות – המשך שימוש במיון: –ORDER BY צריך להופיע אחרי כל האופרטורים –יש להשתמש במספר השדה ולא בשמו (שיכול להיות שונה בין האופרנדים)

אביב תשס"גDBMS , שפות שאילתה: SQL80 מוטיבציה: התנאי ב- WHERE מכיל ביטוי שלא ידוע מראש, אלא תלוי בתוכן מסד הנתונים.** דוגמא: שליפת כל הספרים שיצאו לאור באותה שנה כמו ספר מס' SELECT Book_Name FROM Books WHERE Year = (SELECT Year FROM Books WHERE Book_Id = 1112) ; ** Dynamic WHERE clause תת - שאילתות – SUBQUERIES

אביב תשס"גDBMS , שפות שאילתה: SQL81 תת-שאילתה יכולה לשלוף כמה ביטויים. אפשר להשוות לערכים של כל הביטויים האלה בו- זמנית. דוגמא: שליפת כל הספרים שיצאו לאור באותה שנה ונמצאים באותה פקולטה כמו ספר מס' SELECT Book_Name FROM Books WHERE (Year, Faculty) = (SELECT Year, Faculty FROM Books WHERE Book_Id = 1112); תת - שאילתות – המשך

אביב תשס"גDBMS , שפות שאילתה: SQL82 תת-השאילתה יכולה להופיע כחלק מ- FROM. תת-השאילתה חייבת לקבל Alias. דוגמא: שליפת שמות הספרים שהוזמנו אחרי 20-0ct-98 ע"י לקוח מס' SELECT Book_Name FROM (SELECT * FROM Ordered WHERE Order_Date > 20-0ct-98) O WHERE O. Cust_Id = 1234; תת - שאילתות – המשך

אביב תשס"גDBMS , שפות שאילתה: SQL83 מוטיבציה: השוואת ערך בודד לקבוצת ערכים בהינתן ערך x וקבוצה A, נרצה לבטא: x גדול מכל הערכים ב -A (  y  A:x>y) x קטן מערך כלשהו ב -A (  y  A:x<y) x  A (  y  A:x=y) כמתים ב-SQL: 1. ANY-- קיים 2. ALL-- לכל (Quantifiers) כמתים

אביב תשס"גDBMS , שפות שאילתה: SQL84 הכימות נעשה ע"י כתיבת המילה ANY או ALL אחרי סימן ההשוואה דוגמא: שליפת ספרים בעלי יותר עמודים מכל הספרים בפקולטה למדעי המחשב. SELECT Book_Name, Pages FROM Books WHERE Pages >ALL (SELECT Pages FROM Books WHERE Faculty = ‘CS’); כמתים – המשך

אביב תשס"גDBMS , שפות שאילתה: SQL85 ניתן לממש אופרטור שייכות באמצעות כמתים: 1. =ANY  IN 2. <>ALL  NOT IN דוגמא: כמתים – המשך ( אופרטור שייכות ) SELECT Book_Name, Year FROM Books WHERE Year IN (SELECT Year FROM Books WHERE Faculty = ‘MED’);

אביב תשס"גDBMS , שפות שאילתה: SQL86 ניתן לקונן תת-שאילתות דוגמה: כל הפקולטות שמחזיקות ספרים שהזמין לקוח בשם ליאור אדרי: (Nested Subqueries) תת - שאילתות מקוננות SELECT Faculty FROM Books WHERE Book_Name IN (SELECT Book_Name FROM Ordered WHERE Cust_Id IN (SELECT Cust_Id FROM Customer WHERE Cust_Name = ‘Lior Edri’));

אביב תשס"גDBMS , שפות שאילתה: SQL87 תת-שאילתות לעומת JOIN דוגמא: כתוב אותה שאילתה ללא שימוש בתת שאילתות תת - שאילתות – המשך SELECT B.Faculty FROM Books B, Customer C, Ordered O WHERE B.Book_Name = O.Book_Name AND C.Cust_Id = O. Cust_Id; AND C.Cust_Name = ‘Lior Edri’; שאלה: איזו מהן יותר יעילה? תשובה: תלוי באופטימיזציה בשרת, בד"כ הפתרון עם התת- שאילתות יעיל יותר

אביב תשס"גDBMS , שפות שאילתה: SQL88 מוטיבציה: יש קשר דו-כיווני בין הפרמטרים של השאילתה החיצונית והפנימית דוגמא: מצא כל הספרים שניתן להשאיל אותם לתקופה ארוכה מהממוצע באותה פקולטה (Interconnected Subqueries) תת - שאילתות קשורות הדדית SELECT Book_Id, Book_Name, Max_Time FROM Books B WHERE Max_Time > (SELECTAVG(Max_Time) FROM Books WHERE Faculty = B.Faculty);

אביב תשס"גDBMS , שפות שאילתה: SQL89 EXIST הוא אופרטור בוליאני שפועל על תת-שאילתה. מחזיר true אם תת-השאילתה מחזירה ערך כלשהו, False אם אינה מחזירה דבר. דוגמא: שליפת כל הלקוחות שהזמינו ספר כלשהו אופרטור EXIST SELECT Cust_Name FROM Customer C WHERE EXIST (SELECT * FROM Ordered WHERE Cust_Id = C.Cust_Id);

אביב תשס"גDBMS , שפות שאילתה: SQL90 שינוי מסד הנתונים - פעולותDDL, DML פעולות ב-SQL: שאילתות  שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות, וכו'), DML – Data Manipulation Language) שינוי מבנה מסד נתונים (יצירה, מחיקה של טבלאות, וכו'), DDL – Data Definition Language

אביב תשס"גDBMS , שפות שאילתה: SQL91 UPDATE tablename column-assignment-list SET conditional-expression WHERE ; עדכון – UPDATE

אביב תשס"גDBMS , שפות שאילתה: SQL92 עדכון – UPDATE מטרה: עדכון ערכים ברשומות קיימות במסד הנתונים. אפשרות ראשונה: השמה של ערכים קבועים בעמודות מסוימות בכל הרשומות. דוגמא: העברת כל הספרים לספרייה מרכזית, והגבלת משך ההשאלה לשבוע ימים. UPDATE Books SET Max_Time = 7, Faculty = ‘ GEN ’ ;

אביב תשס"גDBMS , שפות שאילתה: SQL93 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books:

אביב תשס"גDBMS , שפות שאילתה: SQL94 FacultyPagesMax_TimeYearBook_NameBook_Id GEN Database Systems 1111 GEN Database Systems 1112 GEN Database Systems 1113 GEN Database And Knowledge2222 GEN Database And Knowledge2223 GEN Electronic Circuits3333 GEN Genes GEN Anatomy5555 דוגמא - תוצאה UPDATE Books SET Max_Time = 7, Faculty = ‘ GEN ’ :

אביב תשס"גDBMS , שפות שאילתה: SQL95 UPDATE (המשך...) עדכון חלק מהרשומות: הוספת תנאי WHERE condition דוגמא: הגבלת משך ההשאלה לשבוע ימים לספרים השייכים לספריית מדעי המחשב. UPDATE Books SET Max_Time = 7 WHERE Faculty = ‘CS’;

אביב תשס"גDBMS , שפות שאילתה: SQL96 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books:

אביב תשס"גDBMS , שפות שאילתה: SQL97 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 דוגמא - תוצאה UPDATE Books SET Max_Time = 7 WHERE Faculty = ‘CS’:

אביב תשס"גDBMS , שפות שאילתה: SQL98 UPDATE (המשך...) אפשרות נוספת: השמה של ביטויים. דוגמה: הארכת משך ההשאלה לכל הספרים ביום אחד. UPDATE Books SET Max_Time = Max_Time + 1;

אביב תשס"גDBMS , שפות שאילתה: SQL99 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books:

אביב תשס"גDBMS , שפות שאילתה: SQL100 דוגמא - תוצאה FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 UPDATE Books SET Max_Time = Max_Time + 1:

אביב תשס"גDBMS , שפות שאילתה: SQL101 UPDATE – שימוש בתת- שאילתות הערך החדש יכול להיות תוצאה של תת-שאילתה דוגמא: לכל ספר יש לעדכן את משך ההשאלה למקסימלי באותה פקולטה. UPDATE Books B SET Max_Time = (SELECT MAX(Max_Time) FROM Books WHERE Faculty = B.Faculty);

אביב תשס"גDBMS , שפות שאילתה: SQL102 דוגמא - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books: MAX

אביב תשס"גDBMS , שפות שאילתה: SQL103 FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 דוגמא – תוצאה UPDATE Books B SET Max_Time = (SELECT MAX(Max_Time) FROM Books WHERE Faculty = B.Faculty):

אביב תשס"גDBMS , שפות שאילתה: SQL104 UPDATE – המשך הערות: כל החישובים בשאילתה מתבצעים, כביכול, על "העתק" זמני של הטבלה שאינו מתעדכן בזמן ביצוע ההוראה. כלומר, עדכון של רשומה אינו משפיע על החישובים הבאים שמתבצעים עבור הרשומות הבאות.

אביב תשס"גDBMS , שפות שאילתה: SQL105 INSERT INTO tablename [( column-list )] VALUES ( constant-list ) ; הוספה - INSERT

אביב תשס"גDBMS , שפות שאילתה: SQL106 הוספה - INSERT מטרה: הוספת רשומות חדשות אפשרות ראשונה: הוספת רשומה אחת נתונה דוגמא: הוספת לקוח לטבלת Customer. INSERT INTO Customer VALUES (78901, ‘Roy Peled’, ‘EE’);

אביב תשס"גDBMS , שפות שאילתה: SQL107 דוגמה - המשך FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 Customer:

אביב תשס"גDBMS , שפות שאילתה: SQL108 דוגמא - תוצאה 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’):

אביב תשס"גDBMS , שפות שאילתה: SQL109 INSERT – המשך ניתן לאתחל רק חלק מהשדות. דוגמא: INSERT INTO Customer(Cust_Id,Cust_Name) VALUES (78901, ‘Roy Peled’); הערות: שדות לא מאותחלים (Faculty) יקבלו ערך NULL. אם בעמודה Faculty אסור שיופיע NULL, ההוראה INSERT אינה חוקית, ולכן היא לא תתבצע.

אביב תשס"גDBMS , שפות שאילתה: SQL110 דוגמה - המשך FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 Customer:

אביב תשס"גDBMS , שפות שאילתה: SQL111 דוגמא - תוצאה 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’):

אביב תשס"גDBMS , שפות שאילתה: SQL112 INSERT – שימוש בשאילתות הוספת רשומות המתקבלות כתוצאה של שאילתה. דוגמא: הכנסת כל הלקוחות שהזמינו ספרים לטבלהReaders. INSERT INTO Readers( Id, Name) (SELECT Cust_Id, Cust_Name FROM Customer C WHERE EXIST (SELECT * FROM Ordered WHERE Cust_Id = C.Cust_Id)); הוראה זו חוקית רק אם הטבלה Readers קיימת.

אביב תשס"גDBMS , שפות שאילתה: SQL113 דוגמא - המשך Customer: Ordered: EEMoshe Cohen67890 CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 FacultyCust_NameCust_Id SELECT Cust_Id, Cust_Name FROM Customer C WHERE EXIST (SELECT * FROM Qrdered WHERE Cust_Id = C.Cust_Id): 14-Oct-2002 Database Systems Oct-2002Anatomy Oct-2002Database And Knowledge Oct-2002Electronic Circuits45678 Order_DateBook_NameCust_Id Moshe Cohen12345 Lior Edri45678 Cust_NameCust_Id Readers:

אביב תשס"גDBMS , שפות שאילתה: SQL114 INSERT מתבצעת על "העתק" זמני של הטבלה. דוגמא: INSERT INTO Readers (SELECT * FROM Readers); הוראה זו לא תכנס ללולאה אינסופית אלא רק תכפיל את הטבלה. INSERT – המשך

אביב תשס"גDBMS , שפות שאילתה: SQL115 תוצאה 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);

אביב תשס"גDBMS , שפות שאילתה: SQL116 DELETE FROM tablename conditional-expression WHERE מחיקה – DELETE

אביב תשס"גDBMS , שפות שאילתה: SQL117 מחיקה – DELETE ההוראה DELETE מוחקת רשומות מתוך הטבלה. בהוראה זו צריך רק להגדיר אלו רשומות רוצים למחוק. דוגמה: מחיקת כל ההזמנות. DELETE FROM Ordered; הטבלה עצמה אינה נמחקת, אך היא נותרת ריקה.

אביב תשס"גDBMS , שפות שאילתה: SQL118 DELETE – המשך (WHERE) אופציה WHERE מאפשרת לבחור אלו רשומות ימחקו מהטבלה. דוגמה: מחיקת כל ההזמנות של הלקוח בעל מספר מזהה DELETE FROM Ordered WHERE Cust_Id = 12345;

אביב תשס"גDBMS , שפות שאילתה: SQL119 דוגמא – המשך Order_DateBook_NameCust_Id 14-Oct-2002 Database Systems Oct-2002Anatomy Oct-2002Database And Knowledge Oct-2002Electronic Circuits45678 Order_DateBook_NameCust_Id 24-Oct-2002Anatomy Oct-2002Electronic Circuits45678 Ordered: DELETE FROM Ordered WHERE Cust_Id = 12345;

אביב תשס"גDBMS , שפות שאילתה: SQL120 DELETE – המשך בתוך התנאי אפשר להשתמש בביטויים בוליאניים יותר מורכבים ובשאילתות. דוגמה: ביטול כל ההזמנות של אנשים שאינם מופיעים בטבלת הלקוחות. DELETE FROM Ordered O WHERE NOT EXIST (SELECT * FROM Customer WHERE Cust_Id = O.Cust_Id);

אביב תשס"גDBMS , שפות שאילתה: SQL121 דוגמה - המשך Order_Dat e Book_NameCust_Id 14-Oct-2002 Database Systems Oct-2002Anatomy Oct-2002Database And Knowledge Oct-2002Electronic Circuits Oct-2002Electronic Circuits55555 Ordered: FacultyCust_NameCust_Id CSMoshe Cohen12345 EEAvi Barak23456 MEDAvi Barak34567 EELior Edri45678 EEMoshe Cohen56789 EEMoshe Cohen67890 Customer:

אביב תשס"גDBMS , שפות שאילתה: SQL122 דוגמא - תוצאה Order_DateBook_NameCust_Id 14-Oct-2002 Database Systems Oct-2002Anatomy Oct-2002Database And Knowledge Oct-2002Electronic Circuits45678 Ordered:

אביב תשס"גDBMS , שפות שאילתה: SQL123 שמירה/ביטול של שינויים COMMIT/ROLLBACK שינויים מתבצעים על "העתק" של המסד. ניתן "להתחרט" ולבטל את השינויים האחרונים. COMMIT: העברת כל השינויים מההעתק אל מסד הנתונים ROLLBACK: ביטול כל השינויים מה-COMMIT האחרון (או מתחילת העבודה עם המסד). דוגמה: DELETE FROM Ordered; ROLLBACK; במקרים מסוימים מתבצעת פעולת COMMIT באופן אוטומטי (נראה בהמשך).

אביב תשס"גDBMS , שפות שאילתה: SQL124 יצירת טבלה – CREATE TABLE יצירת טבלה ריקה: CREATE TABLE table (column_name column_type [(length)] [NOT NULL],…); יצירת טבלה המכילה תוצאה של שאילתה: CREATE TABLE table AS SELECT …; הפעולה COMMIT מתבצעת אוטומטית לפני ואחריCREATE TABLE.

אביב תשס"גDBMS , שפות שאילתה: SQL125 - CREATE TABLE דוגמא CREATE TABLE example (AB varchar(15), CDinteger NOT NULL, EFdecimal(5), GHdecimal(7,2));

אביב תשס"גDBMS , שפות שאילתה: SQL126 טיפוסים ב- PostgreSQL varchar (n) – מחרוזת boolean – ערך בוליאני date – תאריך integer – מספר שלם decimal [(p,s)] – מספר עם דיוק עשרוני נתון …

אביב תשס"גDBMS , שפות שאילתה: SQL127 CREATE TABLE – דוגמא דוגמא: יצירת טבלה חדשה בשם CSBooks שמכילה את כל הספרים השייכים לפקולטה ‘CS’. CREATE TABLE CSBooks AS SELECT Book_Id, Book_Name FROM Books WHERE Faculty = ‘CS’;

אביב תשס"גDBMS , שפות שאילתה: SQL128 דוגמה - המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books:

אביב תשס"גDBMS , שפות שאילתה: SQL129 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: דוגמה - תוצאה

אביב תשס"גDBMS , שפות שאילתה: SQL130 הסכימה של הטבלה החדשה: סוגי העמודות נקבעים ע"י השאילתה שבהוראת 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:

אביב תשס"גDBMS , שפות שאילתה: SQL131 מחיקת טבלה – DROP TABLE דוגמא: מחיקת הטבלה CSBooks. DROP TABLE CSBooks; שימו לב! הפקודה DROP TABLE היא בלתי הפיכה, כי COMMIT מתבצע אוטומטית לפניה ואחריה.

אביב תשס"גDBMS , שפות שאילתה: SQL132 מבטים – VIEWS מוטיבציה: להתייחס לפלט של שאילתה כאל טבלה נפרדת (בלי ליצור אותה פיזית). בפועל: השאילתה שמגדירה את המבט נשמרת במסד הנתונים ומופעלת כל פעם מחדש. אינטואיציה: המבט מהווה מעין "חלון" דרכו אפשר להסתכל על חלק ממסד הנתונים. מטרה: הסתרת מידע, פישוט שאילתות...

אביב תשס"גDBMS , שפות שאילתה: SQL133 (VIEWS) מבטים - המשך יצירת מבט: 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.

אביב תשס"גDBMS , שפות שאילתה: SQL134 דוגמא – המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books: 7 Database Systems Database Systems Database Systems Database And Knowledge2222 Max_TimeBook_NameBook_Id CSBooks

אביב תשס"גDBMS , שפות שאילתה: SQL135 (VIEWS) מבטים – המשך (שאילתות) על מבט ניתן לבצע שאילתות ממש כאילו היה טבלה. דוגמה: שליפת כל הספרים של מדעי מחשב שמשך ההשאלה שלהם הוא 7 ימים. SELECT Book_Name FROM CSBooks WHERE Max_Time = 7;

אביב תשס"גDBMS , שפות שאילתה: SQL136 כל שינוי בטבלה המקורית מייד משפיע על המבט. ניתן לבצע עדכונים (UPDATE) למסד הנתונים דרך המבט, פרט למקרים בהם המבט הוא read-only. מבט הוא read-only אם השאילתה של CREATE VIEW מכילה: JOIN GROUP BY ביטויים ברשימת העמודות דוגמה לעדכון: UPDATE CSBooks SET Max_Time = Max_Time + 1; ((VIEWS מבטים – המשך (עדכון)

אביב תשס"גDBMS , שפות שאילתה: SQL137 ((VIEWS דוגמא – המשך FacultyPagesMax_TimeYearBook_NameBook_Id CS Database Systems 1111 CS Database Systems 1112 CS Database Systems 1113 CS Database And Knowledge2222 EE Database And Knowledge2223 EE Electronic Circuits3333 MED Genes MED Anatomy5555 Books: 8 Database Systems Database Systems Database Systems Database And Knowledge2222 Max_TimeBook_NameBook_Id CSBooks אחרי עדכון Max_Time:

אביב תשס"גDBMS , שפות שאילתה: SQL138 ((VIEWS מבטים – המשך (מחיקה) מחיקת מבט: DROP VIEW דוגמה: DROP VIEW CSBooks; לטבלה שעליה מבוסס המבט לא קורה כלום.