.
, , "" . :
SUMMARIZE SP BY (M#) ADD SUM () AS , AVG () AS (_).
:
<->:= <->,
. <-> <->, .
. <->, . , S :
S:=S UNION{(<S#:'S6'>, <: >, <:40>, <_: >)}
:
INSERT <-> INTO <->,
. <-> , <-> ( T).
INSERT (S WHERE _ ='') INTO T
:
UPDATE <-> < >,
< > <>:= < >. , ,
, UPDATE M WHERE ='/' _:=''. _ ( , ) '' M, '/'.
:
DELETE <->,
<-> . . , DELETE S WHERE <20.
. :
<1> Q<2>,
, Q : = (), ¹ ( ), £ (), < ( ), ³ (), > ( ).
|
|
, : " , " :
S[_] = M[_].
" , ?" :
S[M#]=SP[M#].
.
1. , M2:
((SP JOIN S) WHERE M#='M2') [].
2. , M2:
((S [S#] MINUS (SP WHERE M#='M2') [S#]) JOIN S) [].
3. , :
((SP [S#, M#] DIVIDEBY M [M#] JOIN S [].
4. , '/':
(((M WHERE ='/') JOIN SP) [S#] JOIN S) [].
"" . SQL (Structured Query Language), , , , .
3.3.3. QBE
. , : , , . : QBE (Query By Example) ; SQL (Structured Query Language) . , . . (" "), (" ").
. : QBE , SQL .
QBE . , . QBE , . . QBE, QBE, .. 1975-1977 . , , , , .
QBE ( ) .
-, . , QBE . .
|
|
QBE SQL . : , ; , ; [ . 6-8 ]. .
CUST (. 6) : CUST_NUM; - CUST_NAME; , CUST_SUM.
PROD (. 7) : PROD_ID; PROD_NAME; PRICE; STORE.
ORDERS (. 8) : ORDER_NUM; , CUST_NUM; PROD_ID; QTY; DATE_ORDER. , .
6
CUST
CUST_NUM | CUST_NAME | CUST_SUM |
"PC-Style" | ||
"" | ||
.. | ||
"" | ||
.. | ||
"" | ||
"IT-COM" | ||
"" | ||
" PC-" |
7
PROD
PROD_ID | PROD_NAME | PRICE | STORE |
3P | Celeron 2400 | ||
4P | Athlon XP 2600+ | ||
6P | Pentium-4 2600 | ||
4MB | GA 81 PE 1000 | ||
7MB | EPOX 8KRA2+ | ||
3V | Nvidia GeForce FX5600 128mb | ||
4V | Ati Radeon 9500 64mb | ||
1M | DDR 256 MB PC 2700 | ||
2M | DDR 256 MB PC 3200 | ||
3M | DDR 512 MB PC 3200 |
8
ORDERS
ORDER_NUM | CUST_NUM | PROD_ID | QTY | DATE_ORDER |
3P | 20.12.02 | |||
4MB | 20.12.02 | |||
6P | 21.12.02 | |||
3V | 5.01.03 | |||
4P | 17.01.03 | |||
1M | 14.02.03 | |||
7MB | 18..02.03 | |||
2M | 1.03.03 | |||
3P | 5.03.03 | |||
3M | 5.03.03 | |||
4MB | 7.03.03 |
QBE -. - , .
3.8.
" " (. 23):
CUST | CUST_NUM | CUST_NAME | CUST_SUM | |||
| P. |
"P." , , . QBE .
:
, .
.
3.9.
, 90 . (. 24).
:
|
|
PROD_NAME |
DDR 256 MB PC 2700 |
DDR 256 MB PC 3200 |
3.10. ( )
, 100 1000 (. 25).
:
PROD_ID | PROD_NAME | PRICE | STORE |
4P | Athlon XP 2600+ |
, .. "P." . , ( ).
3.11. ( )
, 100 1000 (. 26).
, , , . P. , .
:
PROD_NAME | PRICE | STORE |
Athlon XP 2600+ | ||
Pentium-4 2600 | ||
GA 81 PE 1000 | ||
EPOX 8KRA2+ | ||
Nvidia GeForce FX5600 128mb | ||
Ati Radeon 9500 64mb | ||
DDR 256 MB PC 2700 | ||
DDR 256 MB PC 3200 | ||
DDR 512 MB PC 3200 |
3.12.
, 100 150 . "". , CONDITIONS . . (. 27).
_S, - . - PRICE.
:
PROD_ID | PROD_NAME | PRICE | STORE |
4P | Athlon XP 2600+ | ||
4MB | GA 81 PE 1000 | ||
3V | Nvidia GeForce FX5600 128mb | ||
4V | Ati Radeon 9500 64mb |
3.13. -
, , Nvidia GeForce FX5600 128mb. . 28.
- : " Nvidia GeForce FX5600 128mb _. , , _."
:
PROD_NAME | PRICE |
Pentium-4 2600 | |
Ati Radeon 9500 64mb |
.
3.14.
, -, 20 . . - _CN (. 29).
CUST | CUST_NUM | CUST_NAME | CUST_SUM |
_CN | P. |
ORDERS | ORDER_NUM | CUST_NUM | PROD_ID | QTY | DATE_ORDER |
_CN | P. >20 |
|
|
|
, .
:
CUST_NAME | QTY |
.. | |
.. | |
"" |
3.15.
, Celeron 2400 (. 30).
CUST | CUST_NUM | CUST_NAME | CUST_SUM |
_CN | P. |
ORDERS | ORDER_NUM | CUST_NUM | PROD_ID | QTY | DATE_ORDER |
_CN | _PI |
PROD | PROD_ID | PROD_NAME | PRICE | STORE |
_PI | Celeron 2400 |
|
:
CUST_NAME |
"PC-Style" |
.. |
3.16.
ORDERS (.31).
, . , . ( ). P. , , .
:
ORDER_NUM |
221 =1350 |
222 =3000 |
223 =3200 |
224 =1680 |
225 =2970 |
226 =450 |
227 =1710 |
228 =1050 |
229 =1530 |
230 =1552 |
231 =1000 |
3.17.
, (. 32).
. , _RT, .
QBE : CNT (), SUM (), AVG (), MIN (), MAX (), UN (), ALL ( , ).
3.18. MAX
. . 33.
, 160 000, .
3.19. AVG
?
. 34.
3.20. CNT
Celeron 2400?
. 35.
3.21. UNQ
?
(. 36).
: 9. UNQ , ( ).
3.22.
, . . .
.
"G." , . , CUST_NUM, . . . , , , (. 37)
:
CUST_NUM | QTY |
3.23.
, (. 38).
:
CUST_NUM |
, , . ( I., D., U.) , , .
3.24.
ORDERS (. 39):
|
|
3.25.
3105 (. 40).
ORDERS 3105.
, 17.01.03. (. 41):
3.26.
Athlon XP 2600+ (. 42).
3.27.
, 5% (. 43).
QBE , .
3.3.4. SQL
SQL (Structured Query Language) , , . SQL , (. 44). SQL :
Ø ;
Ø ;
Ø , . . , , ;
Ø ;
Ø , ;
Ø .
SQL PASCAL, C++, JAVA. , SQL, QBE, . SQL (, . .), . , , , - . . SQL . SQL , ( SQL). , , , C++, JAVA SQL , .
SQL . -, SQL . , SQL , ; /, Internet, .
SQL , . , SQL .
SQL ANSI ISO 1986 . , SQL-89 (1989 .) SQL-92 (1992 .). SQL:1999 ANSI ISO 1999 . SQL3, - .
SQL "-", SQL .