Files
ObsidianVault/SS2026/Datenbanken und Informationssysteme/SQL/SQL.md
T

3.1 KiB

!sql_merged.pdf

SQL Tabellen sind multimengen von tupeln Duplikate möglich!!!

SQL Data Definition Language DDL

  1. CREATE TABLE: zum Erstellen einer neuen Tabelle
  2. ALTER TABLE: zum Ändern einer bestehenden Tabelle
  3. DROP TABLE: zum Löschen einer Tabelle DDL Data Definition Language SQL

SQL Data Manipulation Language DML

  1. INSERT
  2. UPDATE
  3. DELETE

DML Data Manipulation Language SQL

SQL Data Query Language DQL

SQL Argumente Relationale Algebra
SELECT Liste von Namen \pi
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;

GROUP BY

Gruppiert Zeilen basierend auf Werten einer oder mehrerer Spalten SELECT Spalte1, AVG(Spalte2) FROM Tabelle GROUP BY Spalte1;

HAVING

Filtert Abfragen mit Aggregatfunktion UND Group By SELECT Spalte1, COUNT(*) FROM Tabelle GROUP BY Spalte1 HAVING COUNT(*) > 5;

ORDER BY

Sortiert Ergebnisse SELECT Spalte1, Spalte2 FROM Tabelle ORDER BY Spalte1 ASC, Spalte2 DESC

LIMIT OFFSET FETCH

LIMIT < n > um max n Zeilen auszugeben OFFSET < n > überspringe n Zeilen am Anfang OFFSET FETCH Bsp.: SELECT Spalte1 FROM Tabelle ORDER BY Spalte OFFSET n ROWS FETCH NEXT m ROWS ONLY

SQL-INJECTIONS

SQL Code in Eingabefelder einfügen. Nur wenn eingaben nicht überprüft / gereinigt werden!

Um SQL-Injection-Angriffe zu verhindern, sollten Sie folgende Sicherheitsmaßnahmen ergreifen:

  1. Benutzereingaben validieren: Validieren Sie alle Benutzereingaben, um sicherzustellen, dass sie den erwarteten Datentyp und Format aufweisen.
  2. Parameterisierte Abfragen verwenden: Verwenden Sie Prepared Statements oder Parameterized Queries, um sicherzustellen, dass Benutzereingaben nicht als Teil des SQL-Codes interpretiert werden.
  3. Stored Procedures nutzen: Verwenden Sie Stored Procedures, um den Zugriff auf die Datenbank zu kontrollieren und den Umfang der möglichen Angriffe zu reduzieren.
  4. Least Privilege Prinzip anwenden: Gewähren Sie Ihrer Anwendung nur die minimalen Berechtigungen, die sie benötigt, um auf die Datenbank zuzugreifen.
  5. Escaping von Eingaben: Wenn die Verwendung von Parameterized Queries oder Stored Procedures nicht möglich ist, stellen Sie sicher, dass Benutzereingaben korrekt "escaped" werden, um schädliche Zeichen zu neutralisieren.

SQL Transaction Control Language TCL

  1. BEGIN TRANSACTION
  2. COMMIT
  3. ROLLBACK
  4. SAVEPOINT

TCL Transaction Control Language SQL

SQL Data Control Language DCL

  1. GRANT
  2. REVOKE

GRANT