Karpova_bazy_dannyh
.pdf
81
(Null) 
















-



, 





. 

















-


, 













, 













-

,




. 


«
















, 














- 






». 


SELECT 















.
SELECT 

FROM R1
WHERE 

IS NULL 









.
.
SQL 














,













. 
















-






















. 










-







? 
























-


, 












,








, 















.



, 









R1 












. 



4 

, 

























-

, 


, 











, 























.



















. 
































. 











- 





5.7.



5.7. 




COUNT 



















, 









SUM
AVG
MIN
MAX
|
82 |
|
5. |
SQL. |
|
|
|
|
|
|
|
|
|
|
R1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
4 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
2 |
. . |
|
|
4 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
Null |
|
|
|
|
|
|
|
|
|
3 |
. . |
|
|
4 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
4 |
. . |
|
|
4 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
3 |
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
SELECT, |
: |
. |
|
SUM |
AVG |
. |
|
C0UNT, MAX |
MIN |
, |
. |
- |
|
MIN |
|
|
ASCII-

















. 

























, 

















ANSI 


















.



, 
















, 










-






. 























«



» 


























- 
















. 







* 




- 






COUNT 















.
SELECT R1 




OUN
(*)
FROM R1
GROUP BY R1 








:
83
COUNT (*)
6
4
3
4




























-



-


, 





























-












. 
























.
SELECT R1 



. COUNT (*) FROM R1
WHERE Rl 

IS NOT NULL GROUP BY Rl 












:
COUNT (*)
6
3
3
4
. . |
|
Null |
|
|
|





















, 






















«






» 


1 

. 




-


































, 

















. 













«

» (


R1, R2, R3), 



















:
SELECT COUNT (*)
FROM R1
WHERE 

> 2.

, 


, 









, 














-






, 






, 















. 
-






.
84 |
5. |
SQL. |

, 






, 


, 

























, 















DISTINCT 











. 















, 





-






.
SELECT R1 



CQUNT (DISTINCT R1 

)
FROM R1
WHERE R1 

IS NOT NULL
GROUP BY R1 








:
COUNT (DISTINCT R1 

)
3
3
2
3
|
|
- |
, |
|
. |
|
. |
- |
|
|
- |
. |
, |
- |





.
SELECT R2 

R1 



COUNT (*) AVR(

) FROM R1 R2
WHERE R1 
= R2 
AND R1 

IS NOT NULL AND R1 

> 2
GROUP
Y R2 

R1 








:
COUNT (*) |
AVR ( |
) |
6 |
3,83 |
|
3 |
3,67 |
|
3 |
4,66 |
|
4 |
4,25 |
|


























WHERE, 
-

























, 






-













.
85





GROUP
Y 
























































.

































-


SELECT. 




































SELECT, 






















-




HAVING. 




































. 


, 














-





, 










































.






, 









, 































.
SELECT R2 


FROM R1 R2
WHERE R1 
= R2 
AND
R1 

= 2
GROUP
Y R2 

R1 




HAVING Count (*)> 1
|
|
« |
», |
|
« |
», |
F, |
F, |
- |






.
F=(N, 



, 




, 




, 


),
Q = (

, 

),











.



, 




, 






















-
. |
, |
SUM(


) 













. GROUP BY, 

, 
















.
SELECT 

SUM (


)
FROM F
GROUP
Y 


GROUP BY |
|
|
, |
- |
|
. |
|
|
- |
, |
SUM |
|
|
|
, |
|
|
|
|
. |
, |
GROUP BY, |
|
, |
, |
|
, |
|
- |
. |
|
|
|
. |
|
GROUP BY |
. |
|
, |
|
|
- |
|
, |
$6000. |
|
|
|
|
86 |
5. |
SQL. |
|
|
$5000, |
|
|
HAVING. |
|
HAVING |
, |
, |
- |
|
, |
|
WHERE |
- |
|
. |
|
|
|
|
















.
SELECT 

SUM (0

)
FROM F
GROUP BY 


HAVING SUM (


) > 5000











HAVING 














, 



SELECT, 






GROUP BY.










.
















. SELECT 

SUM(


) FROM F
GROUP BY 


HAVING 




= 27 /12/1999


























HAVING, 
-




























. 



-
|
, |
HAVING |
, |
GROUP BY. |
- |





.
SELECT 

SUM (


)
FROM F
WHERE 




=27/12/1999
GROUP BY















: 




















, 


27 


1999 
.










, HAVING 















, 





. 




,











, 


, 








GROUP BY, 






. 


, 



























-



, 







.
SELECT |
SUM ( |
|
) |
FROM F Q |
|
|
|
WHERE F |
= Q |
|
|
GROUP BY |
|
|
|
HAVING |
IN ( |
- |
) |




















