1 SQL/ DML Structured Query Language Data Manipulation Language (DML) is used to query and update data מהדורה 02.

Slides:



Advertisements
Similar presentations
SQL-week5-1 In-Class Exercise Answer IST 210 Organization of Data IST2101.
Advertisements

4c. Structured Query Language - Built-in Functions Lingma Acheson Department of Computer and Information Science IUPUI CSCI N207 Data Analysis with Spreadsheets.
Structured Query Language Chapter Three Part 3 – Inserts, Updates, Deletes.
Fundamentals, Design, and Implementation, 9/e COS 346 Day 11.
Introduction to Structured Query Language (SQL)
© 2002 by Prentice Hall 1 David M. Kroenke Database Processing Eighth Edition Chapter 9 Structured Query Language.
Fundamentals, Design, and Implementation, 9/e Chapter 6 Introduction to Structured Query Language (SQL)
Structured Query Language Part I Chapter Three CIS 218.
Structured Query Language Chapter Three (Excerpts) DAVID M. KROENKE’S DATABASE CONCEPTS, 2 nd Edition.
Structured Query Language Chapter Three DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 6 th Edition.
Structured Query Language Chapter Three DAVID M. KROENKE’S DATABASE CONCEPTS, 2 nd Edition.
SQL Views Chapter 3A DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 5 th Edition.
Concepts of Database Management Sixth Edition
A Guide to SQL, Seventh Edition. Objectives Retrieve data from a database using SQL commands Use compound conditions Use computed columns Use the SQL.
Structured Query Language
DATABASES AND SQL. Introduction Relation: Relation means table(data is arranged in rows and columns) Domain : A domain is a pool of values appearing in.
SQL for Data Retrieval. Running Example IST2102 Data Preparation Login to SQL server using your account Download three SQL script files from wiki page.
Structured Query Language Chapter Three DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 5 th Edition.
1 IT420: Database Management and Organization SQL - Data Manipulation Language 27 January 2006 Adina Crăiniceanu
Chapter 3 Single-Table Queries
Structured Query Language Chapter Three DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
Database Technical Session By: Prof. Adarsh Patel.
SQL – Structured Query Language CIS 324 – Chapter 5.
SQL Views Appendix E DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 6 th Edition.
Oracle Database Administration Lecture 2 SQL language.
Fundamentals, Design, and Implementation, 9/e CPE 481 Database Processing Chapter 6 Structured Query Language (SQL) Instructor:Suthep Madarasmi, Ph.D.
Fundamentals, Design, and Implementation, 9/e COS 346 Day 11.
1 Single Table Queries. 2 Objectives  SELECT, WHERE  AND / OR / NOT conditions  Computed columns  LIKE, IN, BETWEEN operators  ORDER BY, GROUP BY,
Structured Query Language Chris Nelson CS 157B Spring 2008.
Using Special Operators (LIKE and IN)
Concepts of Database Management Seventh Edition
SQL Views Chapter 3A DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
Structured Query Language (SQL) IST2101. Structured Query Language – Acronym: SQL – Pronounced as “S-Q-L” [“Ess-Que-El”] – Originally developed by IBM.
Nitin Singh/AAO RTI ALLAHABAD 1 SQL Nitin Singh/AAO RTI ALLAHABAD 2 OBJECTIVES §What is SQL? §Types of SQL commands and their function §Query §Index.
Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. KroenkeChapter 6/1 Copyright © 2004 Please……. No Food Or Drink in the class.
SQL for Data Retrieval. Review Questions of Previous Class Q1. Show the sum of hours worked for project with ID 1200 (use ASSIGNMENT table) – Use “SUM”
Recap of SQL Lab no 8 Advance Database Management System.
SQL for Data Retrieval. Running Example IST2102 Data Preparation Login to SQL server using your account Select your database – Your database name is.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
STRUCTURED QUERY LANGUAGE SQL-II IST 210 Organization of Data IST210 1.
5. Simple SQL using Oracle1 Simple SQL using Oracle 5. Working with Tables: Data management and Retrieval 6. Working with Tables: Functions and Grouping.
Database Management COP4540, SCS, FIU Structured Query Language (Chapter 8)
SQL “Structured Query Language; standard language for relational data manipulation” DB2, SQL/DS, Oracle, INGRES, SYBASE, SQL Server, dBase/Win, Paradox,
STRUCTURED QUERY LANGUAGE SQL-III IST 210 Organization of Data IST210 1.
CREATE TABLE CREATE TABLE statement is used for creating relations Each column is described with three parts: column name, data type, and optional constraints.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
SQL for Data Retrieval. Save your SQL Scripts When working with SQL Management Studio, you should keep saving your scripts as a.sql file to somewhere.
5. Simple SQL using Oracle1 Simple SQL using Oracle 5. Working with Tables: Data management and Retrieval 6. Working with Tables: Functions and Grouping.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
SQL Views Chapter 3A. Appendix Objectives Learn basic SQL statements for creating views Learn basic SQL statements for using views Understand the reasons.
Concepts of Database Management Seventh Edition Chapter 3 The Relational Model 2: SQL.
SQL-5 In-Class Exercise Answer IST 210 Organization of Data IST2101.
Structured Query Language
© 2002 by Prentice Hall 1 Structured Query Language David M. Kroenke Database Concepts 1e Chapter 3 3.
A Guide to SQL, Eighth Edition Chapter Four Single-Table Queries.
Database: SQL, MySQL, LINQ and Java DB © by Pearson Education, Inc. All Rights Reserved.
1 Chapter 3 Single Table Queries. 2 Simple Queries Query - a question represented in a way that the DBMS can understand Basic format SELECT-FROM Optional.
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
SQL: Structured Query Language It enables to create and operate on relational databases, which are sets of related information stored in tables. It is.
Structured Query Language SQL-II IST 210 Organization of Data IST2101.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
Structured Query Language
3d. Structured Query Language – JOIN Operations
PL/SQL LANGUAGE MULITPLE CHOICE QUESTION SET-1
CS580 Advanced Database Topics
Access: SQL Participation Project
Structured Query Language
CS4222 Principles of Database System
SQL Views Appendix C DATABASE CONCEPTS, 3rd Edition
Contents Preface I Introduction Lesson Objectives I-2
Presentation transcript:

