Structured Query Language

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

ממיבחניםC שאלות ++.
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 סכימה לדוגמא.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
אקסס מבוא למערכות מידע.
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
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.
מנפה שגיאות - DEBUGGER מבוא למדעי המחשב (234114) רועי מלמד
חורף תשס " ג 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, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי תוכן מסד נתונים ( עדכון, הוספה.
Murali Mani SQL DDL and Oracle utilities. Murali Mani Datatypes in SQL INT (or) INTEGER FLOAT (or) REAL DECIMAL (n, m) CHAR (n) VARCHAR (n) DATE, TIME.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts SQL n מבנה שאילתה n פונקציות צבירה.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
Virtual Collection מבצעים: ראמי ג'אבר ואסים דעאס מנחה: מר.וקטור קוליקוב פרויקט באשכול הנדסת תוכנה סמסטר חורף תשס " ט.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
אביב תשס"הDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
ASP Partners © 2000 – 2014 ASP Partners c/o Dr. Abraham “Abe” Gill (( נ. ה. ל התיחסות ללקוחות ניהול CRM – Customer Relationship Management הרצאה מס ' 2.
 SQL stands for Structured Query Language.  SQL lets you access and manipulate databases.  SQL is an ANSI (American National Standards Institute) standard.
SQL SQL Server : Overview SQL : Overview Types of SQL Database : Creation Tables : Creation & Manipulation Data : Creation & Manipulation Data : Retrieving.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
SQL Basics. 5/27/2016Chapter 32 of 19 Naming SQL commands are NOT case sensitive SQL commands are NOT case sensitive But user identifier names ARE case.
SQL: DDL. SQL Statements DDL - data definition language –Defining and modifying data structures (metadata): database, tables, views, etc. DML - data manipulation.
1 SQL/ DML Structured Query Language Data Manipulation Language (DML) is used to query and update data מהדורה 02.
5. Simple SQL using Oracle1 Simple SQL using Oracle 5. Working with Tables: Data management and Retrieval 6. Working with Tables: Functions and Grouping.
DBSQL 5-1 Copyright © Genetic Computer School 2009 Chapter 5 Structured Query Language.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות  שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות, וכו'), DML – Data Manipulation Language.
Costs and Filters Dr. Avi Rosenfeld Department of Industrial Engineering Jerusalem College of Technology
File Systems Motivation SQL (Structured Query Language) MapReduce 1 תרגול 1.
אביב תשס"גDBMS , שפות שאילתה: SQL1 סכמה SQL (Structured Query Language) : מושגים טבלה, רלציה שורה, רשומה, n- יה עמודה, תכונה, שדה, אטריביוט.
2003B Q5 Suppliers(sid, sname, city) Select sid from suppliers where city=‘jerusalem’ or sname like ‘%Smith’ Select sid from suppliers where city=‘jerusalem’
מחרוזות – הטיפוס String
Database Management Systems
Database Management Systems
XML מבוא כללי MCSD Doron Amir
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
Structured Query Language
עבודה עם נתונים באמצעות ADO.NET
מבוא ל - SQL מטרות הקורס: להבין מהו בסיס נתונים (או מסד נתונים)?
لغة قواعد البيانات STRUCTURED QUERY LANGUAGE SQL))
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Based on the lecture notes of Prof. Sagiv
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
Shell Scripts בסביבת UNIX
מחסנית ותור Stacks and Queues.
DATABASE SQL= Structure Query Language مبادئ قواعد بيانات
בסיסי נתונים ושפת SQL הרצאה #6
טבלאות מדומות (Views).
איתור נתונים מתקדם, בעזרת vlookup וחברים
מבוא למערכות מידע בשילוב ACCESS
مقدمة في قواعد البيانات
Database systems Lecture 3 – SQL + CRUD
DATABASE Purpose of database
Presentation transcript:

Structured Query Language SQL Structured Query Language שפת תכנות מיוחדת למסדי נתונים. שפה הצהרתית ולא כמו C (פרוצדורלי – אימפרטיבי). יש מסדי נתונים MySQL, PostgreSQL, MSSQL, Oracle, SQL Lite מודל השרת לקוח. Structured English Query Language SQL היא שפת מחשב הצהרתית, כלומר, היא מתארת רק מה לבצע ולא כיצד לבצע. מכיוון שכך, ניתן להשתמש באותו משפט SQL בבסיסי נתונים שונים, הפועלים בדרכים שונות לחלוטין. אי תלותה של SQL במבנה הנתונים, בנוסף על עוצמתה של השפה, המאפשרת לאחזר חתכים מורכבים בפשטות רבה, הפכו אותה לשפה המקובלת ביותר כיום בניהול בסיסי נתונים. שפת SQL פותחה במקורה על ידי IBM, אך מאז הועתקה על ידי חברות רבות, ואף אומצה על ידי מכון התקנים האמריקאי (ANSI) ב-1986 ועל ידי ארגון התקינה הבינלאומי (ISO) ב-1987. חברות שפיתחו בסיסי נתונים וכלי תוכנה אחרים המשתמשים בשפת SQL הרשו לעצמן לעתים לשנות את תחביר השפה, כך שהסבת משפטי SQL מבסיס נתונים אחד לאחר מצריכה בדרך כלל עריכת שינויים משמעותיים. עם זאת, כללי היסוד של שפת SQL דומים מאוד בכל הגרסאות. - איזה מסדי נתונים אתם מכירים? חורף 2017 DBMS - 236363, DDL +DML: SQL

SQL: מושגים שחור סגלגל ורוד חיה גיל צבע חתול 23 ורוד אביב תשס"ג SQL: מושגים עמודה, תכונה, שדה, אטריביוט שחור סגלגל ורוד טבלה, רלציה סכמה חיה גיל צבע שורה, רשומה, n-יה חתול 23 ורוד חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

דוגמא של מסד נתונים מסד נתונים של ספרייה Ordered Cust_Id Book_Id אביב תשס"ג דוגמא של מסד נתונים מסד נתונים של ספרייה Ordered Cust_Id Book_Id Order_Date Books Book_Id Book_Name Year Max_Time Faculty Pages Customers Cust_Id Cust_Name Faculty Borrowed Cust_Id Book_Id From_Date To_Date חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

פירוט הטבלאות Customers(Cust_Id, Cust_Name, Faculty) אביב תשס"ג פירוט הטבלאות Customers(Cust_Id, Cust_Name, Faculty) Cust_Id: (ייחודי לכל לקוח) מס' זהות של לקוח Cust_Name:שם לקוח Faculty: שם פקולטה זו דרך נוספת להצגת סכמה של טבלה. המפתח מסומן בקו תחתון. מה ההגדרה של מפתח?קבוצה של תכונות, כך שאין 2 רשומות ברלציה שיש להן את אותם הערכים בקבוצת התכונות. חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

הטבלה Customers Faculty Cust_Name Cust_Id CS Moshe Cohen 12345 EE אביב תשס"ג הטבלה Customers Faculty Cust_Name Cust_Id CS Moshe Cohen 12345 EE Avi Barak 23456 MED 34567 Lior Edri 45678 56789 67890 ניתן לראות שיש 2 לקוחות עם אותו השם – אבי ברק יש 2 לקוחות עם אותו השם ומאותה הפקולטה – משה כהן חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

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

Database And Knowledge אביב תשס"ג הטבלה Books Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 - אותו הספר (database and knowledge) נמצא ב-2 פקולטות עם זמני השאלה שונים חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

פירוט הטבלאות (המשך...) Ordered(Cust_Id, Book_Id, Order_Date) אביב תשס"ג פירוט הטבלאות (המשך...) Ordered(Cust_Id, Book_Id, Order_Date) Cust_Id: מס' זהות של לקוח Book_Id : מס' מזהה (ייחודי לכל עותק) Order_Date: תאריך הזמנת הכותר - זוהי טבלה מקשרת חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

טבלת Ordered Order_Date Cust_Id Book_Id 14-Oct-2002 1111 12345 אביב תשס"ג טבלת Ordered Order_Date Book_Id Cust_Id 14-Oct-2002 1111 12345 24-Oct-2002 1112 45678 30-Oct-2002 1113 12-Oct-2002 2222 חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

