.
, .
, (assertion).
SQL , . , , . (ON UPDATE) (ON DELETE) . SQL 4 , :
CASCADE. . .
SET NULL. , NULL.
SET DEFAULT. , , .
NO ACTION. . ( "" ), .
21.
SELECT, PROJECT, JOIN, INTERSECT, UNION, DEFERENCE, PRODUCT, DIVIDE
: - .
1. . 5 , 3
2. 8 , (. , , ..)
, : , ,
UNION 2 R1, R2 , R . . . .
SELECT CODE, NAME, PRICE FROM R1 UNION SELECT CODE, NAME, PRICE FROM R2
- -
22. 21 .
INTERSECT 2 . , R , . , .
SELECT FROM Store_Information
INTERSECT
SELECT FROM Internet_Sales
SELECT WHERE IN
23. 21
DIFERENCE 2 , . , , , R1, R2
SELECT WHERE NOT IN
SELECT vnum, vname
FROM tverkauf
DIFERENCE
SELECT knum, kname
FROM tkunden
24. 21
|
|
- R1 *k1 () R2 k2 ( ), . R (k1+k2) ( ), R1 R2 , 1 - - R1, 2 R2. -
SELECT [-],[], ([-]*[]) AS [] FROMSELECT T1*T2 FROM T1.T2
25. 21
SELECT R f , . , f. SELECT ALL
SELECT WHERE
26. 21
R[x,y,.z] . R. . . . . . R[0] - , .
R1 PROJECT [PRICE] - PRICE
SELECT
27. 21
Cf(R1, R2) . . f R, . R1*R2 . f.
: , EQUI, RIGHT OUTER JOIN, LEFT OUTER JOIN- , R S, F. F , (>, >=, <, <=, =, <>).
F (=), .
natural JOIN , .
3 :
1. R1*R2 CODE NAME PRICE TOVAR.SKLAD_ID SKLAD.SKLAD_ID SPHOME
2. , , SKLAD_ID .
3. , .
SELECT *FROM , WHERE .=. ( ) SELECT *FROM INNER JOIN ON .=.
28. 21 27
OUTER JOIN , .
:
, . , , NULL.
:
, , .
. . .
SELECT .*, .*
FROM LEFT JOIN
ON .=.;
29. 21
R1 R2 c , , , . , R c , r, s,. - - , R2
|
|
:
R1 R2
code | loc |
A | |
A | |
A | |
B | |
B | |
C | |
D |
Code |
A |
B |
R
Loc |
:
1. .
2. . , ,
3. , . .
30. . , . , , , .
: QBE, SQL
QBE- . . . . , . . . : .
SQL- . . : SQL 89, SQL -92 ( : PL/SQL Oracle, T-SQL (Microsoft)). . . . , ( , , -).
SQL .
. . :
1. - SQL, . . . - . , .
, , .
: