8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
1/21
COMBINING SET IN SQL SERVERUSING SUB QUERY AND USING JOIN
M A R D H I Y A H A Y A T I & S T E V I E M A W I J A Y A N T ID A T A B A S E P R O G R A M I N G ( T I ) – 2 0 1 6
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
2/21
WHAT IS SUB QUERY
A S!"#!$% '% I $% #!$% '% N$ *$+ #!$% , - #!$% .,*/, - '*/$%#!$% - + $ "$++$+ .,*/, */$ WHERE -! $3 A !"#!$% , ! $+ *' %$*!+-*- */-* ., "$ ! $+ , */$ -, #!$% - - ' +,*,' *' 4!%*/$% %$ *%, *+-*- *' "$ %$*%,$5$+3
S!"#!$%,$ - "$ ! $+ .,*/ */$ SELECT INSERT UPDATE - + DE
*-*$ $ * - ' 7 .,*/ */$ '8$%-*'% ,9$ : ; <
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
3/21
RULES O> SUB QUERY
T/$%$ -%$ - 4$. %! $ */-* !"#!$%,$ ! * 4' '.?S!"#!$%,$ ! * "$ $ ' $+ .,*/, 8-%$ */$ $ 3A !"#!$% - /-5$ ' ' $ ' ! , */$ SELECT -! $ ! $ ! *,8' ! -%$ , */$ -, #!$% 4'% */$ !"#!$% *' ' 8-%$ ,* $ $ *$+' ! 3
A ORDER BY - '* "$ ! $+ , - !"#!$% - */'!7/ */$ -, #!$% -! $ - ORDER BY3 T/$ GROUP BY - "$ ! $+ *' 8$%4'% */$ - $ 4! *,' */$ ORDER BY , - !"#!$% 3
S!"#!$%,$ */-* %$*!% '%$ */- ' $ %'. - ' "$ ! $+ .,*/ ! *,8 $5- !$ '8$%-*'% ! / - */$ IN '8$%-*'%3
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
4/21
RULES O> SUB QUERY
T/$ SELECT , * - '* , !+$ - %$4$%$ $ *' 5- !$ */-* $5- !-*$BLOB ARRAY CLOB '% NCLOB3
A !"#!$% - '* "$ , $+,-*$ $ ' $+ , - $* 4! *,' 3
T/$ BETWEEN '8$%-*'% - '* "$ ! $+ .,*/ - !"#!$% @ /'.$5$% */$BETWEEN '8$%-*'% - "$ ! $+ .,*/, */$ !"#!$% 3
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
5/21
TYPES O> SUB QUERY
S, 7 $ %'. !"#!$% ? R$*!% $%' '% ' $ %'.3
M! *,8 $ %'. !"#!$% ? R$*!% ' $ '% '%$ %'. 3
M! *,8 $ ' ! !"#!$% ? R$*!% ' $ '% '%$ ' ! 3
C'%%$ -*$+ !"#!$%,$ ? R$4$%$ $ ' $ '% '%$ ' ! , */$ '!*$% S
*-*$ $ *3 T/$ !"#!$% , 9 '. - - '%%$ -*$+ !"#!$% "$ -! $ */$!"#!$% , %$ -*$+ *' */$ '!*$% SQL *-*$ $ *3
N$ *$+ !"#!$%,$ ? S!"#!$%,$ -%$ 8 - $+ .,*/, - '*/$% !"#!$%,$ 3
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
6/21
SUB QUERY WITH THE SELECT STATEMENT
A !"#!$% SELECT *-*$ $ * , - ' * , , -% *' */$ SELECT *-*$ $ * - + ,* , ! $+ *"$7, - %$7! -% '% '!*$% #!$% 3 H$%$ , */$ *- '4 - !"#!$% ?
(SELECT [DISTINCT] subquery_select_argument
FROM table_name ! "#e$_name%
table_name ! "#e$_name% &&&
[' ERE searc)_c*n+#t#*ns][,RO-. /0 aggregate_e12ress#*n [3 aggregate_e12ress#*n] &&&]
[ 45IN, searc)_c*n+#t#*ns]6
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
7/21
SUB QUERY WITH EQUALITY
Y'! - 8 - $ - !"#!$% , */$ WHERE -! $ '4 - '*/$% #!$% 3
E - 8 $ ?
SELECT name3 a++ress3 year_*7_b#rt)
FROM Cust*mers
' ERE cust*mer_#+ 8 (SELECT cust*mer_#+
FROM Cust*mers
' ERE cust*mer_#+ 8 9C-S:;;;;;
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
8/21
SUB QUERY WITH AGGREGATE >UNCTION
E - 8 $ ?
SELECT #tem_#+3 name3 st*>
FROM Items
' ERE 2urc)as#ng_2r#ce ? (SELECT 45,(2urc)as#ng_2r#ce6
FROM Items6=
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
9/21
SUB QUERY WITH AGGREGATE >UNCTION
E - 8 $ ?
SELECT categ*ry_#+3 45,(sell#ng_2r#ce6 4S a"g_sell#ng_2r#ce
FROM Items
,RO-. /0 categ*ry_#+
45IN, 45,(sell#ng_2r#ce6 ?8 (SELECT 45,(sell#ng_2r#ce6
FROM Items
' ERE categ*ry_#+ 8 9C,:;;
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
10/21
SUB QUERY USE O> IN
E - 8 $ ?
SELECT @
FROM C-STOMERS
' ERE N4ME IN (A0u+)a 4+#sa2utraB3 AMe#l#aB3 A a+r#an ,ust#n 4l"ar*B6=
SELECT @
FROM C-STOMERS
' ERE RE,ION_ID IN (A'L;; B3 A'L;;
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
11/21
SUB QUERY USE O> IN
E - 8 $ ?
SELECT @
FROM C-STOMERS
' ERE C-STOMER_ID IN (SELECT C-STOMER_ID
FROM C-STOMERS
' ERE 0E4R_OF_/IRT /ET'EEN ;; 4ND ; ;6=
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
12/21
SUB QUERY USE O> NOT IN
E - 8 $ ?
SELECT @
FROM C-STOMERS
' ERE N4ME NOT IN (A0u+)a 4+#sa2utraB3 AMe#l#aB3 A a+r#an ,ust#n 4l"ar*B6=
SELECT @
FROM C-STOMERS
' ERE RE,ION_ID NOT IN (A'L;; B3 A'L;;
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
13/21
SUB QUERY USE O> E IST
E - 8 $ ?
SELECT categ*ry_#+3 e12lanat#*n
FROM Categ*r#es
' ERE E ISTS (SELECT @
FROM Items
' ERE Categ*r#es&categ*ry_#+ 8 categ*ry_#+6=
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
14/21
SUB QUERY USE O> NOT E IST
E - 8 $ ?
SELECT categ*ry_#+3 e12lanat#*n
FROM Categ*r#es
' ERE NOT E ISTS (SELECT @
FROM Items
' ERE Categ*r#es&categ*ry_#+ 8 categ*ry_#+6=
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
15/21
TAS
D$ 7- $ 77! -9- !"#!$% *- 8, 9- +-*- 9' ! $ - 7 $ , ,9,- - $ 7- +! 7 /!%!4 “a” +- /!%!4 “i” 3
T- 8, 9- +-*- 9' ! $ - 7 8$% -/ $ "$ , "-%- 7 +- *- 8, 9- !7- +-*- 9' ! $ - 7 "$ ! 8$% -/ $ -9!9- 8$ "$ ,- "-%- 73
T- 8, 9- ! -/ "-%- 7 8$% !8 - $% +-%, *-" $ "-%- 7 +, - - $ , ,9
*'9
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
16/21
SUB QUERY WITH THE INSERT STATEMENT
S!"#!$%,$ - ' - "$ ! $+ .,*/ INSERT *-*$ $ * 3 T/$ INSERT *-*$ $ * ! $ */$ +%$*!% $+ 4%' */$ !"#!$% *' , $%* , *' - '*/$% *-" $3 T/$ $ $ *$+ +-*- , */$ !
- "$ '+, $+ .,*/ - '4 */$ /-%- *$% +-*$ '% ! "$% 4! *,' 3
T/$ "- , *- , - 4' '. ?
INSERT INTO table_name [ (c*lumn [3 c*lumn ]6 ]
SELECT [ @!c*lumn [3 c*lumn ]
FROM table [3 table ]
[ ' ERE 54L-E O.ER4TOR ]
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
17/21
SUB QUERY WITH THE INSERT STATEMENT
C' ,+$% - *-" $ CUSTOMERS B P .,*/ , , -% *%! *!%$ - CUSTOMERS *-" $3 N'. ' 8 $*$ CUSTOMERS *-" $ , *' CUSTOMERS B P 4' '., 7 , */$ *- ?
INSERT INTO C-STOMERS
SELECT @ FROM C-STOMERS
' ERE ID IN (SELECT IDFROM C-STOMERS6 =
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
18/21
SUB QUERY WITH THE UPDATE STATEMENT
T/$ !"#!$% - "$ ! $+ , ' ! *,' .,*/ */$ UPDATE *-*$ $ *3 E,*/$% , 7 $ '% ! *' ! , - *-" $ - "$ !8+-*$+ ./$ ! , 7 - !"#!$% .,*/ */$ UPDATE *-*$ $ *3
T/$ "- , *- , - 4' '. ?
-.D4TE table
SET c*lumn_name 8 ne$_"alue
[ ' ERE O.ER4TOR [ 54L-E ]
(SELECT COL-MN_N4ME
FROM T4/LE_N4ME6
[ ' ERE6 ]
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
19/21
SUB QUERY WITH THE UPDATE STATEMENT
>' '., 7 $ - 8 $ !8+-*$ SALARY " 032 *, $ , CUSTOMERS *-" $ 4'% - */$ ! *./' $ AGE , 7%$-*$% */- '% $#!- *' 2K?
-.D4TE C-STOMERS
SET 4++ress 8 AGa>artaB
' ERE Reg#*n_#+ IN (A'L;; B6=
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
20/21
SUB QUERY WITH THE DELETE STATEMENT
T/$ !"#!$% - "$ ! $+ , ' ! *,' .,*/ */$ DELETE *-*$ $ * ,9$ .,*/ - '*/$%*-*$ $ * $ *,' $+ -"'5$3
T/$ "- , *- , - 4' '. ?
DELETE FROM T4/LE_N4ME
[ ' ERE O.ER4TOR [ 54L-E ] (SELECT COL-MN_N4ME
FROM T4/LE_N4ME6
[ ' ERE6 ]
MARDHIYA
8/16/2019 20160314 Chapt3-CombiningSet(Teori) 2
21/21
SUB QUERY WITH THE DELETE STATEMENT
>' '., 7 $ - 8 $ +$ $*$ %$ '%+ 4%' CUSTOMERS *-" $ 4'% - */$ ! *' $% ./' $ 7%$-*$% */- '% $#!- *' 2K?
DELETE FROM C-STOMERS
' ERE 0E4R_OF_/IRT IN (SELECT 0E4R_OF_/IRT FROM C-STOMERS
' ERE 0E4R_OF_/IRT ? ; H 6=
MARDHIYA