פירוט הטבלאות (המשך...) Borrowed(Book_Id, Cust_Id, From_Date, To_Date) אביב תשס"ג פירוט הטבלאות (המשך...) Borrowed(Book_Id, Cust_Id, From_Date, To_Date) Book_Id: מס' מזהה של ספר Cust_Id: מס' זהות של לקוח From_Date: תאריך השאלת הספר To_Date: תאריך החזרת הספר חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

טבלת Borrowed To_Date From_Date Cust_Id Book_Id 13-Oct-2002 56789 5555 אביב תשס"ג טבלת Borrowed To_Date From_Date Cust_Id Book_Id 13-Oct-2002 56789 5555 - To_Date הוא NULL מכיוון וטרם החזירו את הספר חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

שאילתות ב-SQL מבנה כללי של שאילתא אביב תשס"ג שאילתות ב-SQL מבנה כללי של שאילתא SELECT [ALL | DISTINCT] {[table.]* | expr [alias], exp [alias], …} FROM table [alias], table [alias], … [WHERE condition] [GROUP BY expr, expr, … [HAVING condition]] [{INTERSECT | EXCEPT | UNION | UNION ALL } SELECT …] [ORDER BY expr [ASC | DESC ], expr [ASC | DESC],…]; חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

שאילתות ב-SQL: SELECT בחירת עמודות מטבלה: אביב תשס"ג שאילתות ב-SQL: SELECT בחירת עמודות מטבלה: SELECT column1, column2, column3,… FROM table; בחירת כל העמודות של טבלה: SELECT * חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

דוגמא דוגמא: שליפת כל שמות הספרים ומספר העמודים בכל ספר: אביב תשס"ג דוגמא דוגמא: שליפת כל שמות הספרים ומספר העמודים בכל ספר: SELECT Book_Name, Pages FROM Books; Books: Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

SELECT Book_Name, Pages FROM Books: אביב תשס"ג דוגמא - תוצאה SELECT Book_Name, Pages FROM Books: Pages Book_Name 348 Database Systems 424 390 Database And Knowledge 180 Electronic Circuits 580 Genes 7 450 Anatomy - ניתן לראות כי יש כפילויות בתשובה חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

בחירת חלק מהרשומות Where - אביב תשס"ג בחירת חלק מהרשומות Where - סינון רשומות בשאילתה: SELECT column1, column2, column3,… FROM table WHERE Boolean_Condition; דוגמא: שליפת שמות כל הספרים שהוצאו אחרי השנה 1990: SELECT Book_Name FROM Books WHERE Year > 1990; חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

דוגמא - המשך SELECT Book_Name FROM Books WHERE Year > 1990 Books: אביב תשס"ג דוגמא - המשך SELECT Book_Name FROM Books WHERE Year > 1990 Books: Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 ניתן לראות כי SELECT פועל על עמודות ו-WHERE פועל על שורות חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

Database And Knowledge אביב תשס"ג דוגמא - תוצאה SELECT Book_Name FROM Books WHERE Year > 1990 : Book_Name Database Systems Database And Knowledge Electronic Circuits חורף 2017 DBMS - 236363, DDL +DML: SQL DBMS - 236363

SQL: שינוי מסד הנתונים- פעולותDDL , DML שאילתה בסיסית. שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות, וכו'), DML – Data Manipulation Language שינוי מבנה מסד נתונים (יצירה, מחיקה של טבלאות, וכו'), DDL – Data Definition Language שאילתות מורכבות (בהמשך הקורס). חורף 2017 DBMS - 236363, DDL +DML: SQL

עדכון – UPDATE UPDATE tablename SET column-assignment-list WHERE conditional-expression ; חורף 2017 DBMS - 236363, DDL +DML: SQL

עדכון – UPDATE מטרה: עדכון ערכים ברשומות קיימות במסד הנתונים. אפשרות ראשונה: השמה של ערכים קבועים בעמודות מסוימות בכל הרשומות. דוגמא: העברת כל הספרים לספרייה מרכזית, והגבלת משך ההשאלה לשבוע ימים. UPDATE Books SET Max_Time = 7, Faculty = 'GEN'; חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמא - המשך Books: Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמא - תוצאה UPDATE Books SET Max_Time = 7, Faculty = 'GEN': Faculty Pages Max_Time Year Book_Name Book_Id GEN 348 7 1998 Database Systems 1111 1112 424 2001 1113 390 Database And Knowledge 2222 2223 180 Electronic Circuits 3333 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL

UPDATE (המשך...) עדכון חלק מהרשומות: הוספת תנאי WHERE condition דוגמא: הגבלת משך ההשאלה לשבוע ימים לספרים השייכים לספריית מדעי המחשב. UPDATE Books SET Max_Time = 7 WHERE Faculty = 'CS'; חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמא - המשך Books: Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמא - תוצאה UPDATE Books SET Max_Time = 7 WHERE Faculty = 'CS': Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 1112 424 2001 1113 390 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL

UPDATE (המשך...) אפשרות נוספת: השמה של ביטויים. דוגמה: הארכת משך ההשאלה לכל הספרים ביום אחד. UPDATE Books SET Max_Time = Max_Time + 1; חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמא - המשך Books: Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמא - תוצאה UPDATE Books SET Max_Time = Max_Time + 1: Faculty Pages Max_Time Year Book_Name Book_Id CS 348 8 1998 Database Systems 1111 15 1112 424 2001 1113 390 2 Database And Knowledge 2222 EE 2223 180 22 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL

הוספה - INSERT INSERT INTO tablename [( column-list )] VALUES ( constant-list ) ; חורף 2017 DBMS - 236363, DDL +DML: SQL

הוספה - INSERT מטרה: הוספת רשומות חדשות אפשרות ראשונה: הוספת רשומה אחת נתונה דוגמא: הוספת לקוח לטבלת Customers. INSERT INTO Customers VALUES (78901, 'Roy Peled', 'EE'); חורף 2017 DBMS - 236363, DDL +DML: SQL

דוגמה - המשך Customers: Faculty Cust_Name Cust_Id CS Moshe Cohen 12345 EE Avi Barak 23456 MED 34567 Lior Edri 45678 56789 67890 חורף 2017 DBMS - 236363, DDL +DML: SQL

דוגמא - תוצאה INSERT INTO Customers VALUES (78901, 'Roy Peled', 'EE'): Faculty Cust_Name Cust_Id CS Moshe Cohen 12345 EE Avi Barak 23456 MED 34567 Lior Edri 45678 56789 67890 Roy Peled 78901 חורף 2017 DBMS - 236363, DDL +DML: SQL

INSERT – המשך ניתן לאתחל רק חלק מהשדות. דוגמא: INSERT INTO Customers(Cust_Id,Cust_Name) VALUES (78901, 'Roy Peled'); הערות: שדות לא מאותחלים (Faculty) יקבלו ערך NULL. אם בעמודה Faculty אסור שיופיע NULL, ההוראה INSERT אינה חוקית, ולכן היא לא תתבצע. חורף 2017 DBMS - 236363, DDL +DML: SQL

דוגמה - המשך Customers: Faculty Cust_Name Cust_Id CS Moshe Cohen 12345 EE Avi Barak 23456 MED 34567 Lior Edri 45678 56789 67890 חורף 2017 DBMS - 236363, DDL +DML: SQL

דוגמא - תוצאה INSERT INTO Customers(Cust_Id, Cust_Name) VALUES (78901, 'Roy Peled'): Faculty Cust_Name Cust_Id CS Moshe Cohen 12345 EE Avi Barak 23456 MED 34567 Lior Edri 45678 56789 67890 Roy Peled 78901 חורף 2017 DBMS - 236363, DDL +DML: SQL

INSERT – שימוש בשאילתות הוספת רשומות המתקבלות כתוצאה של שאילתה. דוגמא: הכנסת כל הלקוחות שהזמינו ספרים לטבלהReaders . INSERT INTO Readers( Id) (SELECT Cust_Id FROM Ordered); הוראה זו חוקית רק אם טבלה Readers קיימת. חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמה - המשך Readers: Ordered: Cust_Id Cust_Id Book_Name Order_Date 12345 12345 Database Systems 14-Oct-2002 45678 45678 Anatomy 24-Oct-2002 12345 12345 Database And Knowledge 30-Oct-2002 45678 45678 Electronic Circuits 12-Oct-2002 חורף 2017 DBMS - 236363, DDL +DML: SQL

INSERT – המשך מה יקרה אם נבצע INSERT לטבלה כלשהי עם מידע מתוך אותה הטבלה? INSERT מתבצעת על "העתק" זמני של הטבלה. דוגמא: INSERT INTO Readers (SELECT * FROM Readers); הוראה זו לא תיכנס ללולאה אינסופית אלא רק תכפיל את הטבלה. חורף 2017 DBMS - 236363, DDL +DML: SQL

תוצאה Readers: Readers: INSERT INTO Readers (SELECT * FROM Readers); CS Moshe Cohen 12345 EE Lior Edri 45678 Faculty Cust_Name Cust_Id Readers: INSERT INTO Readers (SELECT * FROM Readers); Readers: CS Moshe Cohen 12345 EE Lior Edri 45678 Faculty Cust_Name Cust_Id 12345 Moshe Cohen CS 45678 Lior Edri EE חורף 2017 DBMS - 236363, DDL +DML: SQL

מחיקה – DELETE DELETE FROM tablename WHERE conditional-expression חורף 2017 DBMS - 236363, DDL +DML: SQL

מחיקה – DELETE ההוראה DELETE מוחקת רשומות מתוך הטבלה. בהוראה זו צריך רק להגדיר אלו רשומות רוצים למחוק. דוגמה: מחיקת כל ההזמנות. DELETE FROM Ordered; הטבלה עצמה אינה נמחקת, אך היא נותרת ריקה. מחיקה עם WHERE: DELETE FROM Ordered WHERE Cust_Id = 12345; חורף 2017 DBMS - 236363, DDL +DML: SQL

יצירת טבלה – CREATE TABLE יצירת טבלה ריקה: CREATE TABLE table (column_name column_type [(length)] [NOT NULL],…); יצירת טבלה המכילה תוצאה של שאילתה: CREATE TABLE table AS SELECT …; חורף 2017 DBMS - 236363, DDL +DML: SQL

דוגמא CREATE TABLE EXAMPLE (AB VARCHAR(15), CD INTEGER, EF INTEGER NOT NULL, GH DECIMAL(5), IJ DECIMAL(7,2), KL TEXT default(‘DB’)); חורף 2017 DBMS - 236363, DDL +DML: SQL

טיפוסים ב- PostgreSQL VARCHAR (n) – מחרוזת TEXT – מחרוזת באורך לא מוגבל BOOLEAN – ערך בוליאני DATE – תאריך INTEGER – מספר שלם DECIMAL [(p,s)] – מספר עם דיוק עשרוני נתון טיפוסים נוספים ב-PostgreSQL: http://www.postgresql.org/docs/9.4/static/datatype.html#DATATYPE-TABLE חורף 2017 DBMS - 236363, DDL +DML: SQL

Primary Key CREATE TABLE EXAMPLE (AB VARCHAR(15), CD INTEGER, EF DECIMAL(5), GH DECIMAL(7,2), PRIMARY KEY (AB,CD)); * מפתח ראשי אינו יכול להיות NULL. חורף 2017 DBMS - 236363, DDL +DML: SQL

UNIQUE CREATE TABLE EXAMPLE (AB VARCHAR(15), CD INTEGER, EF DECIMAL(5), GH DECIMAL(7,2), UNIQUE (AB,CD)); UNIQUE (CD,EF)); חורף 2017 DBMS - 236363, DDL +DML: SQL

Foreign Key נזכר בטבלת ההזמנות: Ordered(Cust_Id, Book_Id, Order_Date). CREATE TABLE Ordered (Cust_Id INTEGER, Book_Id INTEGER, Order_Date TIMESTAMP, FOREIGN KEY (Cust_Id) REFERENCES Customers(Cust_Id)); חורף 2017 DBMS - 236363, DDL +DML: SQL

Foreign Key (cont) במקרה הנ"ל, ניתן לכתוב גם: CREATE TABLE Ordered (Cust_Id INTEGER, Book_Id INTEGER, Order_Date TIMESTAMP, FOREIGN KEY (Cust_Id) REFERENCES Customers); וגם: (Cust_Id INTEGER REFERENCES Customers, Order_Date TIMESTAMP); הסטודנטים צריכים להבין: * האם ניתן למחוק רשומה ש"מצביעים" אליה? חורף 2017 DBMS - 236363, DDL +DML: SQL

