23
Vaicājumu projektēšanas grafiskā metode 1. Tabulu izmantošana. 2. Datu vienību izmantošana. Noteikumi RezultātsNo teikumi 1

SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Embed Size (px)

Citation preview

Page 1: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Vaicājumu projektēšanas grafiskā metode

1. Tabulu izmantošana.

2. Datu vienību izmantošana.

Noteikumi

Noteikumi

RezultātsNoteikumi

1

Page 2: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Projekcijas, selekcijas un grupēšanas grafiskais attēlojums

a) Kolonu atlase (projekcijas)

b) Rindu (rakstu) atlase (selekcija)

c) Rindu (rakstu) grupēšana un grupu vērtību agregātu veidošana

Tabula AAK1 K2 K3 K4 K5 K6

Tabula BBK1 K2 K3 K4 K5 K6

Tabula CCK1 K2 K3 K4 K5 K6

b

1. grupa

2. grupa

select ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]from where

selectfrom where K2 = ... and > ... or < ... != ... Like "*A?" IS NULL NOT IN (...)

selectfrom wheregroup byhaving COUNT(*), SUM(...), MAX(...), MIN(...), AVG(...)

∑∑

∑∑

2

Page 3: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Tabulu saistības varianti

1. Tabulu saite 1 : 1 (viens ar vienu):

2. Tabulu saite 1 : N (viens ar daudziem):

Tabula AAK1 K2 K3abc

Tabula BBK4 K5 K6abc

Apvienotā tabula AABBK1 K

2K3 K4 K

5K6

a ab bc c

Tabula AAK1 K2 K3ab

Tabula BBK4 K5 K6

aabb

Apvienotā tabula AABBK1 K

2K3 K4 K

5K6

a aa ab bb b

selectfrom AA, BBwhere AA.K1 = BB.K4

selectfrom AA, BBwhere AA.K1 = BB.K6

3

Page 4: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Tabulu saistības varianti (turpinājums)

3. Tabulas sasaiste ar divām jau sasaistītām tabulām:

Tabula AAK1 K2 K3ab

Tabula BBK4 K5 K6

aabb

Apvienotā tabula AABBK1 K

2K3 K4 K

5K6

a aa ab bb b

selectfrom CC, ( select * from AA, BB where AA.K1 = BB.K6) as dwhere K7 = d.K6

Tabula CCK7 K8 K9ab

Apvienotā tabula AABB_CCK1

K2 K3

K4 K5

K6 K7 K8 K9

a a aa a ab b bb b b

4

Page 5: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Tabulu saistības varianti (turpinājums)

4. Pamatvaicājuma un pakārtotā vaicājuma tabulu sasaiste. Korelētie vaicājumi:

Tabula AAK1 K2 K3ab Tabula BB

K4 K5 K6aabb

select ...from AAwhere ...

select ...from BBwhere BB.K6 = AA.K1;

1

2 1 2

5

Page 6: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Pamatvaicājums un apakšvaicājumi (pakārtotie vaicājumi)

1. Apakšvaicājums SELECT rindā. Apakšvaicājums drīkst atgriezt tikai vienu rakstu jeb rindu:

select AA.K1, AA.K2, (select BB.K7, BB.K8 from BB where BB.K5 =1) from AAwhere ...

2. Apakšvaicājums WHERE rindā. Apakšvaicājums drīkst atgriezt vienu vērtību:

select from AAwhere AA.K2 = (select BB.K7 from BB where BB.K8 =3);

vai vērtību kopu:

select from AAwhere AA.K2 ALL (select BB.K7 from BB where BB.K8 =3); ANY SOME

a

a

abc

6

Page 7: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Pamatvaicājums un apakšvaicājumi (pakārtotie vaicājumi)

3. Apakšvaicājums HAVING rindā. Apakšvaicājums drīkst atgriezt vienu vērtību:

select from AAgroup byhaving COUNT(*) = (select COUNT(*) from BB where BB.K8 =3 group by ...);

vai vērtību kopu:

select from AAhaving COUNT(*) ALL (select COUNT(*) from BB group by ...); ANY SOME

10

7510

7

Page 8: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Pamatvaicājums un apakšvaicājumi (pakārtotie vaicājumi)

4. Konstrukcijas [NOT] EXISTS izmantošana. Tā nosaka vai eksistē kādā rinda, kurai izpildās definētie noteikumi (piemēram, vērtību vienādība).

