1) Alle Kundendaten anzeigen, inkl. Wohnort SELECT Kunde.*, PLZ

Werbung
1) Alle Kundendaten anzeigen, inkl. Wohnort
SELECT Kunde.*, PLZ.Ort FROM Kunde, PLZ
WHERE Kunde.Plz=PLZ.Plz
2) Alle Buchtitel mit dem Namen entsprechenden des Verlags anzeigen.
SELECT Buch.Titel, Verlag.Name FROM Buch, Verlag
WHERE Buch.Verlag=Verlag.Kurzbezeichnung
3) Alle Kunden, die aus dem PLZ-Bereich „4xxx“ kommen.
SELECT * from Kunde WHERE
Plz between 4000 AND 4999
4) Alle Kunden, deren Nachname mit 'M' beginnt
SELECT * FROM Kunde
WHERE Nachname LIKE 'M%'
5) Alle Kunden, die aus dem PLZ-Bereich „4xxx“ kommen und deren Nachname mit 'M'
beginnt, aufsteigend nach Nachnamen sortiert
SELECT * from Kunde
WHERE Plz BETWEEN 4000 AND 4999
AND Nachname LIKE 'M%'
6) Alle Kunden, die aus dem PLZ-Bereich „4xxx“ kommen oder deren Nachname mit 'M'
beginnt, absteigend nach Nachnamen sortiert.
SELECT * FROM Kunde
WHERE Plz BETWEEN 4000 AND 4999
OR Nachname LIKE 'M%'
7) Auflistung wieviele Kunden aus den einzelnen Bundesländern (Regionen) kommen.
SELECT PLZ.Region, COUNT(Kunde.Nr) AS 'Anzahl' FROM Kunde, PLZ
WHERE Kunde.Plz=PLZ.Plz
GROUP BY Region
8) Alle Buchtitel und deren Preis, sowie Name und Ort des Verlags, die im Preisrahmen
von 50 und 110 Euro liegen.
SELECT Titel, Preis, Verlag.Name, PLZ.Ort FROM Buch, Verlag, PLZ
WHERE Buch.Verlag=Verlag.Kurzbezeichnung
AND Verlag.Plz=PLZ.Plz
AND Preis BETWEEN 50 and 110
9) Liste der Autoren, die mit „M“ beginnen, ohne Mehrfachnennung, nach Namen
aufsteigend sortiert.
SELECT DISTINCT Autor FROM Buch
WHERE Autor LIKE 'M%' ORDER BY Autor ASC
10) Die Anzahl der Bücher die „Wirtschaft“ im Titel haben.
SELECT COUNT(Titel) FROM Buch WHERE Titel LIKE '%Wirtschaft%'
11) Titel und Preis des teuersten Buches, sowie des billigsten Buches des Verlages mit der
Kurzbezeichnung „hv“
SELECT Top 1 Titel, Preis
FROM Buch
WHERE Verlag='hv'
ORDER BY Preis asc
UNION
SELECT Top 1 Titel, Preis
FROM Buch
WHERE Verlag='hv'
ORDER BY Preis desc
12) Durchschnittlicher Preis der Bücher des Autors „Meixner“
select AVG(Preis) from Buch where Autor='Meixner'
13) Verlagsname, sowie Preis des billigsten, Durchschnittspreis und Preis des teuersten
Buches des Verlages. Spaltenüberschriften: Verlag, billigstes Buch,
Durchschnittspreis, teuerstes Buch
SELECT Verlag, MIN(Preis) AS "billigstes Buch", AVG(Preis) AS 'Durchschnittspreis',
MAX(Preis) AS "teuerstes Buch"
FROM Buch
GROUP BY Verlag
14) Alle Buchtitel, sowie „Positionspreis“ (über Menge und Preis) der Aufträge mit den
Nummern 9 und 10. Die Auftragsnummer soll als erstes Feld angezeigt werden.
SELECT Artikel.Auftragsnummer, Buch.Titel, SUM(Buch.Preis*Artikel.Menge) AS
'Positionspreis'
FROM Artikel, Buch
WHERE Artikel.Buchnummer=Buch.Nr
AND (Auftragsnummer=9
OR Auftragsnummer=10)
GROUP BY Titel
15) Auflistung der Bücher, die im Lager sind (Bestand!) mit Titel, Preis, Anzahl und dem
Wert der Bücher, welcher in einer Spalte „Wert“ angezeigt werden soll.
SELECT Titel, Preis, Bestand, (Preis*Bestand) AS 'Wert' FROM Buch
WHERE Bestand >0
16) Auflistung der Tage (Datum), an denen mindestens 5 Aufträge eingelangt sind. Auch
die Anzahl der Aufträge soll angezeigt werden.Tip: „having“ verwenden
SELECT Datum, COUNT(Nr) AS 'Auftragseingänge'
FROM Auftrag
GROUP BY Datum
HAVING COUNT(Nr) >4
select Region as Bundesland,
count(Plz)
from PLZ
group by Bundesland
Zeigt mir die Regionen als Bundesland an und zählt die PLZ einer
Region zusammen.
select Region as Bundesland,
count(Plz) as Postleitzahlgebiet
from PLZ
group by Bundesland
order by 2 asc
order by 1= Bundesland
order by 2= Postleitzahlgebiet
asc=Aufsteigend
Order by muss immer als letztes Angeführt werden!!!!!!!!!!!
Select * from Buch
Where Titel like ‘Gitarre%’
Will Bücher aus der Bücherdatenbank suchen, die im Titel
“Gitarre” stehen haben.
% ist so was wie der *
Like ermöglicht eine ungenaue Suche. Gebe ich = ein, sucht er
mir nur jene Titel, die genau diesen Begriff beinhalten.
select Vorname
from Kunde
order by Vorname asc
Vorname wird aufsteigend sortiert
select distinct Vorname
from Kunde
order by Vorname asc
distinct filltert Mehrfachnennungen heraus. Bekomme somit jeden
Vornamen nur 1 mal.
Select Titel, Preis
from Buch
Where Preis <30
Order by Preis desc
Liefert mir alle Bücher mit einem Preis unter 30 und sortiert
die absteigend.
Select Titel, Preis
from Buch
Where Preis between 25 and 30
Order by Preis desc
Liefert mir alle Bücher mit einem Preis zwischen 25 und 30 und
sortiert die absteigend.
Select Titel, Preis from Buch
Where Preis between 25 and 30
And Titel like ‘Mathematik%’
Order by Preis desc
Liefert mir alle Bücher mit einem Preis zwischen 25 und 30 mit
dem Begriff Mathematik im Titel und sortiert diese absteigend.
Select Titel, Preis from Buch
Where Preis between 25 and 30
And Titel not like ‘Mathematik%’
Order by Preis desc
Liefert mir alle Bücher mit einem Preis zwischen 25 und 30 die
nicht den Begriff Mathematik im Titel enthalten und sortiert
diese absteigend.
select b.* , b.Titel
from Artikel a, Buch b
where a.Buchnummer=b.Nr
Diese Abkürzungen a und b sind sehr Hilfreich. Da es sich hier
um Tabellen handelt brauche ich nicht „as“ schreiben.
select a.* , b.Titel, b.Preis*a.Menge as Positionspreis
from Artikel a, Buch b
where a.Buchnummer=b.Nr
b. Preis * a. Mange ist eine Rechnungsfunktion!
select a.* , b.Titel, b.Preis*a.Menge as Positionspreis
from Artikel a, Buch b
where a.Buchnummer=b.Nr
order by Positionspreis desc
Sortiert den Positionspreis (Gesamtpreis der gleichen Bücher),
der höchste Preis steht oben.
Select Artikel.Auftragsnummer,
SUM(Buch.Preis * Artikel.Menge)
FROM Buch, Artikel WHERE (Artikel.Buchnummer = Buch.Nr)
GROUP BY Artikel.Auftragsnummer
ORDER BY 2 DESC
Hier berechne ich die Auftragssumme.
Positionspreise pro Auftrag addieren.
Dazu
muss
ich
die
Typisches Klausurbeispiel! Bei einem SQL-Beispiel sind ungefähr
5-10 Statements einzugeben. Davon 3-4 joints über 3-4 Tabellen!
SELECT Kunde.Vorname, Kunde.Nachname, Artikel.Auftragsnummer,
SUM(Buch.Preis * Artikel.Menge)
FROM Buch, Artikel, Kunde, Auftrag
WHERE (Artikel.Buchnummer = Buch.Nr)
AND (Artikel.Auftragsnummer = Auftrag.Nr)
AND (Auftrag.Kundennummer = Kunde.Nr)
GROUP BY Artikel.Auftragsnummer
ORDER BY 2 DESC
Beispiel:
Angabe:
Bücher, deren Titel mit A beginnen, nach Titel sortiert, die
weniger oder gleich 200 Euro kosten, auslaufend sind und einen
Bestand von über 50 haben. Nur Titel und Preis werden angezeigt.
Lösung
SELECT Buch.Titel, Buch.Preis
FROM Buch
WHERE Preis <=200
AND Titel like 'A%'
AND Bestand >50
AND Auslaufend ='y'
ORDER BY Titel
Herunterladen