Sie sind auf Seite 1von 38

(relational

algebra)

,

SQL

ZY,



(
)
(project, unary)
(select, unary)
(cartesian product, binary)
(union, binary)
(set-difference, binary)
(rename, unary)


.


,
.
(set-intersection),
(natural join), (division),
(assignment), (generalized
projection),
(Aggregate functions),
(outer join)



() .
().
1,2,, k(r)
1, 2 r
.
()
.

,(R)

10

20

30

40

SQL:
SELECT DISTINCT , FROM R



.
()
: p(r)
:

p(r) = {t|tr and p(t)}


()
r P ()


: (and), (or), (not)

=, , <, , >,
<> <> <>
:

-= ()
6

=^>5 (r)

12

23

10

23

10

SQL:
SELECT DISTINCT ,
FROM R
WHERE = AND >5



x
: r s, r n
s m .
rxs n x m .

r, s:

r x s

10

10

20

10

10

10

20

10

10

10

20

10

SQL:
SELECT * FROM R, S
8


: r s
:
r s = {t | t r t s}
r s:
1. r, s
()
2.
(.., 2 r

s)
..

() ()

-
r
A

B
1
2
1

r s:

B
2
3

B
1
2
1
3

SQL:
(SELECT , FROM R)
UNION
(SELECT , FROM S)
10


r-s
:
r-s = {t|tr ts}

.

R - S:

SQL2:
(SELECT , FROM R) EXCEPT (SELECT , FROM S)
SQL1:
(SELECT , FROM R) MINUS (SELECT , FROM S)
11




.. A=(r x s)

rxs

A=(r x s)

10

10

20

10

10

10

20

10

10

20

10

12



().
,
,



:
x(r)
r
SQL:
SELECT * FROM R AS X
n,
(1, 2, , n)(r)
r ,
1, 2, ,
n.
SQL:
SELECT * FROM R AS X(1, 2, , n)
13


( Database Systems Concepts
Silberschatz, Korth Sudarshan).

(-, , )
(-, -, )
(-, -, )
(-, -)
(-, , )
(-, -)
14


1200.

> 1200 ()

1200.

-(>1200())

, ,

-()

-()

.

-()

-()
15

- (-=""
(.-=.-
( x )))



.

- (- =""
(.-=.-
( x )))
-()

-(-=""
(.-=.-
( x ) ) )

16

()
.(. < d.
( x d() ) )
SQL :
( SELECT DISTINCT .,
FROM )
EXCEPT
( SELECT DISTINCT .,
FROM , AS d
WHERE . < d. )

17



:
o
o
1 2
.
:
o
o
o
o

1 2
1 2
1 x 2
(1), P

1
o s(1), S
1.
o (1), x
1

18




,
.
(set-intersection),
(natural join),
(division),
(assignment),
(generalized projection),
(Aggregate functions),
(outer join)

19


: r s
:
r s = {t | t r t s}
r s.
1. r, s
()
2.
: r s = r - (r - s)
r
r, s:

r s:

SQL:
(SELECT , FROM r) INTERSECT
(SELECT , FROM s)
20


: r
s
()
.

(r x s)

.
.
:
R = (, , , )
S = (, , )
(, , , , )
r
s :

r.A,r.B,r.,r. ,s.(r.=s.B r.=s.(r x s))


1:
r x s
2:
. r.=s.B r.=s.(r x s)
3: (
RS= ).

RS (r.=s.B r.=s.(r x s))


21

r, s:

SQL:
SELECT r., r., r., r., s.
FROM r,s
WHERE r.= s. AND r.= s.
INNER JOIN FROM
SELECT r., r., r., r., s.
FROM r INNER JOIN s ON r.= s. AND r.= s.
22


r s

.
r s R S
,
R = (A1, , Am, B1, , Bn)
S = (B1, , Bn)
r s
R S = (A1, , Am)
r s = {t | t R-S (r) u s (tu r)}
..

( ).
-,-
(

- (- =
())

23


r

r s:

r s:

r

r s:

a
a
a
a
a
a
a
a

a
a
b
a
b
a
b
b

1
1
1
1
3
1
1
1

a
b

1
1

r s:

a 24


SQL
NOT EXISTS
true
r


r s:

r s:

SQL:
SELECT DISTINCT d.
FROM r AS d
WHERE NOT EXISTS ( ( SELECT B FROM s )
EXCEPT
( SELECT r.B FROM r
WHERE r.A = d.A ) )
d.A

25


( )
.




.
()
.


: r s

temp1 R-S (r)


temp2 R-S ((temp1 x s) R-S,S (r))
result = temp1 temp2

26




.
F1, F2, , Fn(E)
E

F1, F2, , Fn

.
(_,
, _),
:

_, -_()
SQL:
SELECT _, - _
FROM

27




.
avg:

min:

max:

sum:

count:

:
G1, G2, , Gn g F1(A1), F2(A2), , Fn(An)

(E)

G1, G2, , Gn
()
Fi
i
28

g ()(r)

10

-
27

SQL:
SELECT sum() FROM r

29

-

-

- -
P e rryridge
A-102
P e rryridge
A-201
Brighton
A-217
Brighton
A-215
Re dwood
A-222


400
900
750
750
700

-gsum()()


-
-
P e rryridge
Brighton
Re dwood


1300
1500
700

SQL:
SELECT - , SUM()
FROM
GROUP BY -
30

(.)



,
.
-gsum() as
-()

- -
P e rryridge
1300
Brighton
1500
Re dwood
700

SQL:
SELECT - ,
SUM() AS -
FROM
GROUP BY -

31

(.)

().
..
(_, _, )


.
R(, _)
.

R(, _) _gAVG()
()

32


()
.


,
.

null


:
o

null
.

33


-
L-170
L-230
L-260

-
Downtown
Redwood
Perryridge


3000
4000
1700


-
Jones
Smith
Hayes

-
L-170
L-230
L-155

-
34

-
:

- -
L-170
Downtown
L-230
Re dwood


3000
4000

-
J one s
S mith

SQL:
SELECT .-, .-,
., .-
FROM INNER JOIN ON .= .-

-
L-170
L-230
L-260

-
Downtown
Redwood
Perryridge


3000
4000
1700

-
Jones
Smith
null

SQL:
SELECT .-, .-

, ., .-
FROM LEFT JOIN ON
.-= .-
35

-
:

-
L-170
L-230
L-155

-
Downtown
Redwood
null

3000
4000
null

-
Jones
Smith
Hayes

SQL:
.-,
.SELECT
, ., .-
RIGHT JOIN
FROM
ON
.-= .-

-
L-170
L-230
L-260
L-155

-
Downtown
Re dwood
P e rryridge
null


3000
4000
1700
null

-
J one s
S mith
null
Ha ye s


36

Null

null , null,
.
null
.

null
null.

null.

, null
, null
.

37

Null (.)
null
special truth unknown

false
unknown, not (A < 5)
A >= 5


unknown:

OR: (unknown or true)


= true,
(unknown or false)
= unknown
(unknown or unknown) = unknown
AND: (true and unknown)
= unknown,
(false and unknown)
= false,
(unknown and unknown) = unknown
NOT: (not unknown) = unknown


false
unknown

38

Das könnte Ihnen auch gefallen