Lernzettel SQL zur GAP2 für Fachinformatiker Anwendungsentwicklung

Dieser Lernzettel richtet sich nach den möglichen Themen von Teil 2 der gestreckten Abschlussprüfung (GAP) für Fachinformatiker Anwendungsentwicklung vom IT-Berufe-Podcast.

SQL: Die Structured Query Language

SQL (Structured Query Language) ist eine normierte Sprache, die in relationalen Datenbanken verwendet wird.

Grundlegende Begriffe und Konzepte

Kreuzprodukt/kartesishes Produkt

  • Die komplette Kombination aller Datensätze einer Tabelle mit allen Datensätzen einer anderen Tabelle.

SQL Untergruppen und übliche Statements

Data Definition Language (DDL)

  • CREATE: Erstellt neue Datenbanken, Tabellen, Indizes, Views oder Procedures.
  • ALTER: Modifiziert bestehende Tabellen.
  • DROP: Löscht z.B. Datenbanken, Tabellen, Views, usw.

Data Manipulation Language (DML)

  • INSERT: Fügt neue Datensätze in eine Tabelle ein.
  • UPDATE: Modifiziert bestehende Datensätze in einer Tabelle.
  • DELETE: Entfernt Datensätze aus einer Tabelle.

Data Query Language (DQL)

  • SELECT: Ruft Datensätze aus einer oder mehreren Tabellen ab.

Data Control Language (DCL)

  • GRANT: Gibt Benutzern Berechtigungen.
  • REVOKE: Entzieht Benutzern Berechtigungen.

Transaction Control Language (TCL)

  • COMMIT: Bestätigt Transaktionen.
  • ROLLBACK: Setzt Transaktionen zurück.

CRUD (Create, Read, Update, Delete) Operationen

  • CREATE: INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
  • READ: SELECT * FROM table_name;
  • UPDATE: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
  • DELETE: DELETE FROM table_name WHERE condition;

Der Aufbau des SELECT-Statements

  • FROM: Gibt die Tabelle an, aus der die Daten abgerufen werden sollen.
  • JOIN: Verbindet zwei oder mehr Tabellen basierend auf einer verwandten Spalte zwischen ihnen.
  • WHERE: Filtert die Ergebnisse basierend auf bestimmten Kriterien.
  • GROUP BY: Gruppiert die Ergebnisse nach einer oder mehreren Spalten.
  • HAVING: Filtert die Ergebnisse einer GROUP BY-Abfrage.
  • ORDER BY: Sortiert die Ergebnisse nach einer oder mehreren Spalten.
  • LIMIT: Begrenzt die Anzahl der zurückgegebenen Ergebnisse.

Subqueries und LIKE-Syntax

Subqueries: Eine Abfrage innerhalb einer anderen Abfrage.

  • Skalare Subqueries: Geben genau einen Wert zurück.
  • Beispiel: SELECT Name FROM Person WHERE id = (SELECT max(id) FROM Person);
  • List Subqueries: Geben eine Liste von Werten zurück.
  • Beispiel: SELECT Name FROM Person WHERE id IN (SELECT id FROM Employees WHERE department = 'Sales');
  • LIKE-Syntax: Vergleicht Zeichenketten mit Platzhaltern.
  • Es gibt zwei Hauptplatzhalter:
    • % ersetzt null oder mehr Zeichen.
    • _ ersetzt genau ein Zeichen.
  • Beispiel: SELECT * FROM table_name WHERE column LIKE '_pattern%';

JOIN-Operationen

  • INNER JOIN: Gibt Zeilen zurück, die in beiden Tabellen einen Treffer haben.
  • LEFT (OUTER) JOIN: Gibt alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurück.
  • RIGHT (OUTER) JOIN: Gibt alle Zeilen aus der rechten Tabelle und die übereinstimmenden Zeilen aus der linken Tabelle zurück.
  • FULL (OUTER) JOIN: Gibt Zeilen zurück, wenn es eine Übereinstimmung in einer der Tabellen gibt. Wenn es in einer Tabelle keinen Treffer gibt, werden die entsprechenden Spalten dieser Tabelle mit NULL-Werten aufgefüllt.
  • NATURAL JOIN: Führt einen INNER JOIN der Tabellen durch, wobei die Spalten mit den gleichen Namen verglichen werden.
  • SELF JOIN: Eine Tabelle wird mit sich selbst verknüpft.

