Die Daten aller Teile einschließlich der bestellten Anzahl
select T.*, sum (BestAnz) as BestellteAnzahl
from Teil T join (select TeilNr, Anzahl
from Position) as BAnzahl(TeilNr, BestAnz)
on T.TeilNr = BAnzahl.TeilNr
group by T.TeilNr, T.Bezeichnung, T.Material, T.Gewicht, T.Preis
from Teil T join (select TeilNr, Anzahl
from Position) as BAnzahl(TeilNr, BestAnz)
on T.TeilNr = BAnzahl.TeilNr
group by T.TeilNr, T.Bezeichnung, T.Material, T.Gewicht, T.Preis
Tags: sql
Source:
Source:
Was bedeutet record identifier?
Der Index in der Datenbank ist eine Struktur (ein so genannter B+-Baum), die es ermöglicht, in wenigen Schritten zum gesuchten Eintrag zu kommen. Dieser hat dann einen Verweis, die Satzkennung oder „record identifier“ (RID), die auf die gewünschte Zeile der Tabelle bzw. deren Speicherort auf einer Datenseite zeigt.
Welche Update Anomalien gibt es?
Es gibt drei Anomalien, die unter UPDATE-ANOMALIEN zusammengefasst werden und bei einem unsauber
realisierten Datenbank-Entwurf auftauchen können:
- Löschanomalie
- Einfügeanomalie
- Änderungsanomalie
Löschanomalie:
Bei der Löschanomalie kann es passieren, dass man durch das bewusste Löschen eines Datensatzes, unbewusst
Informationen verliert, die man später wieder gebraucht hätte.
Einfüge Anomalie:
Liegt ein fehlerhaftes Datenbankdesign vor, kann es bei der Einfüge-Anomalie passieren das Daten gar nicht
gespeichert/angenommen werden, wenn beispielsweise für den Primärschlüssel kein Wert eingegeben wird, od
es führt bei einer nicht vollständigen Eingabe von Daten zu Inkonsistenz.
Änderungs- / Update Anomalie:
Bei der Änderungs-Anomalie oder auch Aktualisierungs-Anomalie genannt, werden gleiche Attribute eines
Datensatzes nicht automatisch geändert. So entsteht eine Inkonsistenz der Daten. Man muss per Hand alle
Einträge mühsam aktualisieren, es darf kein Fehler unterlaufen ansonsten führt es zur Inkonsistenz
realisierten Datenbank-Entwurf auftauchen können:
- Löschanomalie
- Einfügeanomalie
- Änderungsanomalie
Löschanomalie:
Bei der Löschanomalie kann es passieren, dass man durch das bewusste Löschen eines Datensatzes, unbewusst
Informationen verliert, die man später wieder gebraucht hätte.
Einfüge Anomalie:
Liegt ein fehlerhaftes Datenbankdesign vor, kann es bei der Einfüge-Anomalie passieren das Daten gar nicht
gespeichert/angenommen werden, wenn beispielsweise für den Primärschlüssel kein Wert eingegeben wird, od
es führt bei einer nicht vollständigen Eingabe von Daten zu Inkonsistenz.
Änderungs- / Update Anomalie:
Bei der Änderungs-Anomalie oder auch Aktualisierungs-Anomalie genannt, werden gleiche Attribute eines
Datensatzes nicht automatisch geändert. So entsteht eine Inkonsistenz der Daten. Man muss per Hand alle
Einträge mühsam aktualisieren, es darf kein Fehler unterlaufen ansonsten führt es zur Inkonsistenz
SQL: In der Tabelle Booking sollte ein Attribut X neu definiert werden. Es gibt
verschiedene Lösungswege, z.B. mit einem Trigger.
Gefragt war wie man es hinbekommt das Feld duration immer die differenz von
datefrom - dateto anzeigt.
verschiedene Lösungswege, z.B. mit einem Trigger.
Gefragt war wie man es hinbekommt das Feld duration immer die differenz von
datefrom - dateto anzeigt.
Ich hoffe richtig!? ;-)
create trigger x
after insert or update of datefrom or dateto on Booking
for each statement [wenn jede Zeile, dann row anstatt statement]
begin
update Booking
set duration = dateto - datefrom
end
create trigger x
after insert or update of datefrom or dateto on Booking
for each statement [wenn jede Zeile, dann row anstatt statement]
begin
update Booking
set duration = dateto - datefrom
end
Tags: sql, trigger
Source:
Source:
Geben Sie für folgende Abfrage eine Formulierung in SQL an:
"AuftragsNr, KundenNr und die Anzahl bestellter Teile je Auftrag."
Bedenken Sie, dass es zwar Positionen ohne Auftrag geben kann, sehr wohl aber Aufträge ohne Position. Für solche Aufträge soll als Anzahl 0 erscheinen.
"AuftragsNr, KundenNr und die Anzahl bestellter Teile je Auftrag."
Bedenken Sie, dass es zwar Positionen ohne Auftrag geben kann, sehr wohl aber Aufträge ohne Position. Für solche Aufträge soll als Anzahl 0 erscheinen.
select A.AuftragsNr, A.KundenNr, coalesce(cast(sum(P.Anzahl) as int), 0)
from Auftrag A
left join Position P on P.AuftragsNr = A.AuftragsNr
Group by A.AuftragsNr, A.KundenNr
from Auftrag A
left join Position P on P.AuftragsNr = A.AuftragsNr
Group by A.AuftragsNr, A.KundenNr
Tags: sql
Source:
Source:
In SQL:
Diejenigen Teile, die schwerer sind als das durchschnittliche Gewicht aller Teile aus dem gleichen Material.
Diejenigen Teile, die schwerer sind als das durchschnittliche Gewicht aller Teile aus dem gleichen Material.
select T.TeilNr
from Teil T
where T.Gewicht > all (select avg(Gewicht)
from Teil T2
where T.Material = T2.Material)
from Teil T
where T.Gewicht > all (select avg(Gewicht)
from Teil T2
where T.Material = T2.Material)
Tags: sql
Source:
Source:
In SQL:
Lösche alle Auftragspositionen, deren Aufträge weniger als 3 Positionen enthalten.
Lösche alle Auftragspositionen, deren Aufträge weniger als 3 Positionen enthalten.
delete from Position
where AuftragsNr in (select AuftragsNr
from Position
group by AuftragsNr
having count(*) < 3)
where AuftragsNr in (select AuftragsNr
from Position
group by AuftragsNr
having count(*) < 3)
Tags: sql
Source:
Source:
Flashcard set info:
Author: Lorenzo van Matterho...
Main topic: Wirtschaftsinformatik
Topic: Datenbanken
Published: 10.03.2010