1 SQL/ DML Structured Query Language Data Manipulation Language (DML) is used to query and update data מהדורה 02

2 מערכת מבוססת DB קטלוג הנתונים ( סכמת בסיס הנתונים ) בסיס הנתונים תוכנה לעיבוד שאילתות ותוכניות יישום תוכנת גישה לבסיס הנתונים שאילתות ותוכניות יישום משתמשים ותוכניתנים מערכת המידע DBMS APP. Server יצירה ועיבוד טפסים יצירת שאילתות יצירת דוחות ניהול הלוגיקה האפליקטיבית בקרה באפליקציה יצירת בסיס הנתונים יצירת טבלאות קריאת הנתונים מהטבלאות עדכון הנתונים אכיפת החוקיות של מבנה הנתונים עבודה בו - זמנית אבטחת מידע בקרה וגיבוי Metadata אינדקסים ומבני נתונים פרוצדורות טריגרים מהדורה 02

3 Sample Database

4 Sample Data

5

6 CREATE TABLE  CREATE TABLE PROJECT ( ProjectID Integer Primary Key, Name Char(50) Not Null, Department VarChar(50) Not Null, MaxHours Numeric(6,1) Not Null Default 100);

7 SELECT Statement  SELECT can be used to obtain values of specific columns, specific rows, or both  Basic format: SELECT (column names or *) FROM (table name(s)) [WHERE (conditions)];

8 WHERE Clause Conditions

9  Require quotes around values for Char and VarChar columns, but no quotes for Integer and Numeric columns  AND may be used for compound conditions  IN and NOT IN indicate ‘match any’ and ‘match all’ sets of values, respectively  Wildcards _ and % can be used with LIKE to specify a single or multiple unknown characters, respectively  IS NULL can be used to test for null values

10 Example: SELECT Statement SELECT * FROM PROJECT; SELECT Name, Department, MaxHours FROM PROJECT; SELECT Name, Department, MaxHours*1.2 FROM PROJECT;

11 Example: SELECT DISTINCT SELECT DISTINCT Department FROM PROJECT;

12 Example: SELECT Statement SELECT * FROM PROJECT WHERE Department =’Finance’ AND MaxHours > 100;

13 אריתמטיקה של תאריכים  SELECT StudentName,StudentID FROM Students WHERE (CURRENT-DATE - ExaminationDate)>30

14 יצירת עמודות באופן דינמי  SELECT StudentName,StudentID, (CURRENT-DATE - ExaminationDate) AS Delay FROM Students WHERE (CURRENT-DATE - ExaminationDate)>30

15 Example: IN/NOT IN SELECT Name, Phone, Department FROM EMPLOYEE WHERE Department IN (‘Accounting’, ‘Finance’, ‘Marketing’); SELECT Name, Phone, Department FROM EMPLOYEE WHERE Department NOT IN (‘Accounting’, ‘Finance’, ‘Marketing’);

16 Example: BETWEEN SELECT Name, Department FROM EMPLOYEE WHERE EmployeeNumber BETWEEN 200 AND 500;  Or WHERE EmployeeNumber >= 200 AND EmployeeNumber <= 500;

