2017 m. spalio 20 d., penktadienis

Duomenų išrinkimas (SQL JOIN sakinys)

Kelių lentelių jungimas

Viena iš svarbiausių SELECT sakinio galimybių yra dviejų ar daugiau lentelių jungimas (angl. join).

Užklausa, jungianti 2 lenteles:

SELECT <stulpeliai> FROM <lentel1>, <lentel2>
WHERE <jungimo slyga> [AND <paieškos slyga>]

Daugelyje DBVS yra užtikrinamas lentelių jungimas SELECT sakinio fraze JOIN:

SELECT <stulpeliai>
FROM <lentelė1> JOIN <lentelė 2>
ON <jungimo sąlyga>
[WHERE <paieškos sąlyga>]



Pavardės vykdytojų, vykdančių projektą Nr. 1:

SELECT Pavardė
FROM Vykdytojai, Vykdymas
WHERE Vykdytojas = Nr AND Projektas = 1
Sąlyga Vykdytojas = Nr - loginis ryšys tarp dviejų lentelių.



Bendruoju atveju, jei užklausoje dviems lentelms nėra jokios sąlygos ir vienoje iš lentelių yra n eilučių, o kitoje - m eilučių, tai rezultatą sudarys m × n eilučių

Informacija apie tai, kokie vykdytojai kokius projektus vykdo ir kiek kiekvienam projektui skiria
valandų:

SELECT Pavardė, Pavadinimas, Valandos
FROM Vykdytojai, Projektai, Vykdymas
WHERE Projektas = Projektai.Nr AND
Vykdytojas = Vykdytojai.Nr

Stulpelio Nr patikslinimas lentelės vardu yra būtinas, nes dvi lentelės turi stulpelį vardu Nr.


Užklausa, jungianti 2 lenteles:

SELECT <stulpeliai> FROM <lentel1>, <lentel2>
WHERE <jungimo slyga> [AND <paieškos slyga>]

Daugelyje DBVS yra užtikrinamas lentelių jungimas SELECT sakinio fraze JOIN:

SELECT <stulpeliai>
FROM <lentelė1> JOIN <lentelė 2>
ON <jungimo sąlyga>
[WHERE <paieškos sąlyga>]

Struktrinės užklausos



Vienoje užklausoje gali būti ir kita užklausa, t.y. galimos struktūrinės užklausos – „Structured QL“.

Keli SELECT sakiniai yra griežtoje hierarchinėje priklausomybėje.
Pavardės vykdytojų, dalyvaujančių projekte Nr. 1:

SELECT Pavardė FROM Vykdytojai
WHERE Nr IN (SELECT Vykdytojas
FROM Vykdymas
WHERE Projektas = 1)

Komentarų nėra:

Rašyti komentarą

Etiketės