Einleitung
In diesem Kapitel erhalten Sie Informationen über Inhalt und Aufbau des Buches.
Einführung
[Bearbeiten]Die Abfragesprache SQL ist die etablierte Sprache für die Arbeit mit relationalen Datenbankmanagementsystemen (DBMS). Es existieren verschiedene Standards, und jeder Hersteller von DBMS hat seine eigenen Erweiterungen und Besonderheiten zu den Standards.
Das Buch soll eine Einführung in die Sprache SQL bieten. Ziel ist es, dass der Leser nach dem Durcharbeiten folgende Aufgaben selbständig lösen kann:
- Eigene Abfragen für relationale Datenbanken erstellen
- Manipulieren von Daten (Einfügen, Ändern und Löschen)
- Eigene einfache relationale Datenbanken aufbauen
- Bestehende Datenbankstrukturen erweitern
Um die Ziele zu erreichen, wird SQL anhand praxisnaher Beispiele erläutert.
Die Beispiele im Buch wurden unter mindestens einem der folgenden DBMS getestet:
- Firebird
- MS-SQL Server 2005 oder 2008
- MySQL 4.1 oder 5
- Oracle 9, 10 oder 11
Vorzugsweise werden allgemeingültige Schreibweisen nach dem SQL-Standard (siehe unten) benutzt. Deshalb sollten die Befehle in aller Regel auf allen gängigen DBMS funktionieren und höchstens kleinere Änderungen benötigen. Dort, wo eine spezielle Schreibweise wesentlich abweicht, wird das ausdrücklich erwähnt.
Achtung: Wegen der vielen unterschiedlichen Schreibweisen der SQL-Befehle ist eine vollständige Prüfung leider nicht möglich. Sie müssen in allen Zweifelsfällen in der Dokumentation Ihres DBMS die passende Schreibweise nachlesen. |
Geschichte von SQL
[Bearbeiten]SQL ist aus IBM's SEQUEL in den siebziger Jahren entstanden. Der Erfolg der Sprache SQL ist sicherlich auch darin begründet, dass die Sprache einfach aufgebaut ist und sich an der englischen Umgangssprache orientiert. Von SQL gibt es verschiedene Standards. Diese sind:
- Erster SQL-Standard (1986 ANSI)
- SQL2 bzw. SQL-92 (1992)
- SQL3 bzw. SQL:1999 (1999 ISO)
- SQL:2003 (2003)
- SQL:2008 (2008)
Hierbei ist zu beachten, dass die meisten Datenbankmanagementsysteme SQL2 unterstützen. Die neueren Versionen sind in der Regel nur teilweise oder gar nicht in den einzelnen Datenbankmanagementsystemen umgesetzt.
Alles, was in diesem Buch als SQL-Standard, also als „offizielle SQL-Feststellung“ angegeben wird, bezieht sich auf die SQL-Dokumente von 2003
.Übersicht über Datenbankmanagementsysteme
[Bearbeiten]Allgemein
[Bearbeiten]Datenbanken sind Systeme (Daten und Programme) zur Verwaltung von Daten. Es gibt verschiedene Konzepte:
- Relationale DBMS
- Objektrelationale DBMS
- Objektorientierte DBMS
Bei Wikipedia gibt es eine Liste der Datenbankmanagementsysteme.
Da SQL die Abfragesprache für relationale Datenbanken ist, bezieht sich das Buch nur auf diese Art von Datenbanken. Das Konzept hinter den relationalen Datenbanken wird im nächsten Kapitel erläutert.
Kommerzielle Datenbankmanagementsysteme
[Bearbeiten]- DB2
- Informix
- Interbase
- Microsoft SQL Server
- Oracle
- Sybase
Microsoft und Oracle bieten auch kostenlose Express-Versionen mit eingeschränkten Möglichkeiten oder Nutzungsrechten an.
Freie Datenbankmanagementsysteme
[Bearbeiten]- Firebird
- MariaDB
- MySQL
- PostgreSQL
- SQLite
Bei MySQL ist das duale Lizenzsystem zu beachten: je nach Nutzungsbedingungen frei oder kostenpflichtig.
MariaDB ist 2009 als Abspaltung von MySQL entstanden. Seit MySQL 2010 von Oracle übernommen wurde, wurde in vielen Systemen MySQL durch MariaDB ersetzt. Soweit dieses Buch MySQL erwähnt, können Beispiele und Erläuterungen genauso gut auf MariaDB bezogen werden.
- Die Unterscheidung zwischen „frei“ und „kommerziell“ ist nicht korrekt, sondern wird nur der Einfachheit halber gemacht. Bei den „freien“ DBMS steht die freie Verfügbarkeit im Vordergrund, auch wenn Kosten anfallen können oder das DBMS nicht als Open Source-Projekt entwickelt wird. Bei den „kommerziellen“ DBMS steht das gewerbliche Interesse des Anbieters im Vordergrund, auch wenn es kostenlose Lizenzen gibt.
Weitere Systeme zur Datenverwaltung
[Bearbeiten]Die folgenden Dateisysteme enthalten keine Datenbanken im eigentlichen Sinne, sondern Dateien für strukturierte Daten. Auch diese können (je nach verwendetem Programm) in eingeschränktem Umfang mit SQL-Befehlen umgehen.
- dBASE und seine Varianten
- MS-Access
- das Datenbankmodul Base von LibreOffice
- Paradox
Auf diese Systeme gehen wir nicht ein. Sie müssen in der jeweiligen Programm-Dokumentation nachlesen, welche Befehle und Optionen möglich sind.
Regeln für die Beispiele
[Bearbeiten]Das Buch ist grundsätzlich schrittweise aufgebaut. Aber nicht immer können in einem Beispiel nur bereits bekannte Begriffe verwendet werden. Wenn in seltenen Fällen Bestandteile erst in einem späteren Kapitel erläutert werden, dann gibt es ausdrückliche Hinweise, beispielsweise hier:
- Der INSERT-Befehl in DML (2) – Daten speichern muss korrekt mit Datentypen umgehen und benutzt dazu auch Funktionen.
- Auch für das Erstellen einer Tabelle in DDL – Struktur der Datenbank muss genau auf die Datentypen geachtet werden.
Wenn Sie die SQL-Begriffe aus dem Englischen ins Deutsche übersetzen, sollten Sie den Zusammenhang auch ohne Hin- und Herblättern verstehen.
Die Beispiele für SQL-Befehle werden nach den folgenden Regeln geschrieben.
- Alle SQL-Befehle und Schlüsselwörter, wie z. B. SELECT, INSERT, DELETE, WHERE, ORDER BY, werden vorzugsweise groß geschrieben. SQL selbst verlangt das nicht, sondern arbeitet ohne Berücksichtigung von Groß- und Kleinschreibung (case insensitive); dort werden SELECT, select und sogar sElEcT gleich behandelt.[1]
- Eigentlich sollten Tabellen- und Spaltennamen vorzugsweise ebenfalls groß geschrieben werden, und zwar ohne Anführungszeichen. Aber in der Praxis werden solche Namen meistens „gemischt“ geschrieben.
- String-Literale werden mit einfachen Anführungszeichen gekennzeichnet.
- SQL-Befehle werden mit einem Semikolon abgeschlossen.
- Optionale Argumente (d. h. solche, die nicht unbedingt erforderlich sind) werden in [ ] eingeschlossen.
- Variable Argumente (d. h. solche, die mit unterschiedlichem Inhalt vorkommen) werden in < > eingeschlossen.
- Wahlmöglichkeiten werden durch das Pipe-Zeichen | (den senkrechten Strich) getrennt.
- Listen werden gekennzeichnet durch <inhaltliste>, wobei dies eine Kurzform ist für <inhalt1, inhalt2, ... inhaltn>.
- Sofern das Ergebnis einer Abfrage im Ausgabefenster aufgeführt wird, handelt es sich überwiegend nur um einen Teil des Ergebnisses, gleichgültig ob darauf hingewiesen wird oder nicht.
Die Struktur eines Befehls steht in einem Rahmen mit Courier-Schrift:
SELECT <spaltenliste> FROM <tabellenname> [ WHERE <bedingungsliste> ] ;
So wird eine Aufgabenstellung angezeigt, die mit dem danach folgenden Beispiel erledigt werden soll.
Ein konkretes Beispiel wird mit einem komplexen Rahmen und unterschiedlichen Inhalten (farblicher Hinweis bei Fehlern, mit oder ohne Kopf- und Fußzeile, mit oder ohne Ausgabefenster) dargestellt:
Siehe auch
[Bearbeiten]Unter Weblinks stehen viele zusätzliche Hinweise.
XAMPP bietet eine relativ einfache Installation für eine Arbeitsumgebung mit Webserver Apache, Datenbank MariaDB und PHP-Skriptsprache. MariaDB ist sehr ähnlich zu MySQL und eignet sich gut, SQL zu lernen und zu testen.
- ↑ In der PDF-Version verhindern zurzeit technische Einschränkungen, dass alle diese Begriffe automatisch großgeschrieben werden.