Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Anfragen an Datenbanken - SQL
Im Abschnitt Was ist ein Datenbanksystem? wird erklärt, was wir unter einem Datenbanksystem verstehen. Zur Kommunikation zwischen Datenbankensystemen und anderen Anwendungen hat sich allgemein die Sprache SQL (Structured Query Language) durchgesetzt. SQL lässt sich in verschiedene Sprachgruppen einteilen:
- DDL - Definition und Veränderung von Relationen (tabellen)
- DML - Erfassung und Pflege der Daten
- QL - Anfragesprache zur Auswertung der Datenbasis
- DCL - Vergabe und Organisation von Zugriffsrechten
Auswertung der Datenbasis - Operationen auf Tabellen
Bei der Auswertung der Datenbasis sollen bestimmte Daten aus bereits vorhandenen Tabellen ausgelesen werden. Dabei sind verschiedene Operationen möglich. Zur Auswertung der Datenbasis wird der SQL-Befehl SELECT
verwendet:
SELECT spalte(n) FROM tabelle(n) [WHERE bedingunge(n)];
SQL-Befehle können in beliebiger Schreibweise geschrieben werden, es hat sich aber eingebürgert, die Befehle ausschließlich in Großbuchstaben zu schreiben. Die Syntax des Befehls wird in den nächsten Abschnitten erläutert.
Für unsere Beispiele verwenden wir Tabellen aus der Datenbank von Instahub. Zunächst beschränken wir uns auf die Tabelle users:
$\text{users}\left( \underline{\text{id}}\text{, username, email, password, name, bio, gender, birthday, city, country, centimeters,} \\ \text{ avatar, role, is_active, remember_token, created_at, updated_at}\right)$
Teste die folgenden Beispiele jeweils in Instahub!
Anzeige der gesamten Tabelle
Mit dem SQL-Befehl
SELECT * FROM users;
lässt sich die Tabelle users vollständig anzeigen. Der * steht Dabei für alle Attribute der Tabelle.
Projektion
Eine Projektion filtert bestimmte Spalten aus einer Datenbanktabelle heraus.
Beispiel
Gib die Spalten id, username und email der Tabelle users aus!
SELECT id, username, email FROM users
Selektion
Bei einer Selektion werden bestimmte Zeilen aus einer Tabelle herausgefiltert, die einer bestimmten Bedingung entsprechen. Diese Bedingung wird in der WHERE-Klausel angegeben.
Beispiel
Gib alle Datensätze der Tabelle users vollständig aus, bei denen der Nutzername 'max383' ist!
SELECT * FROM users WHERE username = 'max383'
Attributwerte müssen in einfachen Anführungsstrichen stehen! ('max383')
Selektion und Projektion
Bei Anfragen werden in der Regel Selection und Projektion kombiniert.
Beispiel:
Gib von allen Datensätze der Tabelle users die Spalten username und name aus, bei denen der Nutzername 'max383' ist!
SELECT username, name FROM users WHERE username = 'max383'
Formulierung der Bedingung
Mehrere Bedingungen können durch NOT, OR und AND verbunden sein.
Zum Vergleich können die Operatoren >, <, >=, <=, <>, =
und like
genutzt werden.
Beispiel 1
Gib alle Eigenschaften aller Nutzer aus, die größer sind als 160 cm.
SELECT * FROM users WHERE centimeters > '160'
Beispiel 2
Gib Nutzername und Größe aller Nutzer aus, die größer als 161 cm und kleiner als 170 cm sind.
SELECT username, centimeters FROM users WHERE centimeters > '161' AND centimeters < '170'