Jerry Post Copyright © 2001 1 Database Management Systems Chapter 4 Queries.

Slides:



Advertisements
Similar presentations
Virtual training week 4 structured query language (SQL)
Advertisements

Concepts of Database Management Sixth Edition
Concepts of Database Management Seventh Edition
Database Systems: Design, Implementation, and Management Tenth Edition
1 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Advanced Queries IS240 – DBMS Lecture # 8 – M.
Introduction to Structured Query Language (SQL)
5 Chapter 5 Structured Query Language (SQL2) Revision.
Chapter Eight Managing Data Resources File Organization and Concepts.
Introduction to Structured Query Language (SQL)
DATABASE APPLICATION DEVELOPMENT SAK 3408 Query Statements.
Introduction to Structured Query Language (SQL)
Jerry Post McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved. Database Management Systems Chapter 4 Data Queries.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 7 Introduction to Structured Query Language (SQL)
1.NET Web Forms Database Queries © 2002 by Jerry Post.
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Akhila Kondai October 30, 2013.
Jerry Post Copyright © Database Management Systems Chapter 4 Queries.
Concepts of Database Management, Fifth Edition
Relational DBs and SQL Designing Your Web Database (Ch. 8) → Creating and Working with a MySQL Database (Ch. 9, 10) 1.
PHP Programming with MySQL Slide 8-1 CHAPTER 8 Working with Databases and MySQL.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor Ms. Arwa.
Chapter 4 Querying Based on G. Post, DBMS: Designing & Building Business Applications University of Manitoba Asper School of Business 3500 DBMS Bob Travica.
Chapter 5 Advanced Querying
HAP 709 – Healthcare Databases SQL Data Manipulation Language (DML) Updated Fall, 2009.
SQL 1: GETTING INFORMATION OUT OF A DATABASE MIS2502 Data Analytics.
School of Computer & Communication of LNPU 辽宁石油化工大学计算机与通信工程学院 刘旸 1 数据库管理系统 Database Management Systems Chapter4 Queries 第四章 数据查询.
1 Single Table Queries. 2 Objectives  SELECT, WHERE  AND / OR / NOT conditions  Computed columns  LIKE, IN, BETWEEN operators  ORDER BY, GROUP BY,
Concepts of Database Management Seventh Edition
SQL SQL Server : Overview SQL : Overview Types of SQL Database : Creation Tables : Creation & Manipulation Data : Creation & Manipulation Data : Retrieving.
Using Special Operators (LIKE and IN)
7 1 Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
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.
Chapter 5 MYSQL Database. Introduction to MYSQL MySQL is the world's most popular open-source database. Open source means that the source code, the programming.
Jerry Post Copyright © Database Management Systems Chapter 5 Advanced Queries.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 7 Introduction to Structured.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
1 Copyright © 2010 Jerry Post & M. E. Kabay. All rights reserved. Queries: Part 2 of 2 IS240 – DBMS Lecture # 7 – M. E. Kabay, PhD, CISSP-ISSMP.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
ITEC 3220A Using and Designing Database Systems Instructor: Prof. Z. Yang Course Website: 3220a.htm
1 All Powder Board and Ski Microsoft Access Workbook Chapter 5: Advanced Queries Jerry Post Copyright © 2003.
1 Copyright © 2010 Jerry Post & M. E. Kabay. All rights reserved. Queries: Part 1 of 2 IS240 – DBMS Lecture # 6 – M. E. Kabay, PhD, CISSP-ISSMP.
Jerry Post Copyright © Database Management Systems Chapter 4 Queries.
Jerry Post McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved. Database Management Systems Chapter 4 Data Queries.
MIS2502: Data Analytics SQL – Getting Information Out of a Database.
IMS 4212: Constraints & Triggers 1 Dr. Lawrence West, Management Dept., University of Central Florida Stored Procedures in SQL Server.
Jerry Post Copyright © Database Management Systems Chapter 4 Queries.
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.
MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Sravanthi Lakkimsety Mar 14,2016.
1 All Powder Board and Ski SQL Server Workbook Chapter 5: Advanced Queries Jerry Post Copyright © 2003.
 CONACT UC:  Magnific training   
