Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Karpova_bazy_dannyh

.pdf
Скачиваний:
56
Добавлен:
08.05.2015
Размер:
38 Мб
Скачать
☆

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]