[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
  • Scalaire subqueries
  • Oefening 1
  • Oefening 2
  • Oefening 3
  • Subqueries die een kolom produceren
  • Oefening 4
  • Oefening 5
  • Oefening 6
  • Oefening 7
  • Derived tables / afgeleide tabellen
  • Oefening 8

Was this helpful?

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

Labo oefeningen

PreviousSubqueries met tijdelijke opslagNextIndexeren

Last updated 4 years ago

Was this helpful?

Start vanaf het gegeven calibratiescript, 0526__CalibrateDB.sql. Dit vult de database ApDB in met onderstaande structuren:

De database die je hier krijgt is niet elegant ontworpen, maar ze maakt de subqueries die we hier zoeken makkelijker uit te schrijven dan een beter opgesplitste database.

Scalaire subqueries

Oefening 1

Schrijf een script, 0527__Oefening.sql, dat je alle voornamen van studenten toont die korter zijn dan gemiddeld.

Het formaat is:

Voornaam

korte voornaam 1

korte voornaam 2

korte voornaam 3

...

Reminder: in de cursus is een functie terug te vinden om de lengte van een stuk tekst te bepalen. Gebruik het vergrootglas op Gitbook.

Oefening 2

Schrijf een script, 0528__Oefening.sql, dat je al de recentste evaluaties toont. Dat wil zeggen: alle evaluaties die hebben plaatsgevonden op de laatste dag dat er nog evaluaties waren.

Studenten_Id

Vakken_Id

Cijfer

Id 1

Id 4

Cijfer 1

Id 2

Id 5

Cijfer 2

Id 3

Id 6

Cijfer 3

Oefening 3

Schrijf een script, 0529__Oefening.sql, dat je alle studenten (enkel de Id's) toont die een hoger persoonlijk puntengemiddelde hebben dan het algemene gemiddelde. Het persoonlijk gemiddelde is dus het gemiddelde over alle evaluaties van enkel die student en het algemene gemiddelde is het gemiddelde over alle evaluaties in het algemeen.

Id

Id 1

Id 2

Id 3

...

...

Tips:

  • evaluaties van één student neem je samen door te groeperen op het ID van de student aan wie de evaluatie toebehoort

  • gebruik daarna having om het gemiddelde van één student te vergelijken met het algemene gemiddelde

    • het algemene gemiddelde vraag je me een scalaire query

Subqueries die een kolom produceren

Oefening 4

Schrijf een script, 0530__Oefening.sql, dat je de voornamen en familienamen toont van alle studenten die aangesloten zijn bij de studentenvereniging. Doe dit zonder gebruik te maken van JOIN. (Tip: een student is aangesloten bij de vereniging als er een rol bestaat die naar die student verwijst...)

Het formaat:

Voornaam

Familienaam

Voornaam 1

Familienaam 1

Voornaam 2

Familienaam 2

Voornaam 3

Familienaam 3

Oefening 5

Schrijf een script, 0531__Oefening.sql, dat je de voornamen toont die voorkomen bij studenten en personeel en directie.

Voornaam

Voornaam 1

Voornaam 2

Voornaam 3

Oefening 6

Toon in een script 0532__Oefening.sql de namen van directieleden die meer verdienen dan om het even welke werknemer, zonder gebruik te maken van max.

Het formaat:

Voornaam

Familienaam

Voornaam 1

Familienaam 1

Voornaam 2

Familienaam 2

Voornaam 3

Familienaam 3

Oefening 7

Toon in een script 0533__Oefening.sql de namen van directieleden die minder verdienen dan minstens één werknemer, zonder gebruik te maken van max.

Het formaat:

Voornaam

Familienaam

Voornaam 1

Familienaam 1

Voornaam 2

Familienaam 2

Voornaam 3

Familienaam 3

Derived tables / afgeleide tabellen

Oefening 8

Toon in een script 0534__Oefening.sql het laagste puntengemiddelde van alle studenten. Je hoeft de naam van de student er niet bij te tonen.

Het formaat:

Gemiddelde

Een cijfer

(Hier staat maar één rij!)

392KB
0526__Calibratie.sql
0526__Calibratie.sql