Syntax SELECT DISTINCT Spalte1, Spalte2, Spalte3, SUM(Spalte3) AS SummeSpalte3 FROM Tabelle WHERE Spalte1>wert1 AND Spalte2 IS NOT NULL GROUP BY Spalte2 HAVING sum(Spalte3)>wert2 ORDER BY Spalte2 ASC Verschachteltes Select: Bedingung ist, dass das zweite SELECT maximal einen Wert zurückgibt. Dabei bezieht sich das eigentliche SELECT auf das Ergebnis einer zweiten Unterabfrage. Ermittle die Artikel aus der Abteilung Getränke, die überdurchschnittlich hohe Einnahmen gebracht haben SELECT Artikel FROM Supermarkt WHERE Abteilung = 'Getränke' AND (verkaufteAnzahl*Preis) >(SELECT AVG(verkaufteAnzahl*Preis) FROM Supermarkt); INNER JOIN: zwei Tabellen verknüpfen, anhand von gleichen Werten gewisser Spalten FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Id = Tabelle2.Id OUTER JOIN: FROM Tabelle1 OUTER JOIN Tabelle2 ON Tabelle1.Id = Tabelle2.Id Arithmetische Operatoren: SELECT (Preis*Menge) AS Gesamtmenge, Artikelname FROM... WHERE: Mit bestimmten Bedingungen können bestimmte Zeilen ausgewählt werden. WHERE Spaltenname1 = Beispiel OR (Spaltenname2 < Beispiel2 AND Spaltenname2 > Beispiel3) BETWEEN: Gibt einen Bereich an, in dem sich ein Ausdruck (Wert einer Spalte) befinden soll. WHERE Spaltenname1 (NOT) BETWEEN 10 AND 30 IS NULL: Überprüft in einer Tabelle ob ein leeres Feld vorhanden ist. WHERE Spaltenname1 IS (NOT) NULL IN: Wird benutzt, wenn man mit einer Wertmenge und nicht ausschließlich mit einem einzigen Wert vergleichen will. WHERE Spaltenname1 (NOT) IN (x,y,z) Ist Spaltenname1 (NICHT) x oder y oder z? GROUP BY: Fasst alle Zeilen zusammen, die identische Werte haben. GROUP BY KundenId Alle Spalten mit der selben KundenId werden zusammengerafft, wenn man z.B. schaun will, wieviele Bestellungen ein Kunde gemacht hat Gruppierung nach mehreren Entitätsmengen (KundenId, Datum) auch möglich AND, OR, NOT: Kann man mit verschiedenen Bedingungen in einer Abfrage verbinden. HAVING: Siehe WHERE, nur mit Aggregatfunktionen kombinierbar. HAVING SUM(Spaltenname1) < X Immer mit Agregatsfunktion und mit Group by. regelt was mit den zusammengerafften inhalten passiert, die nicht gegroupt werden. (werden die zusammengerechnet, oder was?) SELECT SUM(Preis*Menge) AS Gesamtpreis, Artikel FROM Bestellung GROUP BY Artikel HAVING SUM(Preis*Menge)>10; ORDER BY: Sortiert Tabellen entweder absteigend (DESC) oder aufsteigend (ASC) nach einer bestimmten Spalte. ORDER BY Spaltenname1 LIKE: Wird benutzt, wenn man Werte einer Spalte unter bestimmten Kriterien, das heißt mit Teilangaben, ausgeben will. WHERE Spaltenname LIKE 'B*l' //Beispiel, Breistil, .. [Wildcard für mehrere Buchstaben] Aggregatfunktionen: COUNT: Liefert die Anzahl der Zeilen mit gleichem Spaltennamen. SUM: Liefert die Summe der Werte einer Spalte zurück und ist deshalb nur für numerische Felder gültig. Zeichenfelder geben eine Fehlermeldung zurück. AVG: Der Durschnittswert nur bei numerischen Feldern MIN: Der Mindestwert auch bei Zeichenfeldern einsetzbar. MAX: DER Maximalwert auch bei Zeichenfeldern einsetzbar. o gehen nicht mit WHERE zusammen, dafür direkt im SELECT: SELECT MAX(Preis) FROM Supermarkt... Distinct SELECT DISTINCT Spalte1,Spalte2,Spalte3 Jede Zeile die im Ergebnis mehrfach vorkommt, wird nur einmal ausgegeben wenn man z.B. nur zwei Spalten auswählt kann es durchaus vorkommen, dass es die selbe Zeile zweimal vorkommt INSERT INTO INSERT INTO Tabellenname (Spaltenname1, VALUES (Wert1, Werte2); Spaltenname2) Erzeugen einer neuen Zeile in einer vorhandenen Tabelle UPDATE UPDATE Tabellenname SET Spaltenname = neuer_ZellenWert, Spaltenname2 = neuer_Zellenwert2 WHERE Bedingung; Um in einer bestehenden Tabelle in einer oder mehreren Zeilen eine Zelle zu aktualisieren/ändern: DELETE DELETE FROM Tabellenname WHERE Bedingung; Um in einer bestehenden Tabelle eine oder mehrere Zeile zu löschen SELECT ... INTO SELECT Spaltenname INTO neue_Tabelle FROM Tabellenname WHERE Bedingung; Übetragen von Tabellendaten (also anlegen neuer Tabelle mit den Werten der alten)