[G_PRO] Databanken
  • Welkom
  • Inleiding
    • Benodigdheden
    • Nuttige extra's
    • Mee helpen?
  • Semester 1: databanken intro
    • Installatie van alle software
    • Databanken
      • Inleiding
      • Voorbeeld
      • Wat is een relationele databank
      • Basisstructuren van een relationele databank
      • Diagramnotatie
    • (My)SQL
      • DDL
        • Datatypes
          • Enum
        • CREATE
        • ALTER
        • DROP
        • Sleutels voor identificatie
        • Primaire sleutel toevoegen/verwijderen
        • Primaire sleutel in een nieuwe tabel
        • Vreemde sleutels
        • Relaties-voorstellen
        • Labo
      • DML
        • INSERT
        • UPDATE
        • DELETE
        • LIKE
        • Logische operatoren
        • Vergelijkingen
        • SELECT sorteren
        • Functies
        • Labo
      • SELECT
        • SELECT met clausules
        • SELECT met WHERE
      • Groeperen en samenvatten
        • Aggregaatfuncties
        • SELECT met GROUP BY
        • SELECT met HAVING
        • IN
        • BETWEEN
        • SELECT DISTINCT
        • Labo
      • JOINS
        • JOINs bij simpele relaties
        • JOINs via tussenliggende tabel
        • UPDATE van JOIN
      • apTunes project
  • PRO (GEEN LEERSTOF EN/OF IN OPBOUW)
    • PRO
      • Waarom een databank?
      • Een databank ontwerpen
      • ERM
        • Basisbegrippen
        • Constraints (voorwaarden, beperkingen)
        • Keys (Sleutels)
        • Discussiepunten bij ontwerp in ERM
        • Aanvullende begrippen
        • Herleiden van ERD's tot tabellen
        • Voorbeeld
        • Bibliografie
        • Labo oefeningen
      • NoSQL
      • Blockchain
  • SEMESTER 2: DATABANKEN
    • Join
      • INNER JOIN
      • LEFT JOIN
      • COALESCE
      • RIGHT JOIN
      • LEFT EXCLUDING JOIN
      • RIGHT EXCLUDING JOIN
      • OUTER JOIN
      • OUTER EXCLUDING JOIN
      • Samenvattende flowchart
      • Labo oefeningen
    • Views
      • CREATE
      • ALTER
      • DROP
      • UPDATE
      • RENAME
      • BESLUIT
      • Labo oefeningen
    • Subqueries
      • Een onafhankelijke subquery
      • Subqueries met tijdelijke opslag
      • Labo oefeningen
    • Indexeren
      • mogelijkheden
      • CREATE
      • DROP
      • UNIQUE
      • trage queries opvolgen
    • ERD
      • Referentiële beperkingen
      • Overzicht
      • Labo oefeningen
    • Stored programs
      • Stored procedures
      • CREATE
      • DROP
      • DELIMITER
      • Variabelen
      • Parameters
      • Gerelateerde data invoegen
      • IF -THEN-ELSE-ELSEIF
      • LOOP
      • WHILE
      • REPEAT
      • SIGNAL
      • Error handling
      • RESIGNAL
      • Stored functies
      • Triggers
      • Cursors
      • Transacties en rollbacks
      • Object access control
      • Oefeningen basisgebruik stored procedures
      • Oefeningen control flow
      • Oefeningen stored functions
      • Oefeningen triggers
      • Oefeningen error handling
      • Oefeningen transacties en access control
Powered by GitBook
On this page

Was this helpful?

Export as PDF
  1. SEMESTER 2: DATABANKEN
  2. Subqueries

Een onafhankelijke subquery

Onafhankelijke subqueries zijn subqueries die je op zich kan uitschrijven en uitvoeren. Dat is handig, want het maakt onafhankelijke subqueries makkelijk te testen. Dit zijn de enige soorten die wij in deze cursus zullen behandelen.

Eenvoudig voorbeeld

Veronderstel je hebt een tabel Werknemers van volgende vorm:

Id

Voornaam

Familienaam

Kantoornummer

1

Peter

Spaas

04.04

2

Vincent

Nys

03.128

3

Jef

Inghelbrecht

04.03

Stel dat je ook een tabel Kantoorruimtes hebt van deze vorm. Beamer geeft aan of er een beamer geïnstalleerd is in het kantoor:

Id

Kantoornummer

Beamer

1

04.04

0

2

03.128

1

3

04.03

1

Wat als je nu wil weten wie er in een kantoor zit waarin een beamer beschikbaar is? Dan is een geneste query een optie:

select Voornaam, Familienaam
from Werknemers
where Kantoornummer in (select Kantoornummer from Kantoorruimtes where Beamer);

Start van binnen (de haakjes) en kijk dan naar buiten: select Kantoornummer from Kantoorruimtes where Beamer toont je alle nummers van kantoren met een beamer. Het sleutelwoordje in ken je: het zegt of een waarde aanwezig is in een lijst met waarden. In dit geval is die lijst het resultaat van de geneste query. Op deze manier krijgen we te zien wie in een kantoor met beamer zit. We noemen select Kantoornummer from Kantoorruimtes where Beamer een geneste query of subquery omdat het op zich een SQL-query is, maar wel een die ingebed is in een grotere query. Meerbepaald gaat het om een onafhankelijke subquery: een subquery die je zo kan uitvoeren. Inderdaad, als je een tabel Kantoorruimtes hebt, kan je select Kantoornummer from Kantoorruimtes where Beamer op zich schrijven.

Wat je hier ziet is trouwens een algemene regel: subqueries zetten we tussen haakjes!

Toegegeven, deze query had je kunnen vervangen door een query met een JOIN, zonder geneste query. Maar dat zou niet werken als je de werknemers niet wou selecteren, maar wel wou deleten.

PreviousSubqueriesNextSubqueries met tijdelijke opslag

Last updated 5 years ago

Was this helpful?