17 Example: BETWEEN SELECT Name, Department FROM EMPLOYEE WHERE EmployeeNumber NOT BETWEEN 200 AND 500;

18 Example: LIKE SELECT * FROM EMPLOYEE WHERE Phone LIKE ‘285-___3’; SELECT * FROM EMPLOYEE WHERE Phone LIKE ‘285%’; SELECT * FROM EMPLOYEE WHERE Name LIKE ‘%J%’;

19 Example: IS NULL/NOT NULL SELECT Name, Department FROM EMPLOYEE WHERE Phone IS NULL; (WHERE Phone IS NOT NULL)

20 Sorting the Results  SELECT Name, Department FROM EMPLOYEE ORDER BY Department;  Two or more columns may be used for sorting purposes SELECT Name, Department FROM EMPLOYEE ORDER BY Department DESC, Name ASC;

21 Built-in Functions  Five built-in functions for SELECT statement:  COUNT counts the number of rows in the result  SUM totals the values in a numeric column  AVG calculates an average value  MAX retrieves a maximum value  MIN retrieves a minimum value  Result is a single number (relation with a single row and a single column)  Column names cannot be mixed with built-in functions  Built-in functions cannot be used in WHERE clauses

22 Example: Built-in Functions SELECT COUNT (DISTINCT Department) FROM PROJECT; SELECT MIN(MaxHours), MAX(MaxHours), SUM(MaxHours) FROM PROJECT WHERE ProjectID < 1500;

23 שאילתות מקובצות-Grouped Queries  GROUP BY allows a column and a built-in function to be used together  GROUP BY sorts the table by the named column and applies the built- in function to groups of rows having the same value of the named column  WHERE condition must be applied before GROUP BY phrase  Example SELECT Department, Count(*) FROM EMPLOYEE WHERE EmployeeNumber < 600 GROUP BY Department

24 שאילתות מקובצות-הוספת תנאי  SELECT COURSE_ID COUNT(STUDENT_ID) AS STUDENT_COUNT FROM GRADES GROUP BY COURSE_ID HAVING COUNT(STUDENT_ID)>=4 ORDER BY STUDENT_COUNT

25 תת-שאילתות-Sub Queries  SQL מאפשר פקודות Select מקוננות  סדר ביצוע השאילתות הוא מתת השאילתא הפנימית ביותר,עד השאילתא הראשית  תת השאילתא מופיעה מופיעה בתוך משפט ה Where בתוך סוגריים  תת שאילתא חייבת לייצר טבלה תוצאתית המכילה עמודה אחת בלבד

26 טבלת ציונים

27 תת שאילתא-דוגמא SELECT STUDENT_ID FROM GRADES WHERE COURSE_ID=‘DB’ AND FINAL_GRADE> (SELECT AVG(FINAL_GRADE) FROM GRADES WHERE COURSE_ID=‘DB’)

28 תת שאילתא-דוגמא SELECT STUDENT_ID,FINAL_GRADE FROM GRADES WHERE COURSE_ID=‘DB’ AND MID_TERM_GRADE> (SELECT MAX(FINAL_GRADE) FROM GRADES WHERE COURSE_ID=‘DB’) ;

