[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
  • DECLARE
  • SCOPE
  • Waarden geven
  • VOORBEELD

Was this helpful?

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

Variabelen

PreviousDELIMITERNextParameters

Last updated 3 years ago

Was this helpful?

Een variabele dient om data via een naam te kunnen aanspreken. Binnen een stored procedure is het mogelijk om variabelen te declareren die dan binnen deze stored procedure kunnen gebruikt worden.

DECLARE

Een variabele declareer je als volgt.

DECLARE naam_variabele datatype [DEFAULT default_waarde];

De verschillende datatypes kan je vinden op:

Dit zijn dezelfde types die je koppelt aan een kolom, bv. INT, DATE, VARCHAR(100), enz.

Je kan een variabele alleen declareren vlak na een BEGIN (of na declaratie van een andere variabele). Dat is geen probleem, want je kan hem wel nog van waarde veranderen na andere statements.

SCOPE

Zoals ook het geval bij programmeertalen heeft een variabele een bepaalde "scope", d.w.z. een bereik of levensduur. Als je een variabele binnen een stored procedure declareert, dan zal deze niet meer bruikbaar zijn wanneer het END statement van deze stored procedure wordt bereikt. Dit stemt overeen met een lokale variabele in een algemene programmeertaal: de variabele bestaat enkel binnen die uitvoering van de body.

Een variabele die met het @-symbool begint is een zgn. sessie-variabele. Deze is beschikbaar zolang de sessie (verbinding met de DB, bijvoorbeeld via Workbench) niet is beëindigd en je hoeft hem niet te declareren. Dit stemt ruwweg overeen met een globale variabele in een algemene programmeertaal. Daarom gebruiken we variabelen zonder @ waar we kunnen en enkel variabelen met @ wanneer lokale scope te begrensd is.

Waarden geven

Je kan een variabele een waarde geven op twee manieren:

  • via SELECT <uitdrukking> FROM <TABEL> INTO <naam variabele>

    • je mag de INTO ook voor de FROM zetten

  • via SET <variabele> = <waarde>

VOORBEELD

USE `aptunes`;
DROP procedure IF EXISTS `GetAantalLidmaatschappen`;

DELIMITER $$
CREATE PROCEDURE `GetAantalLidmaatschappen` ()
BEGIN
    DECLARE TotaalLidmaatschap INT DEFAULT 0;
    SELECT COUNT(*)
    INTO TotaalLidmaatschap
    FROM Lidmaatschappen;
    SELECT TotalLidmaatschap;
END$$

DELIMITER ;

Hierbij declareren we een (lokale) INT variabele TotaalLidmaatschap, die we dan een waarde geven met het uitvoeren van het SQL-statement, waarna de inhoud van deze variabele via de tweede SELECT wordt geselecteerd. Je hebt de variabele niet nodig voor deze taak, maar het voorbeeld toont de syntax.

MySQL :: MySQL 8.0 Reference Manual :: 11 Data Types
Logo