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