.


:




:

































 

 

 

 





SQL , . . , , , .

, R1 . 4 , , , .

. . . 7.

7.
COUNT ,
SUM
AVG
MIN
MAX

SELECT, : . SUM AVG . COUNT, MAX MIN , . MAX MIN ASCII . , ANSI .

, , . "" . * COUNT .

SELECT R1., COUNT(*)FROM R1GROUP BY R1.

:

COUNT(*)
 
 
 
 

. , 5 :

SELECT R1.FROM R1GROUP BY R1.HAVING COUNT(*) >= 5 :
HAVING , .

SQL . , ( WHERE HAVING), , . EXISTS, , .

.

PNUM PNAME PSTATUS
   
   
   

P ()

DNUM DNAME DSTATUS
   
   
   

D ()

PNUM DNUM VOLUME
     
     
     
     
     
     

PD ()

 

1. , ( ):

SELECT *

FROM P

WHERE P.STATYS <

(SELECT MAX(P.STATUS)

FROM P);

. .. P.STATUS , , , .

. :

  1. .
  2. P, , , .

2. IN. , 2:

SELECT *

FROM P

WHERE P.PNUM IN

(SELECT DISTINCT PD.PNUM

FROM PD

WHERE PD.DNUM = 2);

. , .

. :

  1. , 2.
  2. P, , .

3. EXISTS. , 2:

SELECT *

FROM P

WHERE EXISTS

(SELECT *

FROM PD

WHERE

PD.PNUM = P.PNUM AND

PD.DNUM = 2);

. :

  1. P, , P.
  2. , .

. , ( ), - P.PNUM. (correlated). -, , , . EXISTS, .

. , , , . , .. , , , , . SQL , . , , , , , - .

4. NOT EXISTS. , 2:

SELECT *

FROM P

WHERE NOT EXISTS

(SELECT *

FROM PD

WHERE

PD.PNUM = P.PNUM AND

PD.DNUM = 2);

. , . , , .

5. , :

SELECT DISTINCT PNAME

FROM P

WHERE NOT EXISTS

(SELECT *

FROM D

WHERE NOT EXISTS

(SELECT *

FROM PD

WHERE

PD.DNUM = D.DNUM AND

PD.PNUM = P.PNUM));

. .

(D.DNUM, P.PNUM) : , PNUM DNUM. NOT EXISTS , . , P.PNUM, : , PNUM. NOT EXISTS , PNUM , . , , .

, , , , . , () , . .

FROM SQL2 :

FROM < >< >< >< >< >< >::= <__1> [ _1] [ ] [,<__n>[ < _n> ] ]< >:: =<__1> NATURAL { INNER | FULL [OUTER] LEFT [OUTER] | RIGHT [OUTER]} JOIN <__2>< >:: = <__1> CROSS JOIN <__2>< >::=<__1> UNION JOIN <__2>< >::= <__1> { INNERFULL [OUTER] | LEFT [OUTER] | RIGHT [OUTER]} JOIN {ON | [USING ( )]} <__2>

INNER () , LEFT , 1, , 2, NULL (). RIGHT , 2, 1 . FULL : . 1, , 2, .

OUTER , FULL, LEFT, RIGHT, .

. "". , , , . , . R2 R3 , R1, . , FROM SELECT.

SELECT R1., R1., R1.FROM (R2 NATURAL INNER JOIN R3) LEFT JOIN R1 USING (, )

:

. .  
. .  
. .  
. .  
.  
. .  
. . Null
. .  
. . Null
. .  
.  




:


: 2016-07-29; !; : 592 |


:

:

, .
==> ...

1710 - | 1578 -


© 2015-2024 lektsii.org - -

: 0.014 .