[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
  • Vraag 1
  • Vraag 2
  • Vraag 3
  • Vraag 4

Was this helpful?

Export as PDF
  1. SEMESTER 2: DATABANKEN
  2. Stored programs

Oefeningen basisgebruik stored procedures

We werken met de aptunes-database. Activeer deze database in elk script. Gebruik telkens het meest specifieke parametertype dat je kan toepassen. Gebruik dus geen INOUT parameters als het ook met een gewone IN of OUT parameter kan.

Vraag 1

Schrijf een stored procedure GetLiedjes met één parameter (bepaal zelf de juiste "richting", het type is VARCHAR(50)). Deze toont je alle titels van liedjes waarin een meegegeven stuk tekst voorkomt.

Bijvoorbeeld: CALL GetLiedjes('web') toont je alle liedjes in het systeem die het woordje "web" in de titel bevatten (vooraan, achteraan, in het midden,...).

Het outputformaat is:

Titel

...

(hier staan normaal meerdere rijen)

Plaats enkel de definitie in het script, geen oproep. Noem het script dat voor de definitie zorgt 0640__Oefening.sql.

Vraag 2

Schrijf een stored procedure, NumberOfGenres, die je vertelt hoeveel verschillende genres er zijn. Het aantal zal een TINYINT zijn.

Je moet ze als volgt kunnen oproepen: CALL NumberOfGenres(@Aantal). De procedure toont niets, maar nadat ze is uitgevoerd, moet de gebruiker SELECT @Aantal kunnen uitvoeren.

Plaats enkel de definitie in het script, geen oproep. Noem het script dat voor de definitie zorgt 0641__Oefening.sql.

Vraag 3

Schrijf een stored procedure, CleanupOldMemberships. Deze doet twee dingen:

  • Ze verwijdert alle lidmaatschappen van muzikanten die beëindigd zijn voor een gegeven datum.

    • Lidmaatschappen met einddatum NULL blijven sowieso staan.

  • Ze vertelt ons via een parameter van type INT hoe veel lidmaatschappen tijdens de uitvoering zijn verwijderd.

Je moet ze als volgt kunnen oproepen: CALL CleanupOldMemberships(someDate,@numberCleaned).

Er verschijnt niets op het scherm wanneer je de stored procedure oproept. Je zou SELECT @numberCleaned moeten doen om te weten hoe veel lidmaatschappen verwijderd zijn.

Tip: je kan niet meer zien hoe veel lidmaatschappen verwijderd zijn als ze al weg zijn, dus hou eerst de waarde bij en verwijder dan pas de lidmaatschappen...

Plaats enkel de definitie in het script, geen oproep. Noem het script dat voor de definitie zorgt 0642__Oefening.sql.

Vraag 4

Schrijf een stored procedure, CreateAndReleaseAlbum. Deze maakt een nieuw album aan en koppelt het meteen aan een artiest door ook een record toe te voegen aan AlbumReleases.

Deze procedure heeft twee parameters: een parameter titel voor de titel (van type VARCHAR(100)) en een parameter bands_Id (van type INT). Ze levert geen output en je het is mogelijk dat meerdere personen tegelijkertijd gebruik maken van de database.

Plaats enkel de definitie in het script, geen oproep. Noem het script dat voor de definitie zorgt 0643__Oefening.sql.

PreviousObject access controlNextOefeningen control flow

Last updated 2 years ago

Was this helpful?