Foreign Key (cont) במידה וקיימת הזמנה ללקוח 1002 ואנו מוחקים אותו מטבלת הלקוחות, מה יקרה? אפשרות נוספות להגדרה: CREATE TABLE Ordered (Cust_Id INTEGER, Book_Id INTEGER, Order_Date TIMESTAMP, FOREIGN KEY (Cust_Id) REFERENCES Customers(Cust_Id) ON DELETE CASCADE); הסטודנטים צריכים להבין: * האם ניתן למחוק רשומה ש"מצביעים" אליה? חורף 2017 DBMS - 236363, DDL +DML: SQL

Check ניתן לכתוב גם כ: CREATE TABLE EXAMPLE (A TEXT, B INTEGER, C INTEGER, CHECK (B > 0), CHECK (B < C)); ניתן לכתוב גם כ: B INTEGER CHECK (B > 0), חורף 2017 DBMS - 236363, DDL +DML: SQL

CREATE TABLE – דוגמא CREATE TABLE CSBooks AS SELECT Book_Id, Book_Name דוגמא: יצירת טבלה חדשה בשם CSBooks שמכילה את כל הספרים השייכים לפקולטה ‘CS’. CREATE TABLE CSBooks AS SELECT Book_Id, Book_Name FROM Books WHERE Faculty = 'CS'; חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge דוגמה - המשך Books: Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 חורף 2017 DBMS - 236363, DDL +DML: SQL

דוגמה - תוצאה CSBooks: Book_Name Book_Id Book_Name Book_Id Database Systems 1111 1112 1113 Database And Knowledge 2222 CSBooks: Book_Name Book_Id Database Systems 1111 1112 1113 Database And Knowledge 2222 חורף 2017 DBMS - 236363, DDL +DML: SQL

Database And Knowledge CREATE TABLE – המשך הסכמה של הטבלה החדשה: סוגי העמודות נקבעים ע"י השאילתא שבהוראת ה-CREATE. את שמות העמודות בטבלה החדשה אפשר לשנות: דוגמא: CREATE TABLE CSBooks(Id, Name) AS SELECT Book_Id, Book_Name FROM Books WHERE Faculty = 'CS'; Database Systems 1111 1112 1113 Database And Knowledge 2222 Name Id CSBooks: חורף 2017 DBMS - 236363, DDL +DML: SQL

מחיקת טבלה – DROP TABLE דוגמה: מחיקת הטבלה CSBooks. חורף 2017 DBMS - 236363, DDL +DML: SQL

מבטים – VIEWS מוטיבציה: להתייחס לפלט של שאילתה כאל טבלה נפרדת (בלי ליצור אותה פיזית). בפועל: השאילתה שמגדירה את המבט נשמרת במסד הנתונים ומופעלת כל פעם מחדש. אינטואיציה: המבט מהווה מעין "חלון" דרכו אפשר להסתכל על חלק ממסד הנתונים. מטרה: הסתרת מידע, פישוט שאילתות... חורף 2017 DBMS - 236363, DDL +DML: SQL

מבטים - המשך יצירת מבט: 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. חורף 2017 DBMS - 236363, DDL +DML: SQL

דוגמא – המשך Books: CSBooks Faculty Pages Max_Time Year Book_Name Book_Id CS 348 7 1998 Database Systems 1111 14 1112 424 2001 1113 390 1 Database And Knowledge 2222 EE 2223 180 21 Electronic Circuits 3333 MED 580 1985 Genes 7 4444 450 1988 Anatomy 5555 7 Database Systems 1111 14 1112 1113 1 Database And Knowledge 2222 Max_Time Book_Name Book_Id CSBooks חורף 2017 DBMS - 236363, DDL +DML: SQL

מבטים – המשך (שאילתות) SELECT Book_Name FROM CSBooks על מבט ניתן לבצע שאילתות ממש כאילו היה טבלה. דוגמה: שליפת כל הספרים של מדעי מחשב שמשך ההשאלה שלהם הוא 7 ימים. SELECT Book_Name FROM CSBooks WHERE Max_Time = 7; חורף 2017 DBMS - 236363, DDL +DML: SQL

מבטים – המשך (מחיקה) מחיקת מבט: DROP VIEW דוגמה: DROP VIEW CSBooks; לטבלה שעליה מבוסס המבט לא קורה כלום. חורף 2017 DBMS - 236363, DDL +DML: SQL