29 תת שאילתא-דוגמא SELECT DISTINCT Name FROM EMPLOYEE WHERE EmployeeNumber IN (SELECT EmployeeNum FROM ASSIGNMENT WHERE HoursWorked > 40(

30 תת שאילתא-דוגמא SELECT DISTINCT Name FROM EMPLOYEE WHERE EmployeeNumber IN (SELECT EmployeeNum FROM ASSIGNMENT WHERE HoursWorked > 40 AND ProjectID IN (SELECT ProjectID FROM PROJECT WHERE Department = ‘Accounting’));

31 בדיקת קיום: Existence Test  SELECT NAME, HEAD FROM DEPARTMENTS D WHERE NOT EXISTS (SELECT * FROM COURSES C WHERE D.DEPART = C.DEPART)

32 בדיקת קיום: Existence Test

33 תת שאילתות מתואמות  Correlated Sub Queries  העברת הנתונים מתבצעת בכיוון הפוך: מהשאילתא הראשית אל תת השאילתה  נעשה שימוש בשמות של עמודות השייכות לשאילתא הראשית בתוך משפט ה Where של תת השאילתא

34 תת שאילתא מתואמת: דוגמא  הצג את כל פרטי טבלת הציונים עבור סטודנט שקיבל את הציון הגבוה ביותר בכל מקצוע  SELECT * FROM GRADES G WHERE FINAL_GRADE= (SELECT MAX(FINAL_GRADE) FROM GRADES GC WHERE G.COURSE_ID=GC.COURSE_ID)

35 שאילתות עם מספר טבלאות  שאילתות עם מספר טבלאות ניתנות לביצוע על ידי שימוש בפקודת צירוף: JOIN  הצירוף מתבצע על סמך שיויון או יחס כלשהו בין הערכים של עמודות השייכות לטבלאות שונות (בדרך כלל עמודות המפתח)  מספר הטבלאות המשתתפות בפקודת ה JOIN אינו מוגבל תיאורטית  ככל שמספר הטבלאות גדל זמן הביצוע גדל  תהליך הצירוף מבוצע כמכפלה קרטזית על המפתחות הראשיים  מתוך הטבלה הוירטואלית שנוצרה נגזרת על פי התנאים הטבלה החדשה  ניתן גם לבצע קינון של פעולות JOIN

36 כיצד עובד הצירוף ABC DEF ABCF בחירת שורות בחירת שורות צירוף טבלאותצמצום וחישוב עמודות תנאי ה Where תנאי ה JOIN רשימת העמודות המבוקשת

37 דוגמא לטבלת ה ASSIGNMENT הוסף עמודה עם שם הפרוייקט רק למשימות בהן מספר שעות העבודה >40 SELECT A.ProjectID, A.EmployeeNum, A.HoursWorked, P.Name FROM Assignments A, PROJECTS P WHERE A.HoursWorked>40 AND A.ProjectID=P.ProjectID מה קורה למשימה שמתייחסת לפרויקט 1600?

38 מה מבצעת פקודה זו SELECT P.Name, A.HoursWorked, E.Name FROM PROJECT P, ASSIGNMENT A, EMPLOYEE E WHERE P.ProjectID = A.ProjectID AND E.EmployeeNumber = A.EmployeeNum;

39 תחביר אלטרנטיבי  SQL-92’s alternative join syntax substitutes the words JOIN and ON for WHERE SELECT P.Name, HoursWorked, E.Name FROM PROJECT P JOIN ASSIGNMENT A ON P.ProjectID = A.ProjectID JOIN EMPLOYEE E ON A.EmployeeNum = E.EmployeeNumber;

40 Outer Joins  הצירוף הרגיל נקרא גם Inner JOIN  ב JOIN רגיל מועברים לטבלה החדשה רק זוגות עבורם מתקיים תנאי הצירוף  LEFT/RIGHT JOIN: מאפשר העברה גם של שורות מהטבלה ה שמאלית/ימנית שלא ענו על תנאי המצרף  FULL JOIN מאפשר העברת שורות שלא ענו על תנאי המצרף, גם מהטבלאות המקוריות מימין ומשמאל כאחד

41 דוגמא לטבלת ה ASSIGNMENT הוסף עמודה עם שם הפרוייקט רק למשימות בהן מספר שעות העבודה >40 SELECT A.ProjectID, A.EmployeeNum, A.HoursWorked, P.Name FROM Assignments A LEFT JOIN PROJECTS P WHERE A.HoursWorked>40 AND A.ProjectID=P.ProjectID מה קורה למשימה שמתייחסת לפרויקט 1500?

42 דוגמא לקינון  Nested outer join SELECT PROJECT.Name, HoursWorked, EMPLOYEE.Name FROM ((PROJECT LEFT JOIN ASSIGNMENT ON PROJECT.ProjectID = ASSIGNMENT.ProjectID) LEFT JOIN EMPLOYEE ON EMPLOYEE.EmployeeNumber = Assignment.EmployeeNum);

43 INSERT INTO Statement  The order of the column names must match the order of the values  Values for all NOT NULL columns must be provided  No value needs to be provided for a surrogate primary key  It is possible to use a select statement to provide the values for bulk inserts from a second table  Examples:  INSERT INTO PROJECT VALUES (1600, ‘Q4 Tax Prep’, ‘Accounting’, 100);  INSERT INTO PROJECT (Name, ProjectID) VALUES (‘Q1+ Tax Prep’, 1700);

44 UPDATE Statement  UPDATE statement is used to modify values of existing data  Example: UPDATE EMPLOYEE SET Phone = ‘ ’ WHERE Name = ‘James Nestor’;  UPDATE can also be used to modify more than one column value at a time UPDATE EMPLOYEE SET Phone = ‘ ’, Department = ‘Production’ WHERE EmployeeNumber = 200;

45 UPDATE Statement

46 DELETE FROM Statement  Delete statement eliminates rows from a table  Example DELETE FROM PROJECT WHERE Department = ‘Accounting’;  ON DELETE CASCADE removes any related referential integrity constraint of a deleted row

47 Questions ? P2080