[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
  • UPDATE VIEW
  • UPDATE VIEW INFORMATIE

Was this helpful?

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

UPDATE

PreviousDROPNextRENAME

Last updated 3 years ago

Was this helpful?

Views kunnen onder bepaalde omstandigheden worden aangepast, ttz. de inhoud van de view kan op dezelfde wijze worden benaderd als een gewone tabel.

M.a.w. de zijn ook hier te gebruiken (met bepaalde technische beperkingen).

Er zijn hierbij wel enkele uitzonderingen in die zin dat bij de creatie van de view de query o.a. geen van volgende statements mag bevatten.

  • MIN, MAX, SUM, AVG en COUNT

  • DISTINCT

  • GROUP BY

  • HAVING

  • UNION

  • LEFT JOIN of RIGHT JOIN (en dus ook de EXCLUDING versies en OUTER JOIN via de workaround)

  • Merk op: INNER JOIN mag wel!

Waarom zijn juist deze clausules niet toegelaten? De meeste ervan groeperen informatie op zo'n manier dat je de groepering niet altijd ongedaan kan maken. De niet-toegelaten JOINs combineren informatie met NULL-waarden. Het zou niet zinvol zijn deze NULL-waarden aan te passen, want de aanpassingen zouden verloren gaan bij het herberekenen van de view.

UPDATE VIEW

We baseren ons op de view die we onder de rubriek hebben aangemaakt. Deze gebruikt een INNER JOIN, maar dat verbiedt niet dat we updates doen.

USE ApDB;
UPDATE TakenLeden
SET Omschrijving = 'frisdrank voorzien'
WHERE Voornaam = 'Yannick';

Inspecteer TakenLeden en Leden nadat je deze opdracht hebt uitgevoerd. Wat zie je?

In een updatable view kan bepaald worden waar dergelijke aanpassingen echt moeten plaatsvinden. Volgende figuur toont het idee:

Er zijn helaas grenzen aan wat mogelijk is. Experimenteer met enkele DML-operaties met TakenLeden. Probeer o.a. een INSERT en een DELETE van telkens één rij.

UPDATE VIEW INFORMATIE

Je kan nagaan of een view aanpasbaar is door in de metadatabank te kijken.

SELECT table_name, is_updatable
FROM information_schema.views
WHERE table_schema = 'ApDB';
DML-commando's
CREATE