Introduction to SQL Basics --- SQL in 45 Minutes - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction to SQL Basics --- SQL in 45 Minutes

Description:

Find sailors who've reserved at least one boat ... Write those attributes, whose values will be returned by answer the query into the node(s) ... – PowerPoint PPT presentation

Number of Views:406
Avg rating:3.0/5.0
Slides: 13
Provided by: RaghuRamak216
Learn more at: https://www2.cs.uh.edu
Category:

less

Transcript and Presenter's Notes

Title: Introduction to SQL Basics --- SQL in 45 Minutes


1
Introduction to SQL Basics ---SQL in 45 Minutes
  • Chapter 5

2
The SQL Query Language
  • Developed by IBM (system R) in the 1970s
  • Need for a standard since it is used by many
    vendors
  • Standards
  • SQL-86
  • SQL-89 (minor revision)
  • SQL-92 (major revision, current standard)
  • SQL-99 (major extensions)

3
Example Instances
R1
  • We will use these instances of the Sailors and
    Reserves relations in our examples.
  • If the key for the Reserves relation contained
    only the attributes sid and bid, how would the
    semantics differ?

S1
S2
4
Basic SQL Query
SELECT DISTINCT target-list FROM
relation-list WHERE qualification
  • relation-list A list of relation names (possibly
    with a range-variable after each name).
  • target-list A list of attributes of relations in
    relation-list
  • qualification Comparisons (Attr op const or
    Attr1 op Attr2, where op is one of
    ) combined using AND, OR and
    NOT.
  • DISTINCT is an optional keyword indicating that
    the answer should not contain duplicates.
    Default is that duplicates are not eliminated!

5
Conceptual Evaluation Strategy
  • Semantics of an SQL query defined in terms of
    the following conceptual evaluation strategy
  • Compute the cross-product of relation-list.
  • Discard resulting tuples if they fail
    qualifications.
  • Delete attributes that are not in target-list.
  • If DISTINCT is specified, eliminate duplicate
    rows.
  • This strategy is probably the least efficient way
    to compute a query! An optimizer will find more
    efficient strategies to compute the same answers.

6
Example of Conceptual Evaluation
SELECT S.sname FROM Sailors S, Reserves
R WHERE S.sidR.sid AND R.bid103
7
A Note on Range Variables
  • Really needed only if the same relation appears
    twice in the FROM clause. The previous query can
    also be written as

SELECT S.sname FROM Sailors S, Reserves
R WHERE S.sidR.sid AND bid103
It is good style, however, to use range
variables always!
SELECT sname FROM Sailors, Reserves WHERE
Sailors.sidReserves.sid AND
bid103
OR
8
Find sailors whove reserved at least one boat
SELECT S.sid FROM Sailors S, Reserves R WHERE
S.sidR.sid
  • Would adding DISTINCT to this query make a
    difference?
  • What is the effect of replacing S.sid by S.sname
    in the SELECT clause? Would adding DISTINCT to
    this variant of the query make a difference?

9
Dr. Eicks Graphical Method to Design SQL Queries
  1. Draw a node for each relation that is required to
    answer the query
  2. Write those attributes, whose values will be
    returned by answer the query into the node(s)
  3. Specify single node restrictions/selection
    conditions --- attach those to nodes using ltgt
  4. Assign edges that connect the involved nodes for
    2-node restrictions / conditions to the graph.
    Label the edge with the 2-node condition
  5. Translate the graph into an SQL-query

10
Example Give sid and name of all sailors that
have reservations for a green boat and a red
boat
Sailor S
S-name sid
sidsid
Reservation R2
sid sid
bid bid
Reservation R1
Boat B2
colorgreen
bid bid
Boat B1
colorred
Remark for corresponding SQL-query see page 12
11
Find sids of sailors whove reserved a red or a
green boat
SELECT S.sid FROM Sailors S, Boats B, Reserves
R WHERE S.sidR.sid AND R.bidB.bid AND
(B.colorred OR B.colorgreen)
  • UNION Can be used to compute the union of any
    two union-compatible sets of tuples (which are
    themselves the result of SQL queries).
  • If we replace OR by AND in the first version,
    what do we get?
  • Also available EXCEPT (What do we get if we
    replace UNION by EXCEPT?)

SELECT S.sid FROM Sailors S, Boats B, Reserves
R WHERE S.sidR.sid AND R.bidB.bid
AND B.colorred UNION SELECT S.sid FROM
Sailors S, Boats B, Reserves R WHERE S.sidR.sid
AND R.bidB.bid AND
B.colorgreen
12
Find sids of sailors whove reserved a red and a
green boat
SELECT S.sid FROM Sailors S, Boats B1, Reserves
R1, Boats B2, Reserves R2 WHERE
S.sidR1.sid AND R1.bidB1.bid AND
S.sidR2.sid AND R2.bidB2.bid AND
B1.colorred AND B2.colorgreen
  • INTERSECT Can be used to compute the
    intersection of any two union-compatible sets of
    tuples.
  • Included in the SQL/92 standard, but some systems
    dont support it.
  • Contrast symmetry of the UNION and INTERSECT
    queries with how much the other versions differ.

Key field!
SELECT S.sid FROM Sailors S, Boats B, Reserves
R WHERE S.sidR.sid AND R.bidB.bid
AND B.colorred INTERSECT SELECT S.sid FROM
Sailors S, Boats B, Reserves R WHERE
S.sidR.sid AND R.bidB.bid AND
B.colorgreen
Write a Comment
User Comments (0)
About PowerShow.com