Kurs
Eine Datenbank bildet reale Entitäten wie Professoren und Universitäten ab, indem sie sie in Tabellen speichert. Jede Tabelle enthält Daten zu genau einem Entitätstyp. Das reduziert Redundanz, weil jede Entität nur einmal gespeichert wird. So reicht zum Beispiel eine einzige Zeile mit den Details eines bestimmten Unternehmens. Außerdem lassen sich mit einer Datenbank die Beziehungen zwischen Entitäten modellieren.
SQL steht für Structured Query Language – eine Sprache, mit der Daten in einer relationalen Datenbank gespeichert, bearbeitet und abgefragt werden.
SQL ist die Standardsprache für relationale Datenbanksysteme. Alle relationalen Datenbankmanagementsysteme (RDBMS) wie MySQL, MS Access, Oracle, Sybase, Informix, Postgres und SQL Server verwenden SQL als Standardsprache.
PostgreSQL-Datenbank
information_schema ist eine Metadatenbank, die Informationen über deine aktuelle Datenbank enthält. Sie ist nicht PostgreSQL-spezifisch und auch in anderen Datenbankmanagementsystemen wie MySQL oder SQL Server verfügbar. information_schema stellt mehrere Tabellen bereit, die du mit der bekannten Syntax SELECT * FROM abfragen kannst:
- tables: Informationen über alle Tabellen in deiner aktuellen Datenbank
- columns: Informationen über alle Spalten in allen Tabellen deiner aktuellen Datenbank
SELECT table_schema, table_name
FROM information_schema.tables;
table_schema | table_name
-------------------+------------------------------
pg_catalog | pg_statistic
pg_catalog | pg_type
pg_catalog | pg_policy
pg_catalog | pg_authid
pg_catalog | pg_shadow
public | university_professors
pg_catalog | pg_settings
...
Befehle in SQL
Data Definition Language (DDL)
- CREATE: Erstellt eine neue Tabelle oder eine Sicht auf eine Tabelle.
- ALTER: Ändert eine bestehende Tabelle.
- DROP: Löscht eine gesamte Tabelle oder andere Objekte in der Datenbank.
Data Manipulation Language (DML)
- SELECT: Liest bestimmte Datensätze aus einer oder mehreren Tabellen aus.
- INSERT: Fügt einen Datensatz in eine bestehende Tabelle ein.
- UPDATE: Ändert bestehende Datensätze in einer Tabelle.
- DELETE: Löscht Datensätze aus einer Tabelle und kann auch eine komplette Tabelle entfernen.
Spalten einer bestimmten Tabelle anzeigen
information_schema enthält in der Tabelle "columns" auch Informationen über Spalten. Sobald du den Namen einer Tabelle kennst, kannst du ihre Spalten abrufen, indem du die Tabelle "columns" abfragst.
SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_name = 'pg_config';
table_name | column_name | data_type
-----------+-------------+-----------
pg_config | name | text
pg_config | setting | text
Hier siehst du, dass die Systemtabelle pg_config nur zwei Spalten hat – offenbar zur Speicherung von Name-Wert-Paaren.
Interaktives Beispiel
In dieser Übung brauchst du nur Informationen aus dem Schema 'public', das in den Spalten table_schema der Tabellen tables und columns angegeben ist. Das Schema 'public' enthält Informationen über benutzerdefinierte Tabellen und Datenbanken. Die anderen Werte von table_schema enthalten Systeminformationen – hier interessieren uns nur benutzerdefinierte Inhalte.
Du erhältst alle Tabellennamen in der aktuellen Datenbank und schränkst deine Abfrage dabei auf das 'public'-table_schema ein.
## Query the right table in information_schema
SELECT table_name
FROM information_schema.tables
## Specify the correct table_schema value
WHERE table_schema = 'public';
Wenn wir den obigen Code ausführen, erhalten wir folgendes Ergebnis:

Um mehr über relationale Datenbanken in SQL zu lernen, sieh dir dieses Video aus unserem Kurs Introduction to Relational Databases in SQL an.
Dieser Inhalt stammt aus dem DataCamp-Kurs Introduction to Relational Databases in SQL von Timo Grossenbacher.
Sieh dir auch unser Tutorial Introduction to Indexing in SQL an.