Tabula AAK1 K2 K3ab Tabula BB

K4 K5 K6cdbe

1

2 1 2

select ...from AAwhere NOT EXISTS

(select ...from BBwhere BB.K6 = AA.K1);

8

Page 9: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Darbības ar kopām: apvienošana (UNION, UNION ALL), starpība (MINUS), pārklāšanās (INTERSECT)

(vaicājums)UNION | UNION ALL | MINUS INTERSECT(vaicājums)

UNION ALL UNION

MINUS INTERSECT

Tabula AAK1 K2 K3ab

Tabula BBK4 K5 K6cb

Rezultātsabcb

Tabula AAK1 K2 K3ab

Tabula BBK4 K5 K6cb

Rezultātsabc

Tabula AAK1 K2 K3ab

Tabula BBK4 K5 K6cb

Rezultātsa

Tabula AAK1 K2 K3ab

Tabula BBK4 K5 K6cb

Rezultātsb

9

Page 10: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Vaicājumu projektēšanas grafiskās metodes izmantošanaTabula FIRMAS

F_NUM F_NOS DIB_DAT STAT_KAP TEL ADRFirmas numurs Nosaukums Dibināšanas

datumsStatūtu kapitāls Telefons Adrese

1 AA 1998.12.05 50 000,00 Ls 7222222 Rīga, Garā iela 152 BB 1998.05.07 20 000,00 Ls 7111111 Rīga, Zirņu iela 33 CC 1999.03.05 100 000,00 Ls 7333333 Rīga, Avotu 12

Tabula DARBINIEKI

D_NUM UZV VAR AMATS DZIM NUM_FIRDarbinieka

numurs Uzvārds Vārds Amats Dzimums Firmas numurs

1 Koks Juris galdnieks vīrietis 22 Zars Inese krāsotājs sieviete 23 Celms Liene uzkopēja sieviete 14 Koks Liene sekretāre sieviete 15 Zars Varis galdnieks vīrietis 3

Tabula DARBI

NUM NOS IZP_DAT STUNDAS ST_CENA DARBIN_NUMDarba

numurs Nosaukums Izpildes datums Stundas Stundas

cenaDarbinieka

numurs1 darbs1 1999.03.03. 5 2,00 Ls 12 darbs2 1999.05.03. 10 1,50 Ls 13 darbs3 1999.07.03. 12 2,00 Ls 14 darbs4 1999.01.03. 11 2,00 Ls 25 darbs5 1999.03.03. 8 1,80 Ls 26 darbs6 1999.05.03. 10 2,50 Ls 37 darbs7 1999.02.03. 14 2,20 Ls 38 darbs8 1999.05.03. 10 4,00 Ls 4

10

Page 11: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

1. piemērs. Tabula ar grupēšanu un lauka ierobežojumu.Cik sievietes strādā 2. firmā?

select COUNT(NUM_FIR) as Daudzumsfrom DARBINIEKIwhere NUM_FIR =2 and DZIM = "sieviete"group by NUM_FIR;

COUNT(*)Tabula DARBINIEKI

D_NUM UZV VAR AMATS

DZIM NUM_FIR

sieviete2

Daudzums1

11

Page 12: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

2. piemērs. Divas saistītas tabulas, viena ar grupēšanu.Cik katrs darbinieks ir nopelnījis?

select a.UZV, a.VAR, c.Maksafrom DARBINIEKI a, (select SUM(b.STUNDAS*b.ST_CENA) as Maksa, b.DARBIN_NUM as DAR_NUM from DARBI b group by b.DARBIN_NUM) cWHERE a.D_NUM = c.DAR_NUM;

UZV VARTabula DARBINIEKI a

D_NUM UZV VAR AMATS

DZIM NUM_FIR

VADIT_NUM

Tabula DARBI bNUM NOS IZP_DAT STUNDAS ST_CENA DARBIN_NUM

grupēšana

grupēšana

UZV VAR MaksaKoks Juris 49Zars Inese 36,4

Celms Liene 55,8Koks Liene 40

SUM(STUNDAS*ST_CENA)

SUM(STUNDAS*ST_CENA)

Rezultāta tabula cUZV VAR SUM(STUNDAS*ST_CENA)

12

Page 13: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

3. piemērs. Divas saistītas tabulas katra ar grupēšanu.Cik katra amata pārstāvji nopelnījuši?

