Karpova_bazy_dannyh
.pdf






OUTER 






, 




FULL, LEFT, RIGHT, 

















.
|
|
|
. |
|
« |
». |
, |
, |
- |
|
|
, |
|
. |
|
|
, |
|
|
|
|
. |
|
|
|
|
R2 R3 |
, |
- |
R1, 















. 














- 













, 































FROM 



SELECT.
SELECT R1 |
R1 |
R1 |
|
FROM (R2 NATURAL INNER JOIN R3) LEFT JOIN R1 USING ( |
) |
||
: |
|
|
|
|
|
|
|
|
|
|
|
. . |
|
|
5 |
|
|
|
|
. . |
|
|
4 |
|
|
|
|
. . |
|
|
2 |
|
|
|
|
. . |
|
|
2 |
|
|
|
|
. . |
|
|
5 |
|
|
|
|
. . |
|
|
5 |
|
|
|
|
. . |
|
|
Null |
|
|
|
|
. . |
|
|
4 |
|
|
|
|
. . |
|
|
Null |
|
|
|
|
. . |
|
|
2 |
|
|
|
|
. . |
|
|
5 |
|
|
|
|
. . |
|
|
Null |
|
|
|
|
. . |
|
|
5 |
|
|
|
|
. . |
|
|
Null |
|
|
|
|
. . |
|
|
Null |
|
|
|
|
. . |
|
|
Null |
|
|
|
|
. . |
|
|
Null |
|
|
|
|
. . |
|
|
4 |
|
|
|
|
. . |
|
|
4 |
|
|
|
|
. . |
|
|
5 |
|
|
|
|
92 

5. 
SQL. 















. . |
|
5 |
|
|
|
. . |
|
5 |
|
|
|
. . |
|
9 |
|
|
|
. . |
|
Null |
|
|
|
|
, |
« |
». |
|
|
, |
|
, |
- |
|
|
. |
|
|
BOOKS (ISBN |
TITL AUTOR COAUTOR YEARIZD |
PAGES) |
|
|
READER (NUM_READER NAME_READER ADRESS |
HOOM_FONE |
|
||
WORK_PHONE |
BIRTH_DAY) |
|
|
|
EXEMPLARE (IN ISBN YES_NO NUM_READER DATE_IN DATE_OUT)






BOOKS 








, 











, 












:
ISBN 









,
TITL 






, AUT0R 






,
COAUTOR 







, YEARIZD 





, PAGES 






,



READER 



















, 




-










:
NUM_READER 

















,
NAME_READER 












;
ADRESS - 





,
H00M_PH0NE 











, WORK_PHQNE 










, BIRTH_DAY 









.



EXEMPLARE 




























. 
















:
INV - |
|
|
, |
ISBN - |
, |
, |
, |
|
|
, |
|
YES_HO 





































,
NUM_READER 









6

, 










,
Null 







.
93
DATE_IN 









, 



, 










,
DATE_OUT - 
, 





















.



















, 









, 
-












NULL. 
















-


, 




READER 














EXEMPLARE, 






- 




























, 




















EXEMPLARE INV 








-






NULL.
SELECT READER NAME_READER EXEMPLARE INV
FROM READER RIGHT JOIN EXEMPLARE ON READER NUM_READER=EXEMPLARE NUM_READER
|
, |
, |
- |
|
|
FROM, |
|
, |
, |
: |
|
SELECT * |
, |
|
- |
. |
|
|
|
|
SQL2 |
|
|
, |
|
- |
|
|
- |
- |
|
. |
|
- |
|
. |
|
- |
|
FROH (BOOKS LEFT JOIN EXEMPLARE) |
|
|
|
LEFT JOIN
(READER NATURAL JOIN EXEMPLARE) USING (ISBN)

, 


































, 






































.





:
SELECT - 
UNION
SELECT - 
UNION
SELECT - 







, 















, 








-



, 










.



, 













, 












«

» 



«










». 











-
:
94 |
5. |
SQL. |
|
SELECT READER NAME_READER |
|
|
FROM READER. EXEMPLARE.BOOKS |
|
|
WHERE EXEMPLARE.NUM_READER= READER. NUM_READER AND |
|
|
EXEMPLRE.ISBN = BOOKS ISBN AND |
|
|
BOOKS TITLE = |
|
|
UNION |
|
|
SELECT READER NAME_READER |
|
|
FROM READER. EXEMPLARE.BOOKS |
|
|
WHERE EXEMPLARE.NUM_READER= READER. NUM_READER ND |
|
|
EXEMPLARE ISBN = BOOKS.ISBN AND |
|
|
BOOKS TITLE = " |
" |