Lec-7. The IN Operator The IN operator allows you to specify multiple values in a WHERE clause. SQL IN Syntax SELECT column_name(s) FROM table_name WHERE.
1 Section 1 - Introduction to SQL u SQL is an abbreviation for Structured Query Language. u It is generally pronounced “Sequel” u SQL is a unified language.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
1 Ch4 Summary Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University.
SQL SQL Ayshah I. Almugahwi Maryam J. Alkhalifa
How to: SQL By: Sam Loch.
SQL Query Getting to the data ……..
Queries: Part 1 of 2 IS240 – DBMS Lecture # 6 –
M. E. Kabay, PhD, CISSP-ISSMP V:
Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University
Advanced Queries in MS Access
Chapter 8 Working with Databases and MySQL
Chapter # 7 Introduction to Structured Query Language (SQL) Part II.
Chapter 4 Summary Query.
Chapter 7 Introduction to Structured Query Language (SQL)
Structured Query Language – The Fundamentals
Contents Preface I Introduction Lesson Objectives I-2
Section 4 - Sorting/Functions
Presentation transcript:

Jerry Post Copyright © Database Management Systems Chapter 4 Queries

DATABASE 2 Why do we Need Queries  Natural languages (English) are too vague  With complex questions, it can be hard to verify that the question was interpreted correctly, and that the answer we received is truly correct.  Consider the question: Who are our best customers?  We need a query system with more structure  We need a standardized system so users and developers can learn one method that works on any (most) systems.  Query By Example (QBE)  SQL

DATABASE 3 Four Questions to Create a Query  What output do you want to see?  What do you already know (or what constraints are given)?  What tables are involved?  How are the tables joined together?

DATABASE 4 Tables

DATABASE 5 Organization  Single table  Constraints  Computations  Groups/Subtotals  Multiple Tables

DATABASE 6 Sample Questions  List all animals with yellow in their color. (Query04 _01)  List all dogs with yellow in their color born after 6/1/01. (Query04 _02)  List all merchandise for cats with a list price greater than $10.  List all dogs who are male and registered or who were born before 6/1/01 and have white in their color. (Query04 _03)  What is the average sale price of all animals? (Query04 _04)  What is the total cost we paid for all animals? (Query04 _05)  List the top 10 customers and total amount they spent.  How many cats are in the animal list? (Query04 _06)  Count the number of animals in each category. (Query04 _07)  List the CustomerID of everyone who bought something between 4/1/01 and 5/31/01.  List the first name and phone of every customer who bought something between 4/1/01 and 5/31/01.  List the last name and phone of anyone who bought a registered white cat between 6/1/01 and 12/31/01.  Which employee has sold the most items?

DATABASE 7 Query By Example & SQL  List all animals with yellow in their color. SELECTAnimalID, Category, Breed, Color FROMAnimal WHERE(Color LIKE “*yellow*”); What tables? What to see? What conditions? Query04_01

DATABASE 8 Basic SQL SELECT SELECTcolumnsWhat do you want to see? FROMtablesWhat tables are involved? JOINconditionsHow are the tables joined? WHEREcriteriaWhat are the constraints?

DATABASE 9 ORDER BY SELECTcolumns FROMtables JOINjoin columns WHEREconditions ORDER BYcolumns (ASC DESC) SELECT Name, Category, Breed FROM Animal ORDER BY Category, Breed; NameCategoryBreed CathyBirdAfrican Grey BirdCanary DebbieBirdCockatiel BirdCockatiel TerryBirdLovebird BirdOther CharlesBirdParakeet CurtisBirdParakeet RubyBirdParakeet SandyBirdParrot HoytBirdParrot BirdParrot

DATABASE 10 DISTINCT SELECT Category FROM Animal; Category Fish Dog Fish Cat Dog Fish Dog Fish Cat Dog... SELECT DISTINCT Category FROM Animal; Category Bird Cat Dog Fish Mammal Reptile Spider

DATABASE 11 Constraints: And  List all dogs with yellow in their color born after 6/1/01. SELECTAnimalID, Category, DateBorn FROMAnimal WHERE((Category="Dog") AND (Color Like "*Yellow*") AND (DateBorn>#6/1/2001#)); Query04_02

DATABASE 12 Conditions: AND, OR  List all dogs who are male and registered or who were born before 6/1/2001 and have white in their color. SELECT AnimalID, Category, Gender, Registered, DateBorn, Color FROM Animal WHERE (( Category="Dog") AND ( ( (Gender="Male") AND (Registered Is Not Null) ) OR ( (DateBorn<#6/1/2001#) AND (Color Like "*White*") ) ) ); Query04_03

DATABASE 13 Boolean Algebra And:Both must be true. Or:Either one is true. Not:Reverse the value. a = 3 b = -1 c = 2 (a > 4) Or (b < 0) FT F (a > 4) And (b < 0) FT T NOT (b < 0) T F

DATABASE 14 Boolean Algebra FT F T ( (a > 4) AND (b 1) T T FT F F (a > 4) AND ( (b 1) ) T T a = 3 b = -1 c = 2 The result is affected by the order of the operations. Parentheses indicate that an operation should be performed first. With no parentheses, operations are performed left-to-right. Always use parentheses, so other people can read and understand your query.

DATABASE 15 DeMorgan’s Law Example Customer:"I want to look at a cat, but I don’t want any cats that are registered or that have red in their color." SQL:SELECT... WHERE (Category=“cat”) AND NOT ((Registered is NOT NULL) or (Color LIKE “*red*”)). QBE:

DATABASE 16 DeMorgan’s Law  Negation of clauses  Not (A And B) becomes Not A Or Not B  Not (A Or B) becomes Not A And Not B TF T F NOT ((Registered is NOT NULL) OR (Color LIKE “*red*”)) Registered=ASCF Color=Black (Registered is NULL) AND NOT (Color LIKE “*red*”) F T F or not and F not

DATABASE 17 Useful Where Conditions

DATABASE 18 Oracle Views

DATABASE 19 Oracle Views and SQL CREATE VIEW Pets.Example AS SELECTPets.Animal.AnimalID, Pets.Animal.Breed, Pets.Animal.Category, Pets.Animal.Color FROM Pets.Animal WHERE (Pets.Animal.Color LIKE ‘%Yellow%’) SQL version is created by the Oracle View Wizard. The CREATE VIEW command saves it with the specified name.

DATABASE 20 Oracle View Wizard

DATABASE 21 Oracle Schema Manager: Views

DATABASE 22 Oracle Content Viewer

DATABASE 23 SQL Server Views

DATABASE 24 Simple Computations OrderItem(OrderID, ItemID, Price, Quantity) Select OrderID, ItemID, Price, Quantity, Price*Quantity As Extended From OrderItem; Basic computations (+ - * /) can be performed on numeric data. The new display column should be given a meaningful name. OrderIDItemIDPriceQuantityExtended

DATABASE 25 Computations: Aggregation--Avg  What is the average sale price of all animals? SELECT Avg(SalePrice) AS AvgOfSalePrice FROM SaleAnimal;  Sum  Avg  Min  Max  Count  StDev  Var Query04_04

DATABASE 26 Computations (Math Operators)  What is the total value of the order for PONumber 22?  Use any common math operators on numeric data.  Operate on data in one row at a time.  OrderTotal  SELECT Sum([Quantity]*[Cost]) AS OrderTotal FROM OrderItem WHERE (PONumber=22); Query04_05

DATABASE 27 SQL Differences

DATABASE 28 Subtotals (Where)  How many cats are in the Animal list? SELECTCount(AnimalID) AS CountOfAnimalID FROMAnimal WHERE(Category = “Cat”); Query04_06

DATABASE 29 Groups and Subtotals  Count the number of animals in each category.  You could type in each WHERE clause, but that is slow.  And you would have to know all of the Category values. SELECTCategory, Count(AnimalID) AS CountOfAnimalID FROMAnimal GROUP BYCategory ORDER BYCount(AnimalID) DESC;  CategoryCountOfAnimalID  Dog100  Cat47  Bird15  Fish14  Reptile6  Mammal6  Spider3 Query04_07

DATABASE 30 Conditions on Totals (Having)  Count number of Animals in each Category, but only list them if more than 10.  CategoryCountOfAnimal  Dog100  Cat47  Bird15  Fish14 SELECTCategory, Count(AnimalID) AS CountOfAnimalID FROMAnimal GROUP BYCategory HAVINGCount(AnimalID) > 10 ORDER BYCount(AnimalID) DESC; Query04_08

DATABASE 31 Where (Detail) v Having (Group)  Count Animals born after 6/1/2001 in each Category, but only list Category if more than 10. CategoryCountOfAnimalID  Dog30  Cat18 SELECTCategory, Count(AnimalID) AS CountOfAnimalID FROMAnimal WHEREDateBorn > #6/1/2001# GROUP BYCategory HAVINGCount(AnimalID) > 10 ORDER BYCount(AnimalID) DESC; Query04_09

DATABASE 32 Multiple Tables (Intro & Distinct)  List the CustomerID of everyone who bought something between 4/1/01 and 5/31/01.  CustomerID  6  8  14  19  22  24  28  36  37  38  39  42  50  57  58  63  74  80  90 SELECT DISTINCT CustomerID FROM Sale WHERE (SaleDate Between #4/1/01# And #5/31/01#) ORDER BY CustomerID; Avoid Duplicates with DISTINCT Query04_10

DATABASE 33 Joining Tables  List LastNames of Customers who bought between 4/1/2001 and 5/31/2001.  CustomerIDLastName  22Adkins  57Carter  38Franklin  42Froedge  63Grimes  74Hinton  36Holland  6Hopkins  50Lee  58McCain  37McPherson  90Nichols  14Patterson  8Reid  28Samuels  80Vance  39Williams  24Young  19Zhang SELECT DISTINCT Sale.CustomerID, Customer.LastName FROM Customer INNER JOIN Sale ON Customer.CustomerID = Sale.CustomerID WHERE (Sale.SaleDate Between #4/1/2001# And #5/31/2001#) ORDER BY Customer.LastName; Query04_11

DATABASE 34 SQL JOIN FROM table1 INNER JOIN table2 ON table1.column = table2.column FROM table1, table2 JOIN table1.column = table2.column SQL 92 syntax (Access and SQL Server) Informal syntax FROM table1, table2 WHERE table1.column = table2.column SQL 89 syntax (Oracle)

DATABASE 35 Syntax for Three Tables FROM Table1 INNER JOIN (Table2 INNER JOIN Table3 ON Table2.ColA = Table3.ColA) ON Table1.ColB = Table2.ColB FROM Table1, Table2, Table3 JOINTable1.ColB = Table2.ColB Table2.ColA = Table3.ColA Easier notation, but not correct syntax SQL ‘92 syntax to join three tables

DATABASE 36 Multiple Tables (Many)  List the Last Name and Phone of anyone who bought a registered White cat between 6/1/2001 and 12/31/2001. SELECT DISTINCTROW Customer.LastName, Customer.Phone FROM Customer INNER JOIN (Sale INNER JOIN (Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID) ON Sale.SaleID = SaleAnimal.SaleID) ON Customer.CustomerID = Sale.CustomerID WHERE ((Animal.Category="Cat") AND (Animal.Registered Is Not Null) AND (Color Like "*White*") AND (SaleDate Between #6/1/2001# And #12/31/2001#)); Query04_12

DATABASE 37 Building a Query  List the Last Name and Phone of anyone who bought a registered White cat between 6/1/01 and 12/31/ 01.  Identify the tables involved.  Look at the columns you want to see. LastName, Phone: Customer  Look at the columns used in the constraints. Registered, Color, Category: Animal Sale Date: Sale  Find connector tables. To connect Animal to Sale: SaleAnimal  Select the desired columns and test the query.  Enter the constraints.  Set Order By columns.  Add Group By columns.  Add summary computations to the SELECT statement.

DATABASE 38 Joining Tables (Hints)  Build Relationships First  Drag and drop  From one side to many side  Avoid multiple ties between tables  SQL  FROM Table1  INNER JOIN Table2  ON Table1.ColA = Table2.ColB  Join columns are often keys, but they can be any columns--as long as the domains (types of data) match.  Multiple Tables  FROM (Table1  INNER JOIN Table2  ON T1.ColA = T2.ColB )  INNER JOIN Table3  ON T3.ColC = T3.ColD  Shorter Notation  FROM T1, T2, T3  JOIN T1.ColA = T2.ColB  T1.ColC = T3.ColD  Shorter Notation is not correct syntax, but it is easier to write.

DATABASE 39 Tables with Multiple Joins  Potential problem with three or more tables.  Access uses predefined relationships to automatically determine JOINs.  JOINS might loop.  Most queries will not work with loops. A query with these four tables with four JOINS would only return rows where the Employee had the same ZipCode as the Supplier. If you only need the Supplier city, just delete the JOIN between Employee and ZipCode. If you want both cities, add the ZipCode table again as a fifth table.

DATABASE 40 Table Alias SIDSupplier.CityIDCity.CityEIDLastNameEmployee.CityIDCity2.City 47972Middlesboro5James7083Orlando Springfield1Reeves9201Lincoln 47972Middlesboro3Reasoner8313Springfield Columbia8Carpenter10592Philadelphia Smyrna3Reasoner8313Springfield SELECT Supplier.SID, Supplier.CityID, City.City, Employee.EID, Employee.LastName, Employee.CityID, City2.City FROM (City INNER JOIN Supplier ON City.CityID = Supplier.CityID) INNER JOIN ((City AS City2 INNER JOIN Employee ON City2.CityID = Employee.CityID) INNER JOIN AnimalOrder ON Employee.EmployeeID = AnimalOrder.EmployeeID) ON Supplier.SupplierID = AnimalOrder.SupplierID;

DATABASE 41 Saved Query: Create View CREATE VIEW Kittens AS SELECT * FROM Animal WHERE (Category = ‘cat’) AND (Today - DateBorn < 180); SELECT Avg(ListPrice) FROM Kittens WHERE (Color LIKE “*Black*”);  Save a query  Faster: only enter once  Faster: only analyze once  Any SELECT statement  Can use the View within other SQL queries.

DATABASE 42 Updateable Views OrderItem(OrderID, ItemID, Quantity)Item(ItemID, Description) OrderLine(OrderID, ItemID, Description, Quantity)  To be updateable, a view must focus on one primary table. (OrderItem)  Goal is to change data in only one table. (OrderItem)  Data can be displayed from other tables. (Item)  Never include or attempt to change primary keys from more than one table. (Item.ItemID)

DATABASE 43 Non Updateable View OrderItem(OrderID, ItemID, Quantity)Item(ItemID, Description) OrderLine(OrderID, Item.ItemID, Description, Quantity) Cat food 58Dog food 59Bird food 12157Cat food Bird feeder Cat food1 If you attempt to change the Item.ItemID in the OrderLineView: You will simply change the primary key value in the Item table. It will not add a new row to the OrderItem table. 32

DATABASE 44 SQL Syntax: ALTER TABLE ALTER TABLE table ADD COLUMN column datatype (size) DROP COLUMN column See also: CREATE TABLE DROP TABLE

DATABASE 45 SQL Syntax: COMMIT COMMIT WORK See also: ROLLBACK

DATABASE 46 SQL Syntax: CREATE INDEX CREATE [UNIQUE] INDEX index ON table (column1, column2, … ) WITH {PRIMARY | DISALLOW NULL | IGNORE NULL} See also: CREATE TABLE

DATABASE 47 SQL Syntax: CREATE TABLE CREATE TABLE table ( column1datatype (size) [NOT NULL] [index1], column2datatype (size) [NOT NULL] [index2], …, CONSTRAINT pkname PRIMARY KEY (column, …), CONSTRAINT fkname FOREIGN KEY (column) REFERENCES existing_table (key_column), ) See also: ALTER TABLE DROP TABLE

DATABASE 48 SQL Syntax: CREATE VIEW CREATE VIEW viewname AS SELECT … See also: SELECT

DATABASE 49 SQL Syntax: DELETE DELETE FROM table WHERE condition See also: DROP

DATABASE 50 SQL Syntax: DROP DROP INDEX index ON table DROP TABLE DROP VIEW See also: DELETE

DATABASE 51 SQL Syntax: INSERT INSERT INTO table (column1, column2, …) VALUES (value1, value2, … ) INSERT INTO newtable (column1, column2, …) SELECT … See also: SELECT

DATABASE 52 SQL Syntax: GRANT GRANT privilege privileges ON object ALL, ALTER, DELETE, INDEX, TO user | PUBLIC INSERT, SELECT, UPDATE See also: REVOKE

DATABASE 53 SQL Syntax: REVOKE REVOKE privilege privileges ON object ALL, ALTER, DELETE, INDEX, FROM user | PUBLIC INSERT, SELECT, UPDATE See also: GRANT

DATABASE 54 SQL Syntax: ROLLBACK SAVEPOINT savepoint{optional} ROLLBACK WORK TO savepoint See also: COMMIT

DATABASE 55 SQL Syntax: SELECT SELECT DISTINCT table.column {AS alias},... FROM table/query INNER JOIN table/query ON T1.ColA = T2.ColB WHERE (condition) GROUP BY column HAVING (group condition) ORDER BY table.column { UNION, INTERSECT, EXCEPT … } GROUP BY CUBE (dimension1, dimension2, …) TRANSFORM aggfunction{Crosstab values} SELECT... FROM... GROUP BY{Crosstab rows} PIVOT pivot column {Crosstab columns}

DATABASE 56 SQL Syntax: SELECT INTO SELECT column1, column2, … INTO newtable FROM tables WHERE condition See also: SELECT

DATABASE 57 SQL Syntax: UPDATE UPDATE TABLE table SET column1 = value1, column2 = value2, … WHERE condition See also: DELETE