SQL Reihenfolge SELECT etc?
In welcher Reihenfolge muss ich die alle denn setzten?
z.B FROM, SELECT, COUNT, GROUP BY, etc.
Es gibt ja noch mehr als nur das was ich aufgelistet habe, nennt die gerne bitte auch
Toll, wäre, wenn ihr daneben auch die genaue Funktion schreiben könnten 😊
Danke im Voraus
2 Antworten
Spruch für die Reihenfolge
Susi = Select
F|ckd = From
Willy = Where (einschränken der auswahl der datensätze , bzw vor der aggregat funktion)
Ganz = Group By
Hart = Having (einschränken der ausgabe , bzw bei aggregat funktion)
Ohne = Order By
Liebe = Limit
FROM Tabelle1
JOIN Tabelle2
ON Tabelle1.ForeignKeyTabelle2 = Tabelle2.PrimarykeyTabelle1
JOIN Tabelle3
ON Tabelle2.ForeignKeyTabelle3 = Tabelle3.PrimarykeyTabelle2
JOIN Tabelle4
ON Tabelle2.ForeignKeyTabelle4 = Tabelle4.PrimarykeyTabelle2
so verknüpfst du nur die entsprechenden datensätze , wobei es noch
LEFT OUTER JOIN Tabelle2 (alle datensätze der Tabelle1 + gefundene der Tabelle 2 (sonst NULL))
RIGHT OUTER JOIN Tabelle2 (alle datensätze der Tabelle2 + Gefundene der Tabelle1 (sonst NULL) )
LEFT INNER JOIN , RIGHT INNER JOIN (nur die mit der entsprechenden Tabelle auch eine key übereinstimmung hat .)
OHNE JOIN WIRD jeder datensatz mit jedem datensatz kombiniert und mit WHERE eingeschränkt . was sehr sehr viel temp speicher fressen kann .
und
SELECT a,b FROM Tabelle1
UNION
SELECT a as a1,c FROM Tabelle1
... werden die datenfelder nacheinander angehängt
also
a,b,a1,c
geht aber auch mit verschiedenen tabellen .
SELECT -> Abfrage von Daten (Alternativ: INSERT, DELETE, UPDATE)
COUNT(spalte) -> Aggregatfunktion, fasst die Werte zu einem zusammen, hier der Anzahl der Werte (weitere: AVG, SUM); optional
FROM tabelle -> Die Tabelle(n), aus denen abgefragt wird
WHERE -> Bedingungen, die erfüllt sein müssen, z.B. spalte>0; optional
GROUP BY spalte -> Ergebnisse gruppieren, also Teile zusammenfassen; optional
ORDER BY spalte -> Ergebnisse nach spalte sortieren; optional
Beispiel:
Tabelle mit den Spalten name, abteilung, einkommen
SELECT * FROM Tabelle -> alle Zeilen
SELECT * FROM Tabelle WHERE abteilung=1 ORDER BY name-> nur die aus Abteilung 1 nach Name sortiert
SELECT abteilung, count(name) FROM Tabelle GROUP BY abteilung -> Anzahl der Mitarbeiter pro abteilung
Ansonsten wirf mal "SQL Tutorial" in eine Suchmaschine deiner Wahl...
Danke dir, das wird mir in Zukunft sehr weiterhelfen 👌🙏