, 








- 





HAVING 

, 



















-
87

, 
























GROUP BY.
-
































-






COUNT, SUH, AVG, MIN 

, 



































. 
















, 





















HAVING,
-
|
|
|
, |
|
|
|
. |
|
HAVING |
|
, |
|
, |
|
- |
TRUE. |
, |
HAVING |
- |
, |
GROUP BY, |
|
- |
|
, |
|
|









, 





















-




.








«

»

.




SQL 


















. 



-




, 




(





WHERE 
HAVING), 





, 







. 























EXISTS, 










, 











.
|
|
, |
- |
, |
|
|
- |
. |
FROM |
SELECT |
- |
|
, |
|
|


















. 












-









AS, 














. 





FROM 















:
FROM R1 AS A R1 AS
FROM R1 A R1 
SELECT |
|
R1. |
|
|
, |
, |
SQL |
« |
». |





, 













.
SELECT 

FROM R1 as a
WHERE 

>
GROUP
Y 

HAVING COUNT (*) = (SELECT COUNT (*)
88 |
5. |
SQL. |
FROM R2 R3
WHERE R2 

=R


AND 
=a 
)








,



, 








,






, 



















, 











.





, 















, 







.
SELECT |
|
|
|
|
|
|
FROM R2 a |
R3 |
|
|
|
|
|
WHERE R2 |
=R3 |
AND |
=" |
" AND NOT EXISTS (SELECT |
|
|
|
FROM R1 |
|
|
|
|
|
|
WHERE |
= |
AND |
= |
|
|
|
EXISTS (Sub Query) |
, |
Sub Query |
, |
||
|
|
|
, |
|
EXISTS |
. |
|
NOT EXISTS |
|
|
, |
Sub |
|
Query |
. |
|
|
|
|
|







, 





NOT EXISTS 












-



















. 


, 





-






«
» 





















.









, 





















-









, 














SP «


- 



» 


:
SP (

_






_

)
(

_







)






















«







, 
- 









»:
SELECT DISTINCT 

_



FROM SP SP1
WHERE NOT EXISTS (SELECT 

__


FROM P
WHERE NOT EXISTS (SELECT * FROM SP SP2
WHERE SP2 

_



=S
1 

_



AND Sp2 

_

= P 

_

))
: « |
|
, |
, |
». |
, |
|
|
- |


.
89
SELECT DISTINCT 

_



FROM SP
GROUP BY 

_




HAVING Count (DISTINCT 

_

) (SELECT Count (

_

)
FROM P)





SQJL92 























-















ANY
ALL. 










-






























, 

-

.






ANY, 


















, 


, 

, |
|
|
- |
. |
ALL |
, |
- |
|
|
|
. |



, 






, 


















,

«

». 









«

», 















R4, 




























-

.
R1= (
, 



, 

); R2= (
, 

);
R3= (

, 



);
R4= (
, 



, 



. 
., 

)
Select RI 

From R1
Where 4 >= All (Select R1 

From R1 as R11
Where R1 
= R11 
) 










.








, 















, 






























.
Select R1 

From R1
Where R1 

>= ANY (Select R4 


From R4
Where R1 



= R4 



AND R1 
= R4 
)



SQL2 

















. 




SQL1


























, 






-
90 |
5. |
SQL. |
WHERE 



SELECT, 



















-






























-

, 






















. 






-




























, 



- 


















, 












-
, 









































. 




, 












(

) 


, 

























-




. 
















, 









SQL1, 
















.














FROM 




SQL2 











:
FROM <








> |
<
















> | <









> | <
















> |
<














>
< |
|
> = < |
_ |
_1> [ |
_1] [] |
[< |
_ |
_n>[ < |
|
> ] ] |
|
< |
|
|
> = |
|
|
< |
_ |
_1> NATURAL |
{INNER |
| FULL |
[OUTER] | |
LEFT[COUTER] | RIGHT [OUTER]} JOIN < |
_ |
_2> |
|||
< |
|
|
> = < |
_ |
_2> |
CROSS JOIN <
_


_2>
<














> =
<
_


_1> UNION JOIN <
_


_2>
<









= <




1> {INNER | FULL [OUTER] | LEFT [OUTER] | RIGHT [OUTER]}
JOIN {ON 


| [USING (





)]} <
_


_2> 







INNER 














, LEFT 



|
, |
|
1, |
- |
|
, |
|
|
- |
2, |
|
NULL ( |
). |
|
RIGHT |
|
|
, |
- |
|
|
|
|
- |
2, |
|
1 |
|
- |
. |
FULL |
|
|
, |



. 























,




1, 

















, 







-

2, 




















.
91