. 


, 








, 
















, 







.































.

, 























, 












«

»:
UNION
SELECT READER NAME_READER FROM READER EXEMPLARE.BOOKS
WHERE EXEMPLARE.NUM_READER= READER NUM_READER AND EXEMPLARE.ISBN = BOOKS ISBN AND
BOOKS TITLE = 








, 

























-


, 
















ALL 









.
































-




















:
SELECT - 


UNION ALL
SELECT 



UNION ALL
SELECT - 































WHERE














, 


















-


















.
SELECT DISTINCT READER.NAME_READER
FROM READER.EXEMPLARE.BOOKS
95
WHERE EXEMPIARE NUM_READER= READER NUM RTADER AND EXENPLARE ISBN = BOOKS ISBN AND
BOOKS TITLE = 


OR
BOOKS TITLE = "










" OR BOOKS TITLE = "

"
















UNION 










-













ORDER BY, 






















, 









ORDER BY 







































SELECT-


.



: 





-


















DELETE, 











-




















INSERT 








(







) 











UPDATE. 









.





.


INSERT 











:
INSERT INTO 
_


[(<





>)] VALUES (<





>)





























.
















, 
















-







. 


, 












BOOKS:
INSERT INTO BOOKS (ISBN,TITL.AUT0R.COAUTOR)R.YEARIZO PAGES) VALUES (
5-88782-290-2









IBM PC 




". "
.
. "."" 2000.816)













, 





, 















COAUT0R, 




























VALUES. 








, 










, 

























KILL. 












, 















, 



















, 





















-






:
INSERT INTO BOOKS VALUES ("5-88782-290-2"
"







I
PC 




" "

. '."" 2000.816)




















.



, 

















,
o 






- 

, 



















. 










96 |
5. |
SQL. |










, 


















-






:
INSERT INTO BOOKS ( ISON TITL AUTOR YEARIZD PAGES) VALUES ("5 88782 290 2" 








IBM PC 








. " 2000 816)
COAUTOR |
|
|
NULL. |
|
? |
|
, |
|
|
, |
- |
|
DDL (Data |
Definition |
Language) |
8. |
, |
|
|
(NOT NULL) |
, |
INSERT |
|
|
|
|
. - |
|
, |
|
|
|
, |
|
- |
|
. |
|
|
|
, |
|
, |
|
|
|
. |
|
|
|
|
|
|
|
|
|
. |
|
, |
|
|
|
- |
|
. |
, |
, |
|
|
|
EXEMPLAR |
: |
|
|
|
INSERT INTO EXEMPLAR (INV ISBN YES_NO NUM_READER DATE_IN DATE_OUT) |
|||||
VALUES (1872 5 88782-290 2 334) GetDate() DateAdd (0 GetDate() 14) |
|
|
|||
|
, |
|
1872 |
- |
|
|
|
344, |
, |
|
- |
|
|
, |
|
|
|
( |
GetDate()), |
|
, |
|
- |
|
DateAdd(), |
|
|
|
|
|
|
|
« |
». |
|
14 |
. |
|
|
|
|
|
, |
|
. |
|
, |
|
|
|
|
|
: |
, |
, |
|
. |
|
|
|
|
|
. |
|
|
INSERT INTO READER (NAME_READER ADRESS HO0M_ PHONE BIRTH_DAY) SELECT (NAME_STUDENT ADRESS HOOM_ PHONE BIRTH_DAY)
FROM STUDENT
































, 























. 



, 





, 





































, 






.


































-
- 












, 
















.
97
















:
DELETE FROM 




[WHERE 





]













, 














, 








, 











. 










, 




-



, 





.



, 





















, 




|
R1 |
: |
|
DELETE FROM R1 |
|
|
|
|
|
, |
- |
SELECT. |
|
, |
|
. |
, |
. |
, |




:
DELETE FROM R2
WHERE 
= 



.
.



WHERE 














. 


, 




















, 















-












, 
























. 





















, 







|
, |
, |
- |
. |
- |
|
R1 |
|
2 |
, |
- |
|
|
, |
|





, 
































, 






, 

















. 


























SQL 



, 

















.
DELETE FROM R2 WHERE R2 
IN
(SELECT Rl
0 FROM Rl
WHERE 

= 2 OR 

IS NULL GROOP BY R1 

HAVING
UNT(*) >= 2
DELETE, 












,

















, 











, 







,








, 











,






.
DELETE FROM R2
WHERE R2 
IN
98 |
5. |
SQL. |
(SELECT R1 

FROM (R2 NATURAL INNER JOIN R3) LEFT JOIN R1 USING ( 
WHERE 

= 2 OR 

IS NULL
GROOP BY Rl 

HAVING COUNT(*) >=2
, |
|
|
|
9. |
|
|
|
|
, |
|
|
|
, |
|
|
. |
- |
, |
|
|
|
- |
|
R3, |
|
|
, |
R1 |
R2 |
, |
|
|
|
R3. |
- |
, |
|
, |
|
, |
- |
|
|
. |
|
|
|
|
|
UPDATE |
, |
- |
|
|
|
|
|
, |
- |
|
, |
|
|
|
. |
, |
|
|
|
, |
- |
|
, |
|
. . |
|
- |
« |
» |
|
|
. |
- |
|
|
|
|
. |
- |
|
|
: |
|
|
|
UPDATE |
_ |
|
|
|
|
SET _ |
= |
_ |
|
|
|
[WHERE |
_ |
] |
|
|
|
WHERE |
|
|
, |
DELETE, |
|
|
|
, |
DELETE, |
|
|
, |
|
|
|
. |
- |
, |
|
|
|
|
|
. |
|
|
|
|
|
|
: |
|
|
|
|
UPDATE Rl |
|
|
|
|
|
SET Rl |
= 4 |
|
|
|
|
WHERE Rl |
= " |
. |
. " AND Rl |
= " |
" |
|
|
|
|
? |
|
|
. |
, |
|
|
- |
|
|
, |
|
, |
|
|
, |
|
|
|
- |
|
|
|
|
. |
R4 |
|
|
: |
|
|
|
R4 = < |
, |
> |
|
|
|
99
R4 |
|
|
|
|
|
|
|
4906 |
|
3 |
|
4807 |
|
4 |
|
|
|
- |
|
|
: |
|
|
UPDATE R4 |
|
|
|
SET R4 |
= R4 |
1 |
|








:
4906 |
|
4 |
|
|
4807 |
|
5 |
|
|
|
, |
|
, |
|
|
. |
|
, |
|
|
, |
|
, - |
|
|
|
|
. |
- |
|
|
|
. |
- |
R1 |
|
|
|
|
. |
|
R5 |
: |
|
R5
. . |
|
4906 |
<Null> |
|
. . |
|
4906 |
<Null> |
|
. . |
|
4906 |
<Null> |
|
. . |
|
4906 |
<Null> |
|
. . |
|
4906 |
<Null> |
|
. . |
|
4807 |
<Null> |
|
. . |
|
4807 |
<Null> |
|
. . |
|
4807 |
<Null> |
|
|
|
|
|
|
|
|
|
|
- |
, + 50% |
, |
|
|
|
|
|
|
|
25%, |
|
, |
-100% |
. |
|
|
|
|
0%. |
- |
100 |
5. |
SQL. |
































-



.

:
UPDATE R5
SET R5 



= 50% WHERE R5 
IN
(SELECT R1 
FROM R1
WHERE R1 

=5 GROOP BY R1 
HAVING COUNT(*)=3)

25%:
UPDATE R5
SET R5 



= 25% WHERE R5 
) IN
(SELECT R1 
FROM R1
WHERE R1 
NOT IN (SELECT A 
FROM R1 A
WHERE 


<=3 OR 


IS NULL) GR0OP
Y R1 

HAVING C0UNT(*)>=2 )



:
UPDATE R5
SET R5 



=0% WHERE R5 
IN
(SELECT Rl 
FROM R1
WHERE Rl 

>=4 AND Rl 
NOT IN SELECT A 

FROM RI A
WHERE 


<= 3 OR 


IS HULL) )







:
UPDATE R5
SET R5 



=100%
WHERE R5 
IN
