Einführung in SQL: Einleitung
Aus Wikibooks
Hier erhalten Sie Informationen über Inhalt und Aufbau dieses Buches.
Inhaltsverzeichnis |
[Bearbeiten] Einführung
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.
Dieses Buch soll eine Einführung in die Sprache SQL bieten. Ziel dieses Buches ist es, dass der Leser nach dem Durcharbeiten des Buches 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 sowie
- Bestehende Datenbankstrukturen erweitern.
Um diese Ziele zu erreichen, wird die Sprache anhand praxisnaher Beispiele erläutert.
Die im Buch aufgeführten Beispiele wurden unter Firebird, MySQL 4.1, MySQL 5 und Oracle 9i (jeweils teilweise) getestet. Sie sollten aber auch auf anderen gängigen DBMS funktionieren. Wegen der vielen unterschiedlichen Schreibweisen der SQL-Befehle ist eine vollständige Prüfung leider nicht möglich.
[Bearbeiten] Geschichte von SQL
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 "offizielle SQL-Feststellung" angegeben wird, bezieht sich auf die SQL-2003 Documents, vor allem:
- Jim Melton: Information technology — Database languages — SQL — Part 2: Foundation (SQL/Foundation). August 2003. URL: http://www.wiscorp.com/sql_2003_standard.zip (abgerufen am 10. April 2009), darin enthalten 5WD-02-Foundation-2003-09.pdf
[Bearbeiten] Übersicht über Datenbankmanagementsysteme
[Bearbeiten] Allgemein
Es gibt verschiedene Konzepte von Datenbanken:
- Relationale DBMS
- Objektrelationale DBMS
- Objektorientierte DBMS
Einen Überblick bietet
Liste der Datenbankmanagementsysteme.
Da SQL die Abfragesprache für relationale Datenbanken ist, bezieht sich dieses Buch auch nur auf diese Art von Datenbanken. Das Konzept, welches hinter den relationalen Datenbanken steht, ist im nächsten Kapitel erläutert.
[Bearbeiten] Kommerzielle Datenbankmanagementsysteme
DB2
Informix
Interbase
Microsoft SQL Server siehe auch die Dokumentation
Oracle siehe auch die Dokumentation
Sybase
Microsoft und Oracle bieten auch kostenlose Express-Versionen mit eingeschränkten Möglichkeiten oder Nutzungsrechten an.
[Bearbeiten] Freie Datenbankmanagementsysteme
Firebird siehe auch die Dokumentation
MySQL siehe auch die Dokumentation
PostgreSQL siehe auch die Dokumentation
SQLite siehe auch die Dokumentation
Bei MySQL ist das
Duale Lizenzsystem zu beachten: je nach Nutzungsbedingungen frei oder kostenpflichtig.
- 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.
[Bearbeiten] Weitere Systeme zur Datenverwaltung
Die folgenden Dateisysteme enthalten keine Datenbanken im eigentlichen Sinne, sondern Dateien, die strukturierte Daten speichern und auswerten. 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
OpenOffice
Paradox
Auf diese Dateisysteme wird in diesem Buch nicht weiter eingegangen; Sie müssen in der jeweiligen Programm-Dokumentation nachlesen, welche Befehle und Optionen benutzt werden können.
[Bearbeiten] Testumgebung für Einsteiger
[Bearbeiten] Regeln für die Beispiele
Das Buch ist grundsätzlich schrittweise aufgebaut. Aber nicht immer konnte ich in einem Beispiel nur bereits bekannte Begriffe verwenden. In seltenen Fällen musste ich Bestandteile benutzen, die erst in einem späteren Kapitel behandelt werden; dann habe ich darauf ausdrücklich hingewiesen:
- 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 verwendeten 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 groß geschrieben. SQL selbst verlangt das nicht, sondern arbeitet
case-insensitive; dort werden SELECT, select und sogar sElEcT gleich behandelt. - Eigentlich sollten Tabellen- und Spaltennamen vorzugsweise ebenfalls groß geschrieben werden, und zwar ohne Anführungszeichen. Aber in der Praxis wird meistens die gemischte Schreibweise verwendet.
- String-Konstanten 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>.
Die Struktur eines Befehls wird dargestellt durch einen einfachen Rahmen mit Courier-Schrift:
SELECT <spaltenliste> FROM <tabellenname> [ WHERE <bedingungsliste> ] ;
Dieses Zeichen nennt die Aufgabe, die mit dem danach folgenden Beispiel erledigt werden soll.
Ein konkretes Beispiel wird mit einem komplexen Rahmen und unterschiedlichen Inhalten (abweichende Farbe bei Fehlern, mit oder ohne Kopfzeile, mit oder ohne Ausgabefenster) dargestellt:
- Fußnoten
- ↑ MoWeS bietet eine kostenlose PHP-MySQL-Umgebung für den USB-Stick, die sich gut eignet, MySQL zu lernen und zu testen.