5.7.3 Verzamelingsoperatoren (Union, Difference, Intersect) Flashcards

1
Q

Geef een lijst van de medewerkersnamen en de afdelingsnamen.

A

SELECT m.naam
FROM medewerkers m
UNION
SELECT a.naam
FROM afdelingen a;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Geef een lijst met namen van afdelingen en namen van cursussen die respectievelijk in Hasselt gevestigd zijn of daar doorgaan.

A

SELECT a.naam
FROM afdelingen a
WHERE a.locatie = ‘HASSELT’
UNION
SELECT c.omschrijving
FROM uitvoeringen u
JOIN cursussen c
ON u.cursus = c.code
WHERE u.locatie = ‘HASSELT’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Geef de medewerkers die geen manager zijn.

A

select mnr, naam, functie
from medewerkers
where functie != ‘MANAGER’;

select mnr, naam, functie
from medewerkers
minus
select mnr, naam, functie
from medewerkers
where functie = ‘MANAGER’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Geef de locaties waar wel cursussen doorgaan maar waar geen afdelingen gevestigd zijn.

A

SELECT u.locatie
FROM uitvoeringen u
MINUS
SELECT a.locatie
FROM afdelingen a;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Geef de naam en begindatum van elke cursus die alleen door de medewerker 7844 gevolgd is.

A

select cursus, begindatum
from inschrijvingen
where cursist = 7844;

select cursus, begindatum
from inschrijvingen
intersect
select cursus, begindatum
from inschrijvingen
where cursist = 7844;

select cursus, begindatum
from inschrijvingen
minus
select cursus, begindatum
from inschrijvingen
where cursist != 7844;

select distinct c.omschrijving, i.begindatum
from inschrijvingen i
join uitvoeringen u
on i.cursus = u.cursus
join cursussen c
on u.cursus = c.code
where i.cursist = 7844;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Geef de cursuscode van de cursussen die E. Jacobs niet gevolg heeft.

A

1ste query:
select code
from cursussen;

2de query:
select i.cursus, m.naam, m.voorn
from inschrijvingen i
join medewerkers m
on i.cursist = m.mnr
where m.naam = ‘JACOBS’ and m.voorn like ‘E%’;

select code
from cursussen
minus
select i.cursus
from inschrijvingen i
join medewerkers m
on i.cursist = m.mnr
where m.naam = ‘JACOBS’ and m.voorn like ‘E%’;

SELECT i.cursus
FROM inschrijvingen i
MINUS
SELECT i.cursus
FROM inschrijvingen i
JOIN medewerkers m
ON i.cursist = m.mnr
WHERE m.naam = ‘JACOBS’ AND m.voorn LIKE ‘E%’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Geef de namen van de medewerkers die geen cursussen gevolgd hebben.

A

SELECT m.naam
FROM medewerkers m
MINUS
SELECT DISTINCT m.naam
FROM medewerkers m
JOIN inschrijvingen i
ON m.mnr = i.cursist;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

In welke plaatsen is minstens één afdeling gevestigd en wordt minstens één cursus gepland.

A

SELECT a.locatie
FROM afdelingen a
INTERSECT
SELECT u.locatie
FROM uitvoeringen u;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Geef de nummers van de medewerkers die de cursus ‘Windows Server’ gevolgd hebben en in de afdeling Verkoop werken.

A

select i.cursist
from inschrijvingen i
join uitvoeringen u
on i.cursus = u.cursus and i.begindatum = u.begindatum
join cursussen c
on u.cursus = c.code
where c.omschrijving = ‘Windows Server’
intersect
select m.mnr
from medewerkers m
join afdelingen a
on m.afd = a.anr
where a.naam = ‘VERKOOP’;

select i.cursist
from inschrijvingen i
join uitvoeringen u
on i.cursus = u.cursus and i.begindatum = u.begindatum
join cursussen c
on u.cursus = c.code
where c.omschrijving = ‘Windows Server’
intersect
select mnr
from medewerkers
where afd in (select anr from afdelingen where naam = ‘VERKOOP’);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly