Presentation is loading. Please wait.

Presentation is loading. Please wait.

--The SQL Query Language DML--1 The SQL Query Language DML The SQL Query Language DML (SELECT)

Similar presentations


Presentation on theme: "--The SQL Query Language DML--1 The SQL Query Language DML The SQL Query Language DML (SELECT)"— Presentation transcript:

1 --The SQL Query Language DML--1 The SQL Query Language DML The SQL Query Language DML (SELECT)

2 --The SQL Query Language DML--2 Outline - The SELECT statement  Single table  Projection  Selection  Multiple tables  Cartesian product and join  Set operations  Subqueries  Optional clauses  Ordering results  Computing aggregates on groups  Additional joins

3 --The SQL Query Language DML--3 Retrieval Queries in SQL: SELECT  SQL has one basic statement for retrieving information from a database; the SELECT statement.  The basic form of the SQL SELECT statement is called a mapping or a select-from-where block. SELECT column list FROMtable list WHEREcondition

4 --The SQL Query Language DML--4 SELECT: Projecting a Column  Find the names of all Customers.  This query is termed a projection query.  Duplicates are eliminated by specifying DISTINCT.  In which cities do customers live, each city listed once? SELECT DISTINCT City FROM Customer

5 --The SQL Query Language DML--5 SELECT: Projecting all Columns  All the columns can be specified with *.  Make a copy of the Customer table. SELECT * FROM Customer  Can eliminate duplicate rows. SELECT DISTINCT * FROM Customer

6 --The SQL Query Language DML--6 SELECT: Renaming Columns and Tables  Columns can be renamed in generalized projection.  Project the City column as Towns  Tables can be given different names within the body of the SELECT statement. These are called correlation variables or names.  Refer to the Customer table as C.

7 --The SQL Query Language DML--7 SELECT: Selecting Rows  WHERE clause is used to choose only rows that meet some condition.  Condition can be simple comparison of a column value to a constant a column value result of a SELECT  Which customers live in Dublin? SELECT DISTINCT Name FROM Customer WHERE City = ’Dublin’

8 --The SQL Query Language DML--8 SELECT: Using Logical Operators  AND, OR, NOT may be used on result of comparison  List outrageously priced films (over $4 or under $1). SELECT * FROMFilm WHERE RentalPrice > 4 OR RentalPrice < 1  List films that are not outrageously priced. More than one table can be listed in the from clause. SELECT DISTINCT * FROMFilm WHERE NOT(RentalPrice > 4 OR RentalPrice < 1)

9 --The SQL Query Language DML--9 Outline - The SELECT statement  Single table  Projection  Selection  Multiple tables  Cartesian product and join  Set operations  Subqueries  Optional clauses  Ordering results  Computing aggregates on groups  Additional joins

10 --The SQL Query Language DML--10 SELECT: Two or more tables  FROM clause can specify a list of tables, evaluates as Cartesian product of all the tables specified  List the titles of the reserved films. SELECT DISTINCT Title FROMFilm, Reserved WHEREReserved.FilmID = Film.FilmID

11 --The SQL Query Language DML--11 SELECT: Queries Over Several Tables  List the customers who have reserved an expensive film. SELECT DISTINCT Name FROM Customer, Film, Reserved WHEREReserved.CustomerID = Customer.CustomerID AND Reserved.FilmID = Film.FilmID AND RentalPrice > 4  List the streets of customers who have reserved foreign films. SELECT Street FROM Customer, Film, Reserved WHEREReserved.CustomerID = Customer.CustomerID AND Reserved.FilmID = Film.FilmID AND Kind = ’F’

12 --The SQL Query Language DML--12 SELECT: Self Joins  Tables can be referenced several times, using correlation names.  Which customers have reserved a film that customer 123456 has reserved? SELECT B.CustomerID FROM Reserved A, Reserved B WHERE A.CustomerID = 123456 AND A.FilmID = B.FilmID AND A.CustomerID <> B. CustomerID  Which films have a higher rental price than some foreign film? SELECT DISTINCT A.Title FROM Film A, Film B WHERE A.RentalPrice > B.RentalPrice AND B.Kind = ’F’

13 --The SQL Query Language DML--13 Union  The algebraic operators of union (  ), intersection (  ) and difference (-) are available, as UNION, INTERSECT, and EXCEPT.  These operations eliminate duplicates!  Must be union-compatible  List the outrageously priced films (over $4 or under $1). (SELECT Title FROM Film WHERE RentalPrice > 4) UNION (SELECT Title FROM Film WHERE RentalPrice < 1)

14 --The SQL Query Language DML--14 Outline - The SELECT statement  Single table  Projection  Selection  Multiple tables  Cartesian product and join  Set operations  Subqueries  Optional clauses  Ordering results  Computing aggregates on groups  Additional joins

15 --The SQL Query Language DML--15 SELECT: Subqueries  A SELECT may be nested SELECT … FROM … WHERE (SELECT … FROM … WHERE …)  Subqueries may produce  A scalar (single value)  A single--column table ANY, ALL, IN, EXISTS  A multiple-column table EXISTS  Correlated subqueries

16 --The SQL Query Language DML--16 Scalar Producing Subquery  The subquery produces a single value that can be compared  What are the IDs of customers with the same name as the customer with ID 123456? SELECT CustomerID FROM Customer WHERE name = (SELECT name FROM Customer WHERE CustomerID = 123456)

17 --The SQL Query Language DML--17 Single Attribute Producing Subquery  The subquery produces a table with a single column These operations eliminate duplicates!  IN  true if value exists in result of subquery  Comparison Operator ANY  true for comparison with at least one tuple in subquery produced table  Comparison Operator ALL  true for comparison with every tuple in subquery produced table

18 --The SQL Query Language DML--18 IN  IN is equivalent to a restricted form of exists:  (246800 IN ) is true.  (333333 IN ) is false.  (333333 NOT IN ) is true

19 --The SQL Query Language DML--19 IN Query  List the ID numbers of the films that are expensive and have been reserved. SELECT FilmID FROM Film WHERE RentalPrice > 4 AND FilmID IN ( SELECT FilmID FROM Reserved)  List the ID numbers of the expensive films that have not been reserved. SELECT FilmID FROM Film WHERE RentalPrice > 4 AND FilmID NOT IN (SELECT FilmID FROM Reserved)

20 --The SQL Query Language DML--20 ANY  ANY is also equivalent to exists:  (246800 < ANY ) is true.  (369121 < ANY ) is false.

21 --The SQL Query Language DML--21 ANY, cont.  (246800 = ANY ) is true.  (246800 <> ANY ) is true.  Comparison with IN  (= ANY)  IN  (<> ANY)  NOT IN /

22 --The SQL Query Language DML--22 ANY Query  Which films rent for more than some foreign film? SELECT Title FROM Film WHERE RentalPrice > ANY(SELECT RentalPrice FROM Film WHERE Kind = ’F’)

23 --The SQL Query Language DML--23 ALL  ALL is equivalent to for all:  (246800 < ALL ) is false.  (100000 < ALL ) is true.

24 --The SQL Query Language DML--24 ALL, cont.  246800 = ALL ) is false.  (100000 < ALL ) is true  Comparison with IN  (<> ALL)  NOT IN  (= ALL)  IN /

25 --The SQL Query Language DML--25 ALL Query  Find the film(s) with the highest rental price. SELECT Title FROM Film WHERE RentalPrice >= ALL ( SELECT RentalPrice FROM Film )


Download ppt "--The SQL Query Language DML--1 The SQL Query Language DML The SQL Query Language DML (SELECT)"

Similar presentations


Ads by Google