Files
obsidian/WS2324/Datenbank/Unterricht/13 Tutorium/Aufgaben.md

2.1 KiB
Raw Blame History

b)

  1. π Vorname,Nachname,Anrede σ Anrede='Herr' ∧ Nachname ≥ 'D' ∧ Nachname < 'E'Kunde
  2. π Vorname σ Anrede='Frau' ∧ Plz='39846' Kunde
  3. π Artikelname σ Standort='INF'(Lager ⨝ ANummer=Artikelnummer Artikel)
  4. π Bestellnummer,Bestellstatus,Vorname,Nachname σ Anrede='Herr' ∧ Bestellstatus='bestaetigt' (Kunde ⨝ Kundennummer=Kundennummer Bestellung )
  5. π Plz,Strasse,Nachname,Wunschterminσ Wunschtermin≥'23.07.2016'∧ Wunschtermin <'24.07.2016' (Kunde ⨝ Kundennummer=Kundennummer Bestellung) 2 d
  6. SELECT * FROM Artikel order by preis
  7. SELECT vorname, nachname, geburtsdatum FROM kunde WHERE vorname like 'M%' ORDER by geburtsdatum
  8. SELECT COUNT(*) FROM kunde WHERE anrede = 'Frau'
  9. select * from kunde where anrede='Frau' order by geburtsdatum DESC FETCH FIRST 1 ROW ONLY;

a)

CREATE OR REPLACE TRIGGER vor_insert_bestellposition

BEFORE INSERT ON Bestellposition

FOR EACH ROW

DECLARE

    anzahl_bestellungen NUMBER;

BEGIN

    -- Zählen Sie die Anzahl der Bestellungen für den Artikel

    SELECT COUNT(*)

    INTO anzahl_bestellungen

    FROM Bestellposition

    WHERE Artikelnummer = :NEW.Artikelnummer;

  

    -- Überprüfen Sie, ob der Artikel mindestens fünfmal bestellt wurde

    IF anzahl_bestellungen >= 5 THEN

        -- Fügen Sie einen Rabatt von 10% hinzu

        :NEW.Reduktion := 10;

    END IF;

END;

b)

CREATE OR REPLACE PROCEDURE deleteOrder(p_idBestellung IN NUMBER) AS

BEGIN

    -- Löschen von Bestellpositionen für die angegebene Bestellung

    DELETE FROM Bestellposition

    WHERE Bestellnummer = p_idBestellung;

  

    -- Löschen der Bestellung

    DELETE FROM Bestellung

    WHERE Bestellnummer = p_idBestellung;

  

    -- Commit der Transaktion

    COMMIT;

END deleteOrder;
BEGIN

    deleteOrder(50);

END;

c)

create or replace VIEW lol

as

Select

    B.Bestellnummer,

    B.Kundennummer,

    B.Bestelldatum,

    BP.Anzahl,

    A.Artikelname,

    A.Preis

From bestellung B

join Bestellposition BP on B.Bestellnummer = BP.Bestellnummer

join artikel A on BP.Artikelnummer = A.Artikelnummer