select a.AMATS, SUM(c.Maksa) as Kopējā_samaksafrom DARBINIEKI a, (select SUM(b.STUNDAS*b.ST_CENA) as Maksa, b.DARBIN_NUM as DAR_NUM from DARBI b group by b.DARBIN_NUM) cwhere a.D_NUM = c.DAR_NUMgroup by a.AMATS;

Tabula DARBI bNUM NOS IZP_DA

TSTUNDAS ST_CENA DARBIN_NUM

grup.

grup.

Tabula DARBINIEKIi aD_NUM UZV VAR AMATS DZIM NUM_FIR VADIT_NUM

grup.

grup.

Amats Kopējā_samaksagaldnieks 49krāsotājs 36,4sekretāre 40uzkopēja 55,8

SUM(STUNDAS*ST_CENA)SUM(STUNDAS*ST_CENA)

Rezultāta tabula AMATS SUM(STUNDAS*ST_CENA)

13

Page 14: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

Šablons vaicājuma veidošanai

Tabula

Tabula

Tabula

Tabula

Saites noteikums

Saites noteikums

Saites noteikums

14

Page 15: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

4. piemērs. Kurās firmās ir vairāk darbinieku kā firmā CC?

SELECT A.F_NOS, COUNT(B.NUM_FIR) AS SkaitsFROM Firmas A, Darbinieki BWHERE A.F_NUM = B.NUM_FIRGROUP BY B.NUM_FIR, A.F_NOSHAVING COUNT(B.NUM_FIR) > (SELECT COUNT(D.NUM_FIR) FROM Firmas C, Darbinieki D WHERE C.F_NUM = D.NUM_FIR AND C.F_NOS = "CC" GROUP BY D.NUM_FIR) ;

F_NOSTabula Firmas A

F_NUM F_NOS DIB_DAT STAT_KAP TEL ADR

COUNT(B.NUM_FIR)Tabula Darbinieki B

D_NUM UZV VAR AMATS DZIM NUM_FIR

Tabula Firmas CF_NUM F_NOS DIB_DAT STAT_KAP TEL ADR

CC

COUNT(D.NUM_FIR)Tabula Darbinieki D

D_NUM UZV VAR AMATS DZIM NUM_FIR

COUNT(B.NUM_FIR) > COUNT(D.NUM_FIR)

15

Page 16: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

5. piemērs. Izvadīt darbiniekus ar saviem vadītājiem

SELECT C.UZVARDS, C.VARDS, C.AMATS, D.UZV, D.VAR, D.AMATSFROM ( SELECT A.UZV AS UZVARDS, A.VAR AS VARDS, A.AMATS, A.D_NUM AS DARBIN_NUMURS FROM Darbinieki A WHERE A.VADIT_NUM Is Null) AS C, (SELECT B.UZV, B.VAR, B.AMATS, B.VADIT_NUM FROM Darbinieki B WHERE B.VADIT_NUM Is Not Null) AS D WHERE D.VADIT_NUM = C.DARBIN_NUMURS;

Atvasinātā tabula CD_NUM

UZVARDS VARDS AMATS

Tabula Darbinieki A (ne vadītāji)D_NU

MUZV VAR AMATS DZIM NUM_FI

RVADIT_NUM

Is Null

Atvasinātā tabula DUZV VAR AMATS VADIT_NUM

Tabula Darbinieki B (vadītāji)D_NUM UZV VAR AMATS DZIM NUM_FI

RVADIT_NUM

Is Not Null

16

Page 17: SQL un MDX (Multiple Dimensional eXpression language ... Web viewVaicājumu projektēšanas grafiskā metode. 1. Tabulu izmantošana. Noteikumi. Noteikumi. RezultātsNoteikumi. 2

6. piemērs. Pakārtotais vaicājums SELECT rindā.Iegūt firmu darbinieku skaitu.

select a.NOS asosaukums, (select COUNT(*) from DARBINIEKI b where b.NUM_FIR = a.F_NUM group by b.NUM_FIR) Skaitsfrom FIRMAS a;

COUNT(*)Tabula DARBINIEKI b

D_NUM UZV VAR AMATS DZIM NUM_FIR VADIT_NUM

Tabula FIRMAS aF_NUM F_NOS DIB_DAT STAT_KAP TEL ADR

17