Ausdrücke und Bedingungen

Ausdrücke

  • Kombinationen von Werten, Operatoren und SQL-Funktionen.
  • Beispiel: SELECT name, (age * 2) AS double_age FROM table_name;

Bedingungen

  • Kriterien, die angegeben werden, um bestimmte Aktionen auszuführen oder Ergebnisse zu filtern.
  • Beispiel: SELECT * FROM table_name WHERE age > 21;

Aggregatsfunktionen

COUNT

  • Zählt die Anzahl der Zeilen, die das festgelegte Kriterium erfüllen.
  • Beispiel: SELECT COUNT(*) FROM table_name WHERE age > 21;

SUM

  • Addiert die Werte einer numerischen Spalte.
  • Beispiel: SELECT SUM(price) FROM table_name;

AVG

  • Berechnet den Durchschnittswert einer numerischen Spalte.
  • Beispiel: SELECT AVG(age) FROM table_name;

Tabellenstruktur und Manipulation

  • CREATE: CREATE TABLE table_name (id INT PRIMARY KEY, first_name VARCHAR(50), ...);
  • ALTER: ALTER TABLE table_name ADD COLUMN salary FLOAT;
  • DROP: DROP TABLE table_name;
  • DESCRIBE: DESCRIBE table_name;
  • SHOW DATABASES/TABLES: SHOW DATABASES; / SHOW TABLES;

Projektion und Selektion

  • Projektion: SELECT column_name FROM table_name;
  • Selektion: SELECT column_name FROM table_name WHERE condition;
  • Verschachtelte Selektion: SELECT column_name FROM (SELECT * FROM table_name) AS alias_name;
  • DISTINCT: Wird verwendet, um doppelte Werte aus Ergebnissen zu entfernen. Beispiel: SELECT DISTINCT column_name FROM table_name;

Sortierung und Gruppierung

  • Sortieren (ORDER BY ASC/DESC): SELECT * FROM table_name ORDER BY column_name ASC/DESC;
  • Gruppieren (GROUP BY, HAVING):
    • GROUP BY: SELECT avg(column_name) FROM table_name GROUP BY column_name;
    • HAVING: SELECT sum(column_name) FROM table_name GROUP BY column_name HAVING condition;

Indizierung

  • Index Erstellung: CREATE INDEX index_name ON table_name(column_name);

Schnitt-, Vereinigungs- und Differenzmenge

Schnittmenge (INTERSECT):

  • Findet gemeinsame Datensätze in beiden SELECT-Statements.
  • Beispiel: SELECT column_name FROM table1 INTERSECT SELECT column_name FROM table2;

Vereinigungsmenge (UNION/UNION ALL):

  • UNION:
    • Kombiniert die Ergebnisse von zwei SELECT-Statements.
    • Entfernt Duplikate aus dem Ergebnis. (Wie DISTINCT)
    • Beispiel: SELECT column_name FROM table1 UNION SELECT column_name FROM table2;
  • UNION ALL:
    • Kombiniert die Ergebnisse von zwei SELECT-Statements.
    • Gibt alle Zeilen zurück, einschließlich Duplikate.
    • Beispiel: SELECT column_name FROM table1 UNION ALL SELECT column_name FROM table2;

Differenzmenge (MINUS):

  • Gibt Zeilen aus dem ersten SELECT-Statement zurück, wobei die aus dem zweiten SELECT-Statement entfernt wurden.
  • Beispiel: SELECT column_name FROM table1 MINUS SELECT column_name FROM table2;

SQL Injection

SQL Injection ist eine Art von Sicherheitslücke, bei der ein Angreifer SQL-Code über die Eingabefelder einer Anwendung in die Datenbank einschleusen kann. Um SQL-Injection zu verhindern, sollten Prepared Statements verwendet werden.

Weiteres Lernmaterial

Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekomme ich von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht.

Prüfungsvorbereitung aktuell Teil 2 der gestreckten Abschlussprüfung: Fachinformatiker Anwendungsentwicklung*

IT-Handbuch

IT-Handbuch für Fachinformatiker*innen: Der Ausbildungsbegleiter für Anwendungsentwicklung und Systemintegration. Inkl. Prüfungsfragen und Übungen*

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen