Skip to main content

Datenbanken

Manipulation von Datenbanken

Eine Datenbank ist eine organisierte Sammlung von strukturierten Informationen oder Daten, die elektronisch in einem Computer gespeichert werden. Eine Datenbank wird in der Regel von einem Datenbankmanagementsystem (DBMS) gesteuert. Die Daten und das DBMS werden zusammen mit den damit verbundenen Anwendungen als Datenbanksystem bezeichnet, oft auch nur als Datenbank.

Die Daten in den heute gebräuchlichsten Arten von Datenbanken werden in der Regel in Zeilen und Spalten in einer Reihe von Tabellen dargestellt, um eine effiziente Verarbeitung und Datenabfrage zu ermöglichen. Die Daten können dann leicht abgerufen, verwaltet, geändert, aktualisiert, kontrolliert und organisiert werden. Die meisten Datenbanken verwenden eine strukturierte Abfragesprache (SQL) zum Schreiben und Abfragen von Daten.

Die INSERT INTO Anweisung wird verwendet, um einen neuen Datensatz (Zeile) in eine Tabelle einzufügen.


Es gibt zwei Varianten:

  • In Spalten der Reihe nach einfügen
  • Einfügen in Spalten nach Namen
-- In Spalten der Reihe nach einfügen:
INSERT INTO table_name
VALUES (value1, value2);

-- Einfügen in Spalten nach Namen:
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
Die DELETE Anweisung wird verwendet, um Datensätze (Zeilen) in einer Tabelle zu löschen. Die WHERE Anweisung gibt an, welcher Datensatz oder welche Datensätze gelöscht werden sollen. Wenn WHERE weggelassen wird, werden alle Datensätze gelöscht.
DELETE FROM table_name
WHERE some_column = some_value;

Die UPDATE Anweisung wird verwendet, um Datensätze (Zeilen) in einer Tabelle zu bearbeiten. Sie enthält eine SET Anweisung, die die zu bearbeitende Spalte angibt, und eine WHERE Anweisung, die den oder die Datensätze spezifiziert.
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE some_column = some_value;
Datenbank Abfragen
Mit dem AND Operator können mehrere Bedingungen kombiniert werden. Die Datensätze müssen beiden Bedingungen entsprechen, die mit AND verknüpft sind, um in die Ergebnisse aufgenommen zu werden. Die angegebene Abfrage zeigt alle Autos an, die blau sind und nach 2014 hergestellt wurden.
SELECT model 

FROM cars
WHERE color = 'blue' 
AND year > 2014;
Mit dem OR Operator können mehrere Bedingungen kombiniert werden. Datensätze, die einer der beiden Bedingungen entsprechen, die durch das OR verbunden sind, werden in die Ergebnisse aufgenommen. Die angegebene Abfrage findet Kunden, deren Staat entweder „CA“ oder „NY“ ist.
SELECT name
FROM customers
WHERE state = 'CA' 
OR state = 'NY';
WHERE wird verwendet, um Datensätze (Zeilen) zu filtern, die eine bestimmte Bedingung erfüllen. Die angegebene Abfrage wählt alle Datensätze aus, bei denen das pub_year gleich 2017 ist.
SELECT title
FROM library
WHERE pub_year = 2017;
Mit LIKE kann innerhalb einer WHERE ein bestimmtes Muster abgefragt werden. Die angegebene Abfrage findet jeden Film, dessen Titel mit „Star“ beginnt.
SELECT name
FROM movies
WHERE name LIKE 'Star%';
Der Platzhalter % kann mit LIKE verwendet werden, um keine oder mehrere nicht spezifizierte Zeichen zu finden. Die angegebene Abfrage findet jeden Film, der mit „The“ beginnt, gefolgt von keinem oder mehreren beliebigen Zeichen.
SELECT name
FROM movies
WHERE name LIKE 'The%';
Der Platzhalter _ kann mit LIKE verwendet werden, um ein beliebiges einzelnes, nicht spezifiziertes Zeichen zu finden. Die angegebene Abfrage findet jeden Film, der mit einem einzelnen Zeichen beginnt, gefolgt von „ove“.
SELECT name
FROM movies
WHERE name LIKE '_ove';
Die SELECT * Anweisung gibt alle Spalten aus der angegebenen Tabelle in der Trefferliste zurück. Die angegebene Abfrage holt alle Spalten und Datensätze (Zeilen) aus der Tabelle „Filme“.
SELECT *
FROM movies;

ORDER BY kann verwendet werden, um die Ergebnisse einer Spalte alphabetisch oder numerisch zu sortieren. Es kann auf zwei Arten sortiert werden:

  • Mit DESC werden die Ergebnisse in absteigender Reihenfolge sortiert.
  • Mit ASC werden die Ergebnisse in aufsteigender Reihenfolge sortiert (Standard).
SELECT *
FROM contacts
ORDER BY birth_date DESC;
Der Operator BETWEEN kann zum Filtern nach einem Wertebereich verwendet werden. Bei dem Wertebereich kann es sich um Text, Zahlen oder Datumsdaten handeln. Die angegebene Abfrage findet alle Filme, die zwischen den Jahren 1980 und 1990 gedreht wurden.
SELECT *
FROM movies
WHERE year BETWEEN 1980 AND 1990;
Die Bedingung LIMIT wird verwendet, um die Ergebnisse auf eine bestimmte Anzahl von Zeilen zu begrenzen. Die angegebene Abfrage begrenzt die Ergebnismenge auf 5 Zeilen.
SELECT *
FROM movies
LIMIT 5;
Spalteninhalte können NULL sein oder keinen Wert haben. Diese Datensätze können mit den Operatoren IS NULL und IS NOT NULL in Kombination mit WHERE abgeglichen werden. Die angegebene Abfrage wird alle Adressen anzeigen, bei denen die Adresse einen Wert hat oder nicht NULL ist.
SELECT address
FROM records
WHERE address IS NOT NULL;
Foreign Key

Ein Fremdschlüssel ist ein Verweis von Datensätzen einer Tabelle auf den Primärschlüssel einer anderen Tabelle. Um mehrere Datensätze für eine bestimmte Zeile zu erhalten, spielt die Verwendung von Fremdschlüsseln eine wichtige Rolle. Um z. B. alle Bestellungen eines bestimmten Kunden zu verfolgen, kann die Tabelle Bestellung (unten im Bild) einen Fremdschlüssel enthalten. foreign-key.png

Primary Key

Ein Primärschlüssel in einer SQL-Tabelle wird verwendet, um jeden Datensatz in dieser Tabelle eindeutig zu identifizieren. Ein Primärschlüssel kann nicht NULL sein. In diesem Beispiel ist customer_id der Primärschlüssel. Derselbe Wert kann in einer Spalte nicht noch einmal vorkommen. Primärschlüssel werden oft in JOIN Operationen verwendet.

primary_key.png

Mehrere Tabellen verbinden
Bei einem Outer Join werden Zeilen aus verschiedenen Tabellen kombiniert, auch wenn die Join-Bedingung nicht erfüllt ist. Bei einem LEFT JOIN wird jede Zeile der linken Tabelle in die Ergebnismenge zurückgegeben. Wenn die Join-Bedingung nicht erfüllt ist, wird NULL verwendet, um die Spalten der rechten Tabelle aufzufüllen.
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
JOIN ermöglicht die Rückgabe von Ergebnissen aus mehr als einer Tabelle, indem sie diese mit anderen Ergebnissen auf der Grundlage gemeinsamer Spaltenwerte verbindet, die mit ON angegeben werden. INNER JOIN ist der Standard JOIN und gibt nur Ergebnisse zurück, die der durch ON angegebenen Bedingung entsprechen.
SELECT * 

FROM books
JOIN authors
ON books.author_id = authors.id;