Datenbanken - SQL

Banken, Versicherungen, Einzelhandel, Onlineshops usw. sind auf Datenbanken angewiesen, um die Masse an Informationen verwalten zu können.

Anfang der 70er-Jahre entwickelte IBM die "Structured English Query Language" (SEQUEL) eine Abfragesprache, die es ermöglicht, auf Englisch mit einer Datenbank zu kommunizieren. Daraus entstand der Standard "SQL", bei dem die 3 Buchstaben immer wieder für Verwirrung sorgen. Ältere Programmierer sprechen SQL als "Sequel" aus. Die jüngeren Programmierer sind der Meinung, das SQL für "Structured Query Language" also strukturierte Abfragesprache steht, davon ist in dem Standard allerdings nicht zu finden. Somit ist SQL wohl einfach nur SQL, nicht mehr und nicht weniger.

Was sind Datenbanken?

Datenbanken erfüllen den Verwendungszweck zum Speichern, Verwalten und Manipulieren von Informationen.

Der Begriff Datenbank bezeichnet 2 verschiedene Dinge: Zum einen die Datensammlung und zum anderen das Programm, welches die Daten verwaltet. Die Daten selber sind nach einer gewissen Struktur hinterlegte Informationen wie Kundendaten, Musiksammlung oder andere Themen. Das Programm, mit dem die Informationen verwaltet werden, enthält mächtige Funktionen wie Suchen, Sortieren, Filtern usw.


Verschiedene Datenbanktypen

Je nach Verwendungszweck gibt es spezielle Abwandlungen von Datenbanken, um die beste Performance für den Einsatz zu bekommen. Das bekannteste Modell ist jedoch die relationale Datenbank mit dem Vertreter: MySQL.


Einzeltabellendatenbank

Einfache Verwaltung von Daten, zum Beispiel für Adressen.

Relationale Datenbank

Hat die Möglichkeit, mehrere Einzeltabellen miteinander zu verknüpfen.

Objektorientierte Datenbanken

Arbeiten auf Grundlage von Klassen und Objekten. Für sehr komplexe, nicht lineare Beziehungen zwischen den gespeicherten Informationen.

XML Datenbank

Speichert die Informationen in XML-Dokumenten ab.

Bild und Multimediadatenbanken

Erweiterte relationale Datenbanken für die Verwaltung von Mediadaten wie Bilder, Sounds oder Videos.

NoSQL Datenbanken

Speichert Daten als Dokument in frei definierbare Metadatenfelder.


Datenbanksysteme

SQL wurde in verschiedenen Standards veröffentlicht. Der neuste Standard, als diese Zeilen geschrieben wurden, ist SQL:2019. Durch jede veröffentlichte Version von SQL wurden wie auch in anderen Sprachen, Erweiterungen und Verbesserungen hinzugefügt. Die verschiedenen Datenbankhersteller haben allerdings durch ihre eigene Weiterentwicklung an einigen Stellen für Abweichungen vom Standard gesorgt. Das führt dazu, dass die verschiedenen Datenbanksysteme auch unterschiedlich funktionieren. SQL ist sozusagen die Hauptsprache und die Datenbanksysteme vertreten ihren eigenen Akzent. Beliebte Datenbanksysteme sind:

  • MySQL
  • MariaDB
  • SQLite
  • Microsoft SQL Server
  • OracleDB
  • PostgreSQL
  • MongoDB

Jedes Datenbanksystem hat seine Vor- und Nachteile sowie seine Eigenheiten.


Für die Anfänge konzentrieren wir uns auf das Datenbanksystem MySQL, weil es ein kostenloses Datenbanksystem ist, welches auf Windows-Systeme, verschiedenen Linux-Distributionen und Apple macOS Sierra läuft. Zusätzlich gibt es eine große Community und eine umfangreiche Dokumentation unter: https://dev.mysql.com/doc/

Info

Das Datenbanksystem MariaDB ist ein Fork (Abspaltung) von MySQL mit der Bemühung zur vollen Kompatibilität. Die Unterschiede der beiden Systeme sind hauptsächlich im Lizenzbereich zu finden. Daher gelten alle Befehle von MySQL auch für MariaDB: https://mariadb.org/


SQL Datei

SQL-Dateien enden auf ".sql" und beinhalten definierte Information im Klartextformat (ASCII). Dazu gehören zum Beispiel die Tabellen, die als Teil der Datenbank verschiedene Informationen beinhalten. Aber auch Anweisungen, die für eine Informationsverarbeitung notwendig sind, gehören zu den SQL-Dateien. Um SQL-Dateien zu verarbeiten, wird ein Datenbankprogramm benötigt, welches das SQL-Format unterstützt. Zum Erstellen und bearbeiten der SQL-Dateien kann jeder beliebige Texteditor verwendet werden.


Kommentare

Kommentare sind nützliche Informationen im Code, die Aufschluss darüber geben, welche Funktionen an dieser Stelle verwendet werden. Das ist nicht nur nützlich für andere Entwickler, die den Code verstehen wollen, sondern auch für sich selber, wenn man nach Jahren noch wissen möchte, was man da mal gemacht hat. Kommentare werden innerhalb von SQL-Dateien zwischen einzeiligen und mehrzeiligen Kommentaren unterschieden. Die einzeiligen Kommentare bestehen aus 2 aufeinanderfolgenden Bindestriche "--", damit wird der Rest der Zeile nicht mehr ausgewertet. Die mehrzeiligen Kommentare beginnen mit "/*" und enden auf "*/", alles dazwischen wird nicht ausgewertet.

Kommentare in SQL-Dateien

-- einzeiliger Kommentar, bis zum Zeilenende.

/* mehrzeiliger Kommentar,
endet mit der Zeichenfolge: */

Syntax

Der auszuführende Code wird durch Schlüsselwörter definiert, die in den meisten Fällen durch Großbuchstaben repräsentiert werden. SQL ist aber "case insensitive". Das bedeutet, die Schlüsselwörter können auch mit Kleinbuchstaben oder völlig gemischt geschrieben werden, allerdings ist die Schreibweise mit den Großbuchstaben sehr verbreitet. Die Befehle selber können in einer Zeile aber auch über mehrere Zeilen verteilt definiert werden. Dadurch sind die folgenden Schreibweisen alle gültig und machen keinen Unterschied in der Datenbankabfrage aus.

Syntax in SQL-Dateien

-- Entweder nur Großschreibung:
SELECT vorname, nachname FROM person WHERE nachname='Happel';
-- Oder nur Kleinschreibung:
select vorname, nachname from person where nachname='Happel';
-- Aber auch gemischt:
SElEcT vorname, nachname FroM person wHErE nachname='Happel';
-- Oder über mehrere Zeilen:
SELECT vorname, nachname FROM person 
WHERE 
nachname='Happel';
-- Alle beschreiben die gleiche Anfrage.

Lass uns Anfangen