curso de java parte 2
-
Upload
alex-quito -
Category
Documents
-
view
222 -
download
0
Transcript of curso de java parte 2
-
7/23/2019 curso de java parte 2
1/17
6Copyright 2004, Oracle. All rights reserved.
Using Subqueries to Solve Queries
-
7/23/2019 curso de java parte 2
2/17
6-2 Copyright 2004, Oracle. All rights reserved.
Objectives
After completing this lesson, you should be able to do
the following:
efine subqueries
escribe the types of problems that subqueriescan solve
!ist the types of subqueries
"rite single#row and multiple#row subqueries
-
7/23/2019 curso de java parte 2
3/17
6-3 Copyright 2004, Oracle. All rights reserved.
Using a Subquery
to Solve a $roblem
"ho has a salary greater than Abel%s&
"hich employees have salaries greater
than Abel%s salary&
'ain query:
"hat is Abel%s salary&
Subquery:
-
7/23/2019 curso de java parte 2
4/17
6-4 Copyright 2004, Oracle. All rights reserved.
(he subquery )inner query* e+ecutes once before
the main query )outer query*
(he result of the subquery is used by the main
query
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);
Subquery Synta+
-
7/23/2019 curso de java parte 2
5/17
6-5 Copyright 2004, Oracle. All rights reserved.
SELECT last_name
FROM employees
WHERE salary >
(SELECT salary
FROM employees WHERE last_name = 'Ael');
Using a Subquery
--...
-
7/23/2019 curso de java parte 2
6/17
6-6 Copyright 2004, Oracle. All rights reserved.
/uidelines for Using Subqueries
0nclose subqueries in parentheses
$lace subqueries on the right side of the
comparison condition
(he OR!ER "#clause in the subquery is notneeded unless you are performing (op#1 analysis
Use single#row operators with single#row
subqueries, and use multiple#row operators with
multiple#row subqueries
-
7/23/2019 curso de java parte 2
7/176-7 Copyright 2004, Oracle. All rights reserved.
(ypes of Subqueries
Single#row subquery
'ultiple#row subquery
'ain query
Subquery
returnsS(23!045
S(23!045
SA2'A1
'ain query
Subquery
returns
-
7/23/2019 curso de java parte 2
8/176- Copyright 2004, Oracle. All rights reserved.
Single#4ow Subqueries
4eturn only one row
Use single#row comparison operators
Operator 'eaning
= 0qual to
> /reater than
>= /reater than or equal to
$ !ess than
$= !ess than or equal to
$> 1ot equal to
-
7/23/2019 curso de java parte 2
9/176-! Copyright 2004, Oracle. All rights reserved.
SELECT last_name% &o_% salary
FROM employees
WHERE &o_ =
(SELECT &o_
FROM employees WHERE employee_ = *)
A+! salary >
(SELECT salary
FROM employees
WHERE employee_ = *,);
0+ecuting Single#4ow Subqueries
S(23!045
67..
-
7/23/2019 curso de java parte 2
10/176-"0 Copyright 2004, Oracle. All rights reserved.
SELECT last_name% &o_% salary
FROM employees
WHERE salary =
(SELECT M-+(salary)
FROM employees);
Using /roup 8unctions in a Subquery
69..
-
7/23/2019 curso de java parte 2
11/176-"" Copyright 2004, Oracle. All rights reserved.
SELECT epartment_% M-+(salary)
FROM employees
.RO/0 "# epartment_
HA1-+. M-+(salary) >
(SELECT M-+(salary)
FROM employees
WHERE epartment_ = 23);
(he HA1-+.3lause with Subqueries
(he Oracle server e+ecutes subqueries first
(he Oracle server returns results into the HA1-+.
clause of the main query
69..
-
7/23/2019 curso de java parte 2
12/176-"2 Copyright 2004, Oracle. All rights reserved.
SELECT employee_% last_name
FROM employees
WHERE salary =
(SELECT M-+(salary)
FROM employees .RO/0 "# epartment_);
"hat s "rong with (his Statement&
ERROR at lne *4
ORA53*674 sn8le5ro9 s::ery ret:rns more t
-
7/23/2019 curso de java parte 2
13/176-"3 Copyright 2004, Oracle. All rights reserved.
SELECT last_name% &o_
FROM employees
WHERE &o_ =
(SELECT &o_
FROM employees WHERE last_name = 'Haas');
"ill (his Statement 4eturn 4ows&
no ro9s selete
Subquery returns no values
-
7/23/2019 curso de java parte 2
14/176-"4 Copyright 2004, Oracle. All rights reserved.
'ultiple#4ow Subqueries
4eturn more than one row
Use multiple#row comparison operators
Operator 'eaning
-+ 0qual to any member in the list
A+# 3ompare value to each value returned by the
subquery
ALL 3ompare value to every value returned by the
subquery
-
7/23/2019 curso de java parte 2
15/176-"5 Copyright 2004, Oracle. All rights reserved.
SELECT employee_% last_name% &o_% salary
FROM employees
WHERE salary $ A+#
(SELECT salary
FROM employees WHERE &o_ = '-T_0RO.')
A+! &o_ $> '-T_0RO.';
Using theA+#Operator
in 'ultiple#4ow Subqueries
;..., 7...,
-
7/23/2019 curso de java parte 2
16/176-"6 Copyright 2004, Oracle. All rights reserved.
SELECT employee_% last_name% &o_% salary
FROM employees
WHERE salary $ ALL
(SELECT salary
FROM employees WHERE &o_ = '-T_0RO.')
A+! &o_ $> '-T_0RO.';
Using theALLOperator
in 'ultiple#4ow Subqueries
;..., 7...,
-
7/23/2019 curso de java parte 2
17/176 "7 C i ht 2004 O l All i ht d
SELECT emplast_name
FROM employees emp
WHERE empemployee_ +OT -+
(SELECT m8rmana8er_
FROM employees m8r);
no ro9s selete
1ull >alues in a Subquery