diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 28c88cc..5612635 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -229,10 +229,11 @@ }, "active": "25f5b25d5eca7203", "lastOpenFiles": [ - "SS2026/Datenbanken und Informationssysteme/SQL/Unbenannt.md", - "SS2026/Datenbanken und Informationssysteme/SQL/SQL.md", - "SS2026/Datenbanken und Informationssysteme/SQL/DML Data Manipulation Language SQL.md", + "SS2026/Datenbanken und Informationssysteme/SQL/DQL Data Query Language SQL.md", "SS2026/Datenbanken und Informationssysteme/SQL/Anhänge/sql_merged.pdf", + "SS2026/Datenbanken und Informationssysteme/SQL/SQL.md", + "SS2026/Datenbanken und Informationssysteme/SQL/Unbenannt.md", + "SS2026/Datenbanken und Informationssysteme/SQL/DML Data Manipulation Language SQL.md", "SS2026/Datenbanken und Informationssysteme/SQL/DDL Data Definition Language SQL.md", "SS2026/Datenbanken und Informationssysteme/Datenbanken und Informationssysteme.md", "SS2026/Klausurplan.canvas", diff --git a/SS2026/Datenbanken und Informationssysteme/SQL/DQL Data Query Language SQL.md b/SS2026/Datenbanken und Informationssysteme/SQL/DQL Data Query Language SQL.md new file mode 100644 index 0000000..4bd6139 --- /dev/null +++ b/SS2026/Datenbanken und Informationssysteme/SQL/DQL Data Query Language SQL.md @@ -0,0 +1,27 @@ +### SELECT +``` +SELECT MatrNr, Name, Semester from Student +``` + +Spalte umbenennen +`SELECT MatrNr AS InsassenNr from Student` + +Keine Duplikate +`SELECT DISTINCT Semester AS Jahrgänge from Student` + +### WHERE + +``` +SELECT * from Student WHERE Semester = 2 +--- +SELECT * from Student s WHERE s.Semester = 2 AND s.Name='Byleth' +``` + +#### Anatomie einer WHERE Klausel +Vergleichsoperatoren: <,>,=,<=,>=,<> +BETWEEN +LIKE +IS NULL / IS NOT NULL +AND, OR, NOT ++,-,\*,/ +IN, NOT IN, $\theta$ ANY, $\theta$ ALL, EXISTS mit $\theta$ = Vergleichsoperator \ No newline at end of file diff --git a/SS2026/Datenbanken und Informationssysteme/SQL/SQL.md b/SS2026/Datenbanken und Informationssysteme/SQL/SQL.md index 807062c..fee601b 100644 --- a/SS2026/Datenbanken und Informationssysteme/SQL/SQL.md +++ b/SS2026/Datenbanken und Informationssysteme/SQL/SQL.md @@ -17,6 +17,8 @@ Duplikate möglich!!! [[DML Data Manipulation Language SQL]] +## SQL Data Query Language DQL + | SQL | Argumente | Relationale Algebra | | ---------- | ------------------ | ------------------- | @@ -24,32 +26,33 @@ Duplikate möglich!!! | **FROM** | Liste von Tabellen | $\times$ | | **WHERE** | Bedingung | $\sigma$ | +[[DQL Data Query Language SQL]] + +## Aggregatfunktionen in SQL + +COUNT zählt Anzahl der Zeilen +`SELECT COUNT(*) FROM Tabelle WHERE Bedingung;` + +SUM summiert werte einer Spalte +`SELECT SUM(Spalte) FROM Tabelle WHERE Bedingung;` + +AVG berechnet Durchschnitt +`SELECT AVG(Spalte) FROM Tabelle WHERE Bedingung;` + +MIN gibt kleinsten wert einer spalte zurück +`SELECT MIN(Spalte) FROM Tabelle WHERE Bedingung;` + +MAX gibt höchsten Wert einer Spalte zurück +`SELECT MAX(Spalte) FROM Tabelle WHERE Bedingung;` -### SELECT -``` -SELECT MatrNr, Name, Semester from Student -``` +## GROUP BY +Gruppiert Zeilen basierend auf Werten einer oder mehrerer Spalten +`SELECT Spalte1, AVG(Spalte2) FROM Tabelle GROUP BY Spalte1;` -Spalte umbenennen -`SELECT MatrNr AS InsassenNr from Student` -Keine Duplikate -`SELECT DISTINCT Semester AS Jahrgänge from Student` +### HAVING +Filtert Abfragen mit Aggregatfunktion oder Group by +`SELECT Spalte1, COUNT(*) FROM Tabelle GROUP BY Spalte1 HAVING COUNT(*) > 5;` -### WHERE -``` -SELECT * from Student WHERE Semester = 2 ---- -SELECT * from Student s WHERE s.Semester = 2 AND s.Name='Byleth' -``` - -#### Anatomie einer WHERE Klausel -Vergleichsoperatoren: <,>,=,<=,>=,<> -BETWEEN -LIKE -IS NULL / IS NOT NULL -AND, OR, NOT -+,-,\*,/ -IN, NOT IN, $\theta$ ANY, $\theta$ ALL, EXISTS mit $\theta$ = Vergleichsoperator