Einführung in SQL: Druckversion: Anhang
Wegen des Umfangs und der Komplexität der einzelnen Kapitel besteht die Druckversion aus mehreren Teilen.
- Tabellenstruktur der Beispieldatenbank
- Befehlsreferenz
- Liste der Schlüsselwörter
- Literaturverzeichnis
- Weblinks
Über das Inhaltsverzeichnis des Buches sind die anderen Teile der Druckversion zu erreichen:
Tabellenstruktur der Beispieldatenbank |
Hier stehen die Definitionen der einzelnen Tabellen; dabei ist in Klammern jeweils der Tabellen-Alias genannt.
In den Tabellen werden folgende Markierungen verwendet:
- Farbige Schrift – Spalten, die durch die nachträglichen Änderungen eingefügt oder geändert werden
- FK – ForeignKey, Fremdschlüssel als Verweis auf eine andere Tabelle
Versicherungsvertrag (vv)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Vertragsnummer | varchar(20) | Pflicht | eindeutig |
Abschlussdatum | date | Pflicht | |
Art | char(2) | Pflicht | nur 'HP' oder 'TK' oder 'VK' |
Mitarbeiter_ID | integer | Pflicht | FK Mitarbeiter |
Fahrzeug_ID | integer | Pflicht | FK Fahrzeug |
Versicherungsnehmer_ID | integer | Pflicht | FK Versicherungsnehmer |
Basispraemie | number | Pflicht | größer als 0 |
Praemiensatz | integer | Pflicht | größer als 0 |
Praemienaenderung | date | optional |
Zuordnung_SF_FZ (zu)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Schadensfall_ID | integer | Pflicht | FK Schadensfall |
Fahrzeug_ID | integer | Pflicht | Verweis auf ein einzelnes beteiligtes Fahrzeug |
Schadenshoehe | number | optional | anteiliger Schaden dieses Fahrzeugs |
Schuldanteil | integer | Pflicht | größer/gleich 0 |
Schadensfall (sf)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Datum | date | Pflicht | |
Ort | varchar(200) | Pflicht | genaue Angabe einschl. Straße und Umgebung |
Beschreibung | varchar(1000) | Pflicht | Angabe der Umstände |
Schadenshoehe | number | optional | Angabe, soweit möglich |
Verletzte | char(1) | Pflicht | nur 'J' oder 'N' |
Mitarbeiter_ID | integer | Pflicht | FK Mitarbeiter |
Versicherungsnehmer (vn)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Name | varchar(30) | Pflicht | |
Vorname | varchar(30) | optional | bei natürlicher Person Pflicht |
Geburtsdatum | date | optional | bei natürlicher Person Pflicht |
Fuehrerschein | date | optional | bei natürlicher Person Pflicht |
Ort | varchar(30) | Pflicht | |
PLZ | char(5) | Pflicht | |
Strasse | varchar(30) | Pflicht | |
Hausnummer | varchar(10) | Pflicht | |
Eigener_Kunde | char(1) | Pflicht | nur 'J' oder 'N' |
Versicherungsgesellschaft_ID | integer | optional | FK Versicherungsgesellschaft bei Fremdkunden |
Geschlecht | char(1) | optional | nur 'W' oder 'M' oder NULL |
Fahrzeug (fz)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Kennzeichen | varchar(10) | Pflicht | eindeutig |
Farbe | varchar(30) | optional | |
Fahrzeugtyp_ID | integer | Pflicht | FK Fahrzeugtyp |
Dienstwagen (dw)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Kennzeichen | varchar(10) | Pflicht | eindeutig |
Farbe | varchar(30) | optional | |
Fahrzeugtyp_ID | integer | Pflicht | FK Fahrzeugtyp |
Mitarbeiter_ID | integer | optional | ggf. FK Mitarbeiter |
Mitarbeiter (mi)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Personalnummer | varchar(10) | Pflicht | eindeutig |
Name | varchar(30) | Pflicht | |
Vorname | varchar(30) | Pflicht | |
Geburtsdatum | date | Pflicht | |
Telefon | varchar(30) | optional | |
Mobil | varchar(30) | optional | |
varchar(50) | optional | ||
Raum | varchar(10) | optional | |
Ist_Leiter | char(1) | Pflicht | nur 'J' oder 'N' |
Abteilung_ID | integer | Pflicht | FK Abteilung |
Geschlecht | char(1) | Pflicht | nur 'W' oder 'M' |
Versicherungsgesellschaft (vg)
Spaltenname | Datentyp | Eigenschaft |
---|---|---|
ID | integer | Primärschlüssel |
Bezeichnung | varchar(30) | Pflicht |
Ort | varchar(30) | optional |
Fahrzeugtyp (ft)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Bezeichnung | varchar(30) | Pflicht | |
Hersteller_ID | integer | Pflicht | FKFahrzeughersteller |
Abteilung (ab)
Spaltenname | Datentyp | Eigenschaft | Erläuterung |
---|---|---|---|
ID | integer | Primärschlüssel | |
Kuerzel | varchar(10) | Pflicht | Datentyp auf CHAR(4) ändern |
Bezeichnung | varchar(30) | Pflicht | |
Ort | varchar(30) | optional |
Fahrzeughersteller (fh)
Spaltenname | Datentyp | Eigenschaft |
---|---|---|
ID | integer | Primärschlüssel |
Name | varchar(30) | Pflicht |
Land | varchar(30) | optional |
In den folgenden Kapiteln werden Änderungen an dieser Struktur behandelt:
Downloads |
Hier wird beschrieben, wie die vorbereiteten Dateien zur Beispieldatenbank verwendet werden können.
- Die vollständige Beispieldatenbank kann (in drei Versionen) aus dem Web-Archiv der Download-Seite heruntergeladen werden.
- Die Skripte zur Erstellung der Beispieldatenbank können wahlweise aus dem Web-Archiv oder aus eigenen Wikibooks-Unterseiten heruntergeladen werden.
- Skripte zur späteren Erweiterung gibt es ebenso sowohl im Web-Archiv als auch auf Wikibooks-Unterseiten.
Was ist ein Skript?
Unter einem Skript versteht man in der EDV eine Liste von Befehlen, die durch einen speziellen Befehl aufgerufen und automatisch nacheinander ausgeführt werden. Die einzelnen Befehle sind meist in einer Datei zusammengefasst und werden dadurch ausgeführt, dass die betreffende Datei aufgerufen wird.
Bei SQL werden solche Dateien unter Windows üblicherweise mit der Endung '.sql'
gespeichert.
Verbindung zu den Datenbanksystemen
In der Regel gibt es verschiedene Möglichkeiten: über eine Befehlszeile oder mit einem GUI-Programm. Der jeweils gängigste Weg hängt vom DBMS ab und wird in dessen Dokumentation beschrieben; im Folgenden wird nur ein Verfahren besprochen.
Die Verbindung zu einem DBMS wird für beide Verfahren benötigt – sowohl zum Öffnen und Bearbeiten einer vorhandenen Datenbank als auch zum Öffnen und Ausführen eines Skripts.
Firebird
Wenn Sie nicht mit einem GUI-Programm arbeiten, funktioniert immer das Basisprogramm ISQL. Registrieren Sie zunächst ein Kürzel für die Datenbank, wie in der QuickStart-Beschreibung unter Use database aliases beschrieben: In der Datei aliases.conf
im Firebird-Verzeichnis ist ein Eintrag wie folgt einzufügen:
# unter Windows wb-datenbank = C:\Users\Public\Documents\WikiBooks\SQL\Beispieldatenbank.fdb # unter Linux wb-datenbank = /home/wikibooks/sql/Beispieldatenbank.fdb
Für diese Änderung werden Administrator-Rechte benötigt. Virtuelle Laufwerke werden nicht erkannt (auch das spricht für den Eintrag eines Alias-Namens für die Datenbank). Selbstverständlich müssen Sie im Verzeichnis der Datenbank alle erforderlichen Rechte erhalten.
Öffnen Sie nun eine Command-Box und wechseln in das Verzeichnis, in dem die Datenbank stehen soll oder sich bereits befindet. Starten Sie den SQL-Interpreter:
C:\Programme\Firebird\bin\isql.exe
Jeder der folgenden Befehle muss mit einem Semikolon abgeschlossen werden. Er kann sich auch auf mehrere Zeilen verteilen.
--- So erstellen Sie die neue Datenbank: SQL> create database 'wb-datenbank' CON> user 'SYSDBA' password 'masterkey' default character set UTF8;
--- Führen Sie das Skript zur Erstellung der Datenbank aus: SQL> input 'CreateScript-Firebird.sql';
--- Schließen Sie den SQL-Interpreter: SQL> quit;
--- So öffnen Sie die die vorbereitete oder die erzeugte Datenbank zur Bearbeitung: SQL> connect 'wb-datenbank' user 'SYSDBA' password 'masterkey';
MS-SQL
Für dieses DBMS gibt es das Programm Microsoft SQL Server Management Studio (SSMS), und zwar für jede Server-Version eine eigene Studio-Version. Beim Programmstart melden Sie sich am Server an; die Zusammenarbeit mit der Datenbank geht über den Objekt-Explorer im Abschnitt Databases.
So registrieren Sie eine vorhandene Datenbank, beispielsweise die fertig vorbereitete Beispieldatenbank:
- Wählen Sie mit einem Rechtsklick auf Databases die Option Attach.
- Wählen Sie über die Schaltfläche Add (Hinzufügen) im oberen Teil des Fensters die betreffende
mdf
-Datei aus und bestätigen Sie die Auswahl mit OK.
So erstellen Sie die Beispieldatenbank mit dem Skript neu:
- Gehen Sie über die Menü-Befehle File | Open | File und wählen Sie die
CreateScript-MSSQL2005.sql
aus. - Führen Sie das Skript mit der Schaltfläche Execute bzw. F5 aus.
In gleicher Weise können Sie zu der Beispieldatenbank spätere Skripte laden und ausführen.
MySQL
Für dieses DBMS gibt es seit einiger Zeit das Programm MySQL Workbench als grafische Benutzeroberfläche. Man kann damit Datenbanken verwalten und darauf zugreifen, es verwirrt aber vielleicht durch seine umfangreichen Möglichkeiten.
Eine vorhandene Datenbank wird automatisch erkannt, sofern sie im richtigen Verzeichnis gefunden wird. Die fertig vorbereitete Beispieldatenbank muss deshalb im data
-Verzeichnis (abhängig von Ihrer MySQL-Installation) gespeichert werden:
c:\ProgramData\MySQL\MySQL Server 5.5\data\beispieldatenbank
So erstellen Sie die Beispieldatenbank mit dem Skript neu:
- Mithilfe der Workbench
- Starten Sie das Programm und rufen mit Strg + U den SQL-Editor auf.
- Die folgenden SQL-Befehle werden mit Strg + Umschalt + Enter bzw. mit dem „Blitz“ ausgeführt.
- Erstellen Sie im Abfragefenster „Query 1“ die neue Datenbank:
create database Beispieldatenbank;
- Geben Sie an, dass diese Datenbank benutzt werden soll:
use Beispieldatenbank;
- Laden Sie das Skript mit Strg + Umschalt + O und führen Sie es als SQL-Befehl aus.
Danach stehen im Objekt-Browser die Tabellen und Daten zur Verfügung, was mit einem SELECT-Befehl im Abfragefenster geprüft werden kann.
- Mit
mysql
im Command-Fenster
- Starten Sie das Dienstprogramm mysql und melden Sie sich am Datenbanksystem mit dem richtigen Passwort (hier durch xxx angedeutet) an:
mysql --user=root --password=xxx -b
- Die folgenden SQL-Befehle werden mit Semikolon abgeschlossen (nicht vergessen!) und mit Enter ausgeführt.
- Erstellen Sie die neue Datenbank:
mysql > create database Beispieldatenbank;
- Geben Sie an, dass diese Datenbank benutzt werden soll:
mysql > use Beispieldatenbank;
- Führen Sie das Skript (ggf. mit dem vollständigen Pfad) aus:
mysql > source CreateScript-MySQL5.sql
Danach stehen die Tabellen und Daten zur Verfügung, was mit einem SELECT-Befehl geprüft werden kann. Mit exit;
wird das Dienstprogramm verlassen.
Oracle
Hinweis: Für Oracle wurde das Skript zur Erstellung der Beispieldatenbank angepasst und durch eine/n Oracle-Kenner/in getestet. Es fehlen noch saubere Formulierungen in diesem Abschnitt.
Für dieses DBMS gibt es das Programm Database Configuration Assistant (DBCA). Starten Sie es mit den Rechten als Administrator des Betriebssystems.
So benutzen Sie eine vorhandene Datenbank, beispielsweise die fertig vorbereitete Beispieldatenbank:
- Dieser Punkt fehlt leider noch.
So erstellen Sie die Beispieldatenbank mit dem Skript neu:
- Das vorbereitete Skript
CreateScript-Oracle11.sql
ist zu ändern: Im ersten Befehl ist nach dem Gleichheitszeichen das von Ihnen vorgesehene Schema anzugeben, beispielsweise:ALTER SESSION SET CURRENT_SCHEMA = S_EINFSQL;
- Wählen Sie den Punkt Create a Database.
- Bei allen folgenden Schritten können Sie die einfachsten Einstellungen übernehmen.
- Im Schritt Database Content wählen Sie das vorbereitete Skript
CreateScript-Oracle11.sql
aus.
Nach Fertigstellen bzw. Finish steht die Datenbank zur Verfügung.
SQLite
Hinweis: Für SQLite wurde das Skript zur Erstellung der Beispieldatenbank angepasst und durch eine SQLite-Kenner/in getestet. Es fehlen noch saubere Formulierungen in diesem Abschnitt.
Für dieses DBMS gibt es das Kommandozeilen-Tool SQLITE3.
So benutzen Sie eine vorhandene Datenbank, beispielsweise die fertig vorbereitete Beispieldatenbank:
sqlite3 Beispieldatenbank.db
So erstellen Sie die Beispieldatenbank mit dem Skript neu:
sqlite3 -init CreateScript-Sqlite.sql Beispieldatenbank.db
Die Download-Seite
Sozusagen anstelle einer Buch-CD wurden verschiedene Dateien, die zur Beispieldatenbank gehören, auf eine Download-Seite ausgelagert. Früher war das bei vs-polis.de
, jetzt handelt es sich um ein Archiv dieser Seite: https://web.archive.org/web/20180829030956/http://vs-polis.de/content/download_sql.html
Die vollständige Beispieldatenbank
Eine fertige Beispieldatenbank steht – für Firebird, MS-SQL 2005 und MySQL 5.5 – als zip
-Datei zur Verfügung. Sie müssen also so vorgehen:
- Drücken Sie auf der archivierten Download-Seite auf die Schaltfläche, die zu Ihrem DBMS gehört.
- Speichern Sie die
zip
-Datei an einer geeigneten Stelle, in der Regel in Ihrem Download-Bereich. - Öffnen Sie die
zip
-Datei zum Extrahieren. - Speichern Sie die darin enthaltenen Datei(en) in einem Arbeitsverzeichnis für die Beispieldatenbank.
Danach können Sie die Beispieldatenbank direkt öffnen und bearbeiten, wie es oben beim DBMS beschrieben ist.
Die Skripte verwenden
- Wählen Sie das Skript für die jeweils gewünschte Aufgabe:
- Wenn Sie die Beispieldatenbank selbst erstellen wollen, sollen oder müssen, drücken Sie auf der archivierten Download-Seite im Abschnitt „Skripte zur Erstellung“ auf die Schaltfläche, die zu Ihrem DBMS gehört – zur Auswahl stehen: Firebird Version 2.1, MS-SQL Versionen 2005 / 2008, Oracle Version 11.
Hinweis: Für MySQL und SQLite ist es (wegen späterer Änderungen) besser, die Alternative mit Unterseiten zu verwenden. - Für verschiedene Arbeiten in den Kapiteln Änderung der Datenbankstruktur und Testdaten erzeugen stehen ebenfalls Skript-Dateien bereit. Wenn Sie eines dieser Skripte nutzen wollen, drücken Sie auf der archivierten Download-Seite im Abschnitt „Skripte zur späteren Erweiterung“ auf die Schaltfläche zu dem gewünschten Arbeitsschritt.
- Wenn Sie die Beispieldatenbank selbst erstellen wollen, sollen oder müssen, drücken Sie auf der archivierten Download-Seite im Abschnitt „Skripte zur Erstellung“ auf die Schaltfläche, die zu Ihrem DBMS gehört – zur Auswahl stehen: Firebird Version 2.1, MS-SQL Versionen 2005 / 2008, Oracle Version 11.
- Wenn mit der linken Maustaste der Download nicht automatisch gestartet wird, dann verwenden Sie die rechte Maustaste und wählen Sie Ziel speichern unter.
- Speichern Sie die Datei in dem Verzeichnis (Ordner), in dem die fertige Datenbank liegen soll, z. B. unter
C:\Users\Public\Documents\WikiBooks\SQL
. - Speichern Sie die Datei dort unter einem sinnvollen Namen, z. B. als
CreateScript-MySQL.sql
(meistens wird ein richtiger Name vorgegeben).
Danach können Sie die gewünschte Aufgabe mit Hilfe dieses Skripts ausführen, wie es oben beim DBMS beschrieben ist.
Alternative mit Unterseiten
Die fertige Beispieldatenbank kann nicht zur Verfügung gestellt werden, weil zip
-Dateien bei Wikibooks nicht hochgeladen werden dürfen. Sie müssen sie deshalb mit einem Skript selbst erstellen.
Für alle Skript-Dateien gilt das gleiche Verfahren; sinnvollerweise sind die Datei, diese Beschreibung und die jeweilige Unterseite gleichzeitig in verschiedenen Fenstern zu öffnen.
- Erstellen Sie mit einem Editor für Textdateien[1] eine neue Datei unter dem Namen, der für das gewünschte Skript sinnvoll ist.
- Öffnen Sie die (leere) Datei zum Bearbeiten.
- Wechseln Sie zu der Unterseite, die den Quelltext des gewünschten Skripts enthält.
- Markieren Sie den gesamten Quelltext. (Die Tastenkombination Strg + A für die Funktion „Alles markieren“ klappt leider nicht, weil nicht nur der Kasten, sondern das gesamte Fenster ausgewählt würde.) Kopieren Sie dann den markierten Bereich in die Zwischenablage, z. B. mit der Tastenkombination Strg + C.
- Wechseln Sie zum Editor in das Eingabefeld für den Text. Fügen Sie dann den Text aus der Zwischenablage in das (bisher leere) Textfeld ein, z. B. mit der Tastenkombination Strg + V.
- Wählen Sie für die Datei den Unicode-Zeichensatz[2] und speichern Sie die Datei.
Danach können Sie die gewünschte Aufgabe mit Hilfe dieses Skripts ausführen, wie es oben beim DBMS beschrieben ist.
Zum Erstellen der Beispieldatenbank
Dafür sind auf jeweils einer eigenen Unterseite die folgenden Skripte vorbereitet.
- CreateScript-Firebird.sql
- CreateScript-MSSQL2005.sql
- CreateScript-MSSQL2008.sql
- CreateScript-MySQL5.sql
- CreateScript-Oracle11.sql
- CreateScript-SQLite.sql
Für einzelne Aufgaben
Für verschiedene Arbeiten in den Kapiteln Änderung der Datenbankstruktur und Testdaten erzeugen stehen auf jeweils einer eigenen Unterseite die folgenden Skripte bereit.
⮞ Bitte beachten Sie unbedingt die Reihenfolge sowie die wichtigen Hinweise im nächsten Abschnitt!
- Skript-Spalten.sql – Hinzufügen und Ändern einzelner Spalten
- Skript-Constraints.sql – Anlegen von UNIQUE KEYs und CHECK-Constraints
- Skript-Indizes.sql – Anlegen weiterer Schlüssel
- Skript-ForeignKeys.sql – Anlegen der Fremdschlüssel
- Skript-Anpassung.sql – Änderung der Daten nach den vorstehenden Änderungen
- Skript-Testdaten.sql – Anlegen „vieler“ weiterer Daten
Wichtige Hinweise
Wenn es zu Ihrer Version des DBMS keine vorbereitete Skript-Datei gibt, dann holen Sie sich eine andere (möglichst für eine ähnliche Version) und gehen Sie genauso vor. In diesem Fall sind Fehler beim Erzeugen der Datenbank zu erwarten. Dann müssen Sie nach der Beschreibung des betreffenden SQL-Dialekts im Skript nach und nach alle Fehler beseitigen, bis die Tabellen und Datensätze gespeichert werden.
⮞ Diese Änderungen dürfen erst an den entsprechenden Stellen in diesen Kapiteln ausgeführt werden; vorher fehlt die notwendige Sachkenntnis. Außerdem muss – wie dort erläutert – die Reihenfolge der Änderungen beachtet werden, und vergessen Sie nicht die Datensicherung vorher und zwischendurch.
Diese Änderungen sind teilweise sehr komplex. Gehen Sie deshalb immer schrittweise vor:
- Machen Sie ein Backup der Datenbank mit dem vorherigen, fehlerfreien Bestand.
- Führen Sie den nächsten SQL-Befehl aus (niemals das vollständige Skript!).
- Kontrollieren Sie das Ergebnis.
- Beim Auftreten von Fehlern ist das letzte Backup zurückzuholen (Restore).
Wegen der Vielfalt der DBMS und der Versionen sind Fehler in den vorbereiteten Skripten leider nicht zu vermeiden.
Bitte arbeiten Sie mit! Die Autoren und die künftigen Leser sind Ihnen deshalb sehr dankbar, wenn Sie in einem solchen Fall die fehlerfreie Fassung der sql -Datei mit entsprechenden Erläuterungen auf der Diskussionsseite zur Verfügung stellen. Damit helfen Sie bei der Verbesserung und der Erweiterung dieses Buches.
|
- ↑ Geeignet sind z. B. folgende Programme:
- Unter Windows:
Notepad++
– aber nicht die Windows-eigenenEditor
oderNotepad
- Unter Linux wahlweise:
ed vi vim
- Unter MacOS:
ed vi TextEdit
- Unter Windows:
- ↑ Bei Linux und MacOS ist Unicode sowieso Standard. Bei Windows wird die Einstellung "UTF-8 (ohne BOM)" benötigt; bei Notepad++ ist sie unter dem Menü-Befehl „Kodierung“ zu finden. Siehe Erläuterungen bei Wikipedia: UTF-8 sowie BOM
Befehlsreferenz |
Für diese Übersicht[1] gelten die gleichen Hinweise, wie sie in der Einleitung genannt sind.
Die Struktur der Befehle richtet sich nach der SQL-Dokumentation. Beispiele sind nur dann erwähnt, wenn sie in diesem Buch nicht enthalten sind, aber dennoch von Bedeutung sein können.
Bitte beachten Sie vor allem die SQL-Dialekte: Verschiedene Optionen gelten nur manchmal, nicht immer oder mit anderen Schreibweisen.
DDL (Data Definition Language)
Zu dieser Kategorie gehören Befehle, die die Datenbank-Objekte beschreiben. Die grundlegenden Befehle lauten:
CREATE <object> <name> <details> erzeugt ein Objekt ALTER <object> <name> <details> ändert ein Objekt DROP <object> <name> löscht ein Objekt
TABLE – Tabelle bearbeiten
CREATE TABLE
Dieser Befehl legt eine neue Tabelle an. Basissyntax:
CREATE TABLE <tabellenname> [(<felddefinitionsliste>) | AS <select-statement>]
Syntax einer einzelnen <felddefinition>:
<feldbezeichnung> <feldtyp> [(<feldgröße>)] [<nullable>] [DEFAULT <defaultwert>]
Als <feldtyp> stehen die Datentypen des jeweiligen DBMS zur Verfügung, z. B. CHAR, VARCHAR, INT, FLOAT.
<nullable> gibt an, ob das Feld leer bleiben darf (NULL) oder ob ein Wert vorhanden sein muss (NOT NULL).
Als <defaultwert> kann ein Wert vorgegeben werden, der automatisch gespeichert wird, falls das Feld nicht leer bleiben darf, aber kein Wert eingegeben wurde.
<select-statement> ist eine Abfrage durch SELECT, die als Grundlage für die neue Tabelle verwendet wird.
Beispiele
-- Eine neue Tabelle mit 2 Feldern anlegen CREATE TABLE testtab (feld1 varchar (20), feld2 number (20))
-- Eine neue Tabelle aus einem SELECT-Statement erstellen CREATE TABLE testtab AS SELECT feld1, feld2 FROM testtab2
ALTER TABLE
Dieser Befehl verändert eine bestehende Tabelle. Basissyntax:
ALTER TABLE <tabellenname> <alterstatement>
<alterstatement> kann eins der folgenden sein:
-- Tabelle umbenennen RENAME TO <neuername>
-- Feld(er) hinzufügen ADD (<felddefinitionsliste>)
-- Feld ändern MODIFY <felddefinition>
-- Feld(er) löschen DROP (<feldliste>)
-- Haupt-/ Fremdschlüssel hinzufügen ADD CONSTRAINT <schlüsselname> <schlüsseldefinition>
-- Haupt-/ Fremdschlüssel löschen DROP PRIMARY KEY -- Hauptschlüssel DROP FOREIGN KEY <schlüsselname> -- Fremdschlüssel
-- Index erstellen ADD INDEX <indexname> [<indextyp>] (<feldliste>)
-- Index löschen DROP INDEX <indexname>
<schlüsseldefinition> kann eine der folgenden sein:
-- Hauptschlüssel PRIMARY KEY (<feldliste>) -- Fremdschlüssel FOREIGN KEY (<feldliste>) REFERENCES <herkunftstabelle> (<feldliste>)
<indextyp> kann (in den meisten Fällen) folgender sein:
UNIQUE PRIMARY FULLTEXT
Beispiele
-- Tabelle umbenennen ALTER, TABLE testtab RENAME TO tab2
-- Feld hinzufügen ALTER TABLE testtab ADD (feld1 number(59)) ALTER TABLE testtab ADD (feld2 date NOT NULL) ALTER TABLE testtab ADD (feld3 number(50) DEFAULT 10)
-- Ein Feld auf NUMBER, Länge 50 und NULL ändern: ALTER TABLE testtab MODIFY feld1 number (50) NULL
-- Feld löschen ALTER TABLE testtab DROP feld1
-- Primary-Key erstellen: ALTER TABLE testtab ADD CONSTRAINT primary_key_bezeichnung PRIMARY KEY (feld1)
-- Primary-Key löschen ALTER TABLE testtab DROP PRIMARY KEY
-- Foreign-Key erstellen: ALTER TABLE testtab ADD CONSTRAINT foreign_key_bezeichnung FOREIGN KEY (feld1) REFERENCES tab2 (feld2)
-- Foreign-Key löschen ALTER TABLE testtab DROP FOREIGN KEY foreign_key_bezeichnung
-- Index erstellen ALTER TABLE testtab ADD INDEX index_name index_typ (feld1)
-- Index löschen ALTER TABLE testtab DROP INDEX index_name
DROP TABLE
Tabelle testtab löschen:
DROP TABLE testtab
Tabelle testtab inklusive Constraints löschen:
DROP TABLE testtab CASCADE CONSTRAINTS
INDEX – Index bearbeiten
CREATE INDEX
CREATE INDEX <indexname> on <tabellenname> (<feld>); CREATE INDEX <indexname> on <tabellenname> (<feld1>,<feld2>,...);
DROP INDEX
DROP INDEX <indexname>
VIEW – Ansicht auf Tabellen
CREATE VIEW
Eine spezielle Sicht auf eine oder mehrere Tabellen erzeugen:
CREATE VIEW <name> AS <select expression>
Als <select expression> kann ein „beliebiger“ SELECT-Befehl verwendet werden.
DROP VIEW
DROP VIEW <name>
Einzelheiten
Diese Befehle und Varianten werden in folgenden Kapiteln genauer behandelt:
DML – Data Manipulation Language
Diese Kategorie umfasst die Befehle, die etwas mit einem Datenbestand machen.
Abfragen mit SELECT
Mit dem SELECT-Befehl werden Daten aus einer oder mehreren Tabellen abgerufen.
SELECT [ DISTINCT | ALL ] <select list> FROM <table reference list> [ WHERE <bedingungsliste> ] [ GROUP BY <spaltenliste> ] [ HAVING <bedingungsliste> ] [ { UNION [ALL] | INTERSECT | MINUS } <abfrage-ausdruck> ] [ ORDER BY <spaltenliste> ]
Dieser Befehl und seine Klauseln werden vor allem unter Ausführliche SELECT-Struktur behandelt.
Neuaufnahmen mit INSERT
Mit dem INSERT-Befehl werden Daten in einer Tabelle erstmals gespeichert. Als Syntax gibt es vor allem zwei Varianten:
INSERT INTO <name> [ <spaltenliste> ] VALUES ( <werteliste> ) INSERT INTO <name> [ <spaltenliste> ] SELECT <select expression>
Als <name> ist eine vorhandene Tabelle anzugeben. Unter bestimmten starken Einschränkungen kann auch eine VIEW angegeben werden, siehe dort.
Als <spaltenliste> können eine oder mehrere Spalten der Tabelle aufgeführt werden.
- Spalten, die in dieser Liste genannt werden, bekommen einen Wert aus der <werteliste> bzw. dem SELECT-Ausdruck zugewiesen.
- Spalten, die in dieser Liste nicht genannt werden, bekommen einen DEFAULT-Wert oder NULL zugewiesen; dies hängt von der Tabellendefinition für die betreffende Spalte ab.
- Die Reihenfolge der Spalten in der <spaltenliste> muss mit der Reihenfolge der Daten in der <werteliste> bzw. dem <select expression> übereinstimmen. Die Datentypen müssen übereinstimmen oder zumindest soweit „kompatibel“ sein, dass sie automatisch (implizit) konvertiert werden können.
Wenn durch <spaltenliste> keine Spalten angegeben werden, müssen alle Spalten aus der Tabellendefinition in dieser Reihenfolge mit Inhalt versehen werden, und sei es ausdrücklich mit NULL.
Die <werteliste> besteht aus einem oder mehreren Werten (entsprechend der <spaltenliste>). Dabei kann es sich um konstante Werte oder Ergebnisse einfacher Funktionen handeln, aber auch um Abfragen. Wenn komplexe Ausdrücke als Werte zugewiesen werden sollen, ist die Variante mit SELECT zu verwenden.
Einzelheiten werden behandelt in:
Änderungen mit UPDATE
Mit dem UPDATE-Befehl werden Daten in einer Tabelle geändert, und zwar für eine oder mehrere Spalten in einem oder mehreren Datensätzen. Der Befehl benutzt diese Syntax:
UPDATE <name> SET <spalte1> = <wert1> [ , <spalte2> = <wert2> , usw. <spalten> = <wertn> ] [ WHERE <bedingungsliste> ];
Als <name> ist eine vorhandene Tabelle anzugeben. Unter bestimmten starken Einschränkungen kann auch eine VIEW angegeben werden, siehe dazu dort.
Die Wertzuweisungsliste in der SET-Klausel besteht aus einer oder (mit Komma verbunden) mehreren Wertzuweisungen.
Die WHERE-Klausel arbeitet mit einer oder mehreren Bedingungen in der gleichen Weise wie beim SELECT-Befehl. Wenn keine WHERE-Bedingung angegeben wird, werden alle Zeilen geändert.
Einzelheiten werden behandelt in:
Löschungen mit DELETE
Mit dem DELETE-Befehl werden Daten in einer Tabelle gelöscht, und zwar null, eine, mehrere oder alle Zeilen mit einem einzigen Befehl. Dieser benutzt die folgende Syntax:
DELETE FROM <name> [ WHERE <bedingungsliste> ];
Als <name> ist eine vorhandene Tabelle anzugeben. Unter bestimmten starken Einschränkungen kann auch eine VIEW angegeben werden, siehe dazu dort.
Die WHERE-Klausel arbeitet mit einer oder mehreren Bedingungen in der gleichen Weise wie beim SELECT-Befehl. Wenn keine WHERE-Bedingung angegeben wird, werden alle Zeilen gelöscht.
Einzelheiten werden behandelt in:
Tabelle leeren mit TRUNCATE
Mit dem TRUNCATE-Befehl werden sämtliche Daten in einer Tabelle gelöscht:
TRUNCATE TABLE <name>;
Dies entspricht dem DELETE-Befehl ohne WHERE-Klausel:
DELETE FROM <name>;
Bei diesen beiden Befehlen gibt es allerdings den Unterschied, dass die gelöschten Daten nach TRUNCATE nicht mehr mit ROLLBACK wiederhergestellt werden können, da die Transaktion implizit abgeschlossen wird. Da deshalb keine Protokollierung stattfindet, ist die Anweisung üblicherweise schneller als eine entsprechende DELETE-Anweisung.
Achtung: TRUNCATE TABLE kann nicht mit Foreign Keys umgehen!
TCL – Transaction Control Language
Transaktionen sorgen für die Datenintegrität: Anweisungen, die logisch zusammengehören, werden entweder alle vollständig oder überhaupt nicht ausgeführt. Die TCL-Anweisungen steuern Transaktionen.
Bestätigen mit COMMIT
Abschließen einer Transaktion, wobei alle seit Beginn der Transaktion durchgeführten Änderungen bestätigt und endgültig gespeichert werden.
COMMIT;
Nicht alle Datenbanken unterstützen Transaktionen. Einige können auch je nach Konfiguration oder verwendetem Tabellentyp in verschiedenen Modi arbeiten. So findet im sogenannten „Auto Commit“-Modus nach Ausführung jeder DML-Anweisung sofort ein COMMIT statt, die Änderungen können also nicht mehr über ROLLBACK rückgängig gemacht werden.
Widerruf mit ROLLBACK
Abschließen einer Transaktion, wobei alle seit Beginn der Transaktion durchgeführten Änderungen rückgängig gemacht werden.
ROLLBACK;
Soweit das verwendete DBMS Transaktionen unterstützt, wird durch die ROLLBACK-Anweisung der Dateninhalt auf den Zustand vor Ausführung der seit dem letzten COMMIT/ROLLBACK durchgeführten Datenmanipulationen zurückgesetzt.
DCL – Data Control Language
Eine „vollwertige“ SQL-Datenbank enthält umfassende Regelungen darüber, wie Zugriffsrechte auf Objekte (Tabellen, einzelne Felder, interne Funktionen usw.) vergeben werden. Am Anfang stehen diese Rechte nur dem Ersteller der Datenbank und dem System-Administrator zu. Andere Benutzer müssen ausdrücklich zu einzelnen Handlungen ermächtigt werden.
Die vielfältigen Abstufungen der Rechte und Optionen sind in der jeweiligen DBMS-Dokumentation nachzulesen.
GRANT
Mit diesem Befehl wird ein Recht übertragen:
GRANT <privileg> ON <objekt> TO <benutzer>
Beispiele:
- Der Benutzer Herr_Mueller darf Abfragen auf die Tabelle Abteilungen stellen.
GRANT SELECT ON Abteilungen TO Herr_Mueller
- Die Benutzerin Frau_Schulze darf die Tabelle Abteilungen ändern.
GRANT UPDATE ON Abteilungen TO Frau_Schulze
REVOKE
Mit diesem Befehl wird ein Recht widerrufen:
REVOKE <privileg> ON <objekt> FROM <benutzer>
Beispiel: Herr_Mueller darf künftig keine solche Abfragen mehr ausführen.
REVOKE SELECT ON Abteilungen FROM Herr_Mueller
- ↑ Diese Befehlsreferenz war Teil eines nicht mehr vorhandenen Buches SQL. Bei der Übernahme wurden Gliederung und Struktur angepasst, Beispiele weitgehend gestrichen, weil sie sowieso Teil des Buches sind, und auf die WebLinks verzichtet, weil diese in der Einleitung und den Weblinks stehen. Die Versionsgeschichte und die Diskussionsseite enthalten die früheren Beiträge weiterhin.
Schlüsselwörter |
Mithilfe der Schlüsselwörter kann ein DBMS in einer beliebigen Zeichenkette SQL-Befehle, weitere feste Begriffe und ergänzende Angaben unterscheiden.
- Reservierte Begriffe
- Diese werden für SQL-Befehle und ähnliche feststehende Angaben verwendet.
- Nicht-reservierte Begriffe
- Diese sind nach SQL-Standard eigentlich freigegeben und für spezielle Verwendung nur vorbereitet.
In der Praxis macht diese Unterscheidung keinen Sinn; in der folgenden Aufstellung wird sie deshalb nur als Hinweis [res]
bzw. [non]
erwähnt.
Sie sollten Schlüsselwörter niemals für eigene Bezeichner wie Tabellen, Spalten, Prozeduren usw. verwenden! |
A
[res] ABS ALL ALLOCATE ALTER AND ANY ARE ARRAY AS ASENSITIVE ASYMMETRIC AT ATOMIC AUTHORIZATION AVG
[non] A ABSOLUTE ACTION ADA ADD ADMIN AFTER ALWAYS ASC ASSERTION ASSIGNMENT ATTRIBUTE ATTRIBUTES
B
[res] BEGIN BETWEEN BIGINT BINARY BLOB BOOLEAN BOTH BY
[non] BEFORE BERNOULLI BREADTH
C
[res] CALL CALLED CARDINALITY CASCADED CASE CAST CEIL CEILING CHAR CHAR_LENGTH CHARACTER CHARACTER_LENGTH CHECK CLOB CLOSE COALESCE COLLATE COLLECT COLUMN COMMIT CONDITION CONNECT CONSTRAINT CONVERT CORR CORRESPONDING COUNT COVAR_POP COVAR_SAMP CREATE CROSS CUBE CUME_DIST CURRENT CURRENT_DATE CURRENT_DEFAULT_TRANSFORM_GROUP CURRENT_PATH CURRENT_ROLE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TRANSFORM_GROUP_FOR_TYPE CURRENT_USER CURSOR CYCLE
[non] C CASCADE CATALOG CATALOG_NAME CHAIN CHARACTER_SET_CATALOG CHARACTER_SET_NAME CHARACTER_SET_SCHEMA CHARACTERISTICS CHARACTERS CLASS_ORIGIN COBOL COLLATION COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA COLUMN_NAME COMMAND_FUNCTION COMMAND_FUNCTION_CODE COMMITTED CONDITION_NUMBER CONNECTION CONNECTION_NAME CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA CONSTRAINTS CONSTRUCTOR CONTAINS CONTINUE CURSOR_NAME
D
[res] DATE DAY DEALLOCATE DEC DECIMAL DECLARE DEFAULT DELETE DENSE_RANK DEREF DESCRIBE DETERMINISTIC DISCONNECT DISTINCT DOUBLE DROP DYNAMIC
[non] DATA DATETIME_INTERVAL_CODE DATETIME_INTERVAL_PRECISION DEFAULTS DEFERRABLE DEFERRED DEFINED DEFINER DEGREE DEPTH DERIVED DESC DESCRIPTOR DIAGNOSTICS DISPATCH DOMAIN DYNAMIC_FUNCTION DYNAMIC_FUNCTION_CODE
E
[res] EACH ELEMENT ELSE END END-EXEC ESCAPE EVERY EXCEPT EXEC EXECUTE EXISTS EXP EXTERNAL EXTRACT
[non] EQUALS EXCEPTION EXCLUDE EXCLUDING
F
[res] FALSE FETCH FILTER FLOAT FLOOR FOR FOREIGN FREE FROM FULL FUNCTION FUSION
[non] FINAL FIRST FOLLOWING FORTRAN FOUND
G
[res] GET GLOBAL GRANT GROUP GROUPING
[non] G GENERAL GENERATED GO GOTO GRANTED
H
[res] HAVING HOLD HOUR
[non] HIERARCHY
I
[res] IDENTITY IN INDICATOR INNER INOUT INSENSITIVE INSERT INT INTEGER INTERSECT INTERSECTION INTERVAL INTO IS
[non] IMMEDIATE IMPLEMENTATION INCLUDING INCREMENT INITIALLY INPUT INSTANCE INSTANTIABLE INVOKER ISOLATION
J
[res] JOIN
K
[non] K KEY KEY_MEMBER KEY_TYPE
L
[res] LANGUAGE LARGE LATERAL LEADING LEFT LIKE LN LOCAL LOCALTIME LOCALTIMESTAMP LOWER
[non] LAST LENGTH LEVEL LOCATOR
M
[res] MATCH MAX MEMBER MERGE METHOD MIN MINUTE MOD MODIFIES MODULE MONTH MULTISET
[non] M MAP MATCHED MAXVALUE MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MESSAGE_TEXT MINVALUE MORE MUMPS
N
[res] NATIONAL NATURAL NCHAR NCLOB NEW NO NONE NORMALIZE NOT NULL NULLIF NUMERIC
[non] NAME NAMES NESTING NEXT NORMALIZED NULLABLE NULLS NUMBER
O
[res] OCTET_LENGTH OF OLD ON ONLY OPEN OR ORDER OUT OUTER OVER OVERLAPS OVERLAY
[non] OBJECT OCTETS OPTION OPTIONS ORDERING ORDINALITY OTHERS OUTPUT OVERRIDING
P
[res] PARAMETER PARTITION PERCENT_RANK PERCENTILE_CONT PERCENTILE_DISC POSITION POWER PRECISION PREPARE PRIMARY PROCEDURE
[non] PAD PARAMETER_MODE PARAMETER_NAME PARAMETER_ORDINAL_POSITION PARAMETER_SPECIFIC_CATALOG PARAMETER_SPECIFIC_NAME PARAMETER_SPECIFIC_SCHEMA PARTIAL PASCAL PATH PLACING PLI PRECEDING PRESERVE PRIOR PRIVILEGES PUBLIC
Q
R
[res] RANGE RANK READS REAL RECURSIVE REF REFERENCES REFERENCING REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY RELEASE RESULT RETURN RETURNS REVOKE RIGHT ROLLBACK ROLLUP ROW ROW_NUMBER ROWS
[non] READ RELATIVE REPEATABLE RESTART RESTRICT RETURNED_CARDINALITY RETURNED_LENGTH RETURNED_OCTET_LENGTH RETURNED_SQLSTATE ROLE ROUTINE ROUTINE_CATALOG ROUTINE_NAME ROUTINE_SCHEMA ROW_COUNT
S
[res] SAVEPOINT SCOPE SCROLL SEARCH SECOND SELECT SENSITIVE SESSION_USER SET SIMILAR SMALLINT SOME SPECIFIC SPECIFICTYPE SQL SQLEXCEPTION SQLSTATE SQLWARNING SQRT START STATIC STDDEV_POP STDDEV_SAMP SUBMULTISET SUBSTRING SUM SYMMETRIC SYSTEM SYSTEM_USER
[non] SCALE SCHEMA SCHEMA_NAME SCOPE_CATALOG SCOPE_NAME SCOPE_SCHEMA SECTION SECURITY SELF SEQUENCE SERIALIZABLE SERVER_NAME SESSION SETS SIMPLE SIZE SOURCE SPACE SPECIFIC_NAME STATE STATEMENT STRUCTURE STYLE SUBCLASS_ORIGIN
T
[res] TABLE TABLESAMPLE THEN TIME TIMESTAMP TIMEZONE_HOUR TIMEZONE_MINUTE TO TRAILING TRANSLATE TRANSLATION TREAT TRIGGER TRIM TRUE
[non] TABLE_NAME TEMPORARY TIES TOP_LEVEL_COUNT TRANSACTION TRANSACTION_ACTIVE TRANSACTIONS_COMMITTED TRANSACTIONS_ROLLED_BACK TRANSFORM TRANSFORMS TRIGGER_CATALOG TRIGGER_NAME TRIGGER_SCHEMA TYPE
U
[res] UESCAPE UNION UNIQUE UNKNOWN UNNEST UPDATE UPPER USER USING
[non] UNBOUNDED UNCOMMITTED UNDER UNNAMED USAGE USER_DEFINED_TYPE_CATALOG USER_DEFINED_TYPE_CODE USER_DEFINED_TYPE_NAME USER_DEFINED_TYPE_SCHEMA
V
[res] VALUE VALUES VAR_POP VAR_SAMP VARCHAR VARYING
[non] VIEW
W
[res] WHEN WHENEVER WHERE WIDTH_BUCKET WINDOW WITH WITHIN WITHOUT
[non] WORK WRITE
X
Y
[res] YEAR
Z
[non] ZONE
Diese Aufstellung wurde übernommen aus SQL-2003 Documents:
- 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 pp.136
Literaturverzeichnis |
- Faeskorn-Woyke, Heide; Bertelsmeier, Birgit; Riemer, Petra; Bauer, Elena: Datenbanksysteme, Theorie und Praxis mit SQL2003, Oracle und MySQL. Pearson-Studium, München 2007, ISBN 978-3-8273-7266-6.
- Hernandez, Michael J.; Viescas, John: Go To SQL. Addison-Wesley, München 2001, ISBN 3-8273-1772-X.
- Kosch, Andreas: InterBase-Datenbankentwicklung mit Delphi. Software & Support Verlag, Frankfurt a.M. 2001, ISBN 3-935042-09-4.
- Kuhlmann, Gregor; Müllmerstadt, Friedrich: SQL. Rowohlt, Reinbek 2004, ISBN 3-499-61245-3.
- Marsch, Jürgen; Fritze, Jörg: Erfolgreiche Datenbankanwendung mit SQL3. Praxisorientierte Anleitung – effizienter Einsatz – inklusive SQL-Tuning. Vieweg + Teubner, Wiesbaden 2002, ISBN 3-528-55210-7.
- Matthiessen, Günter; Unterstein, Michael: Relationale Datenbanken und Standard-SQL – Konzepte der Entwicklung und Anwendung. Addison-Wesley, München 2007, ISBN 3-8273-2085-2.
- Schicker, Edwin: Datenbanken und SQL – Eine praxisorientierte Einführung mit Hinweisen zu Oracle und MS-Access. Vieweg + Teubner, Wiesbaden 2000, ISBN 3-519-22991-9.
- Türker, Can: SQL 1999 & SQL 2003. dpunkt.Verlag, Heidelberg 2003, ISBN 3-89864-219-4.
- Warner, Daniel, Günter Leitenbauer: SQL. Franzis, Poing 2003, ISBN 3-7723-7527-8.
Weblinks |
Hier gibt es weitere Informationen zum Thema SQL.
Bücher in Wikibooks
Allgemeines zur Datenbank-Programmierung
Wikipedia bietet folgende Erläuterungen:
Außerdem gibt es Artikel zum Überblick:
- Relationale Datenbank
- Objektrelationale Datenbank
- Objektorientiertes Datenbankmodell
- Liste der Datenbankmanagementsysteme
Beiträge zu SQL allgemein
- SQL-2003 Documents (abgerufen am 10. April 2009), vor allem:
Jim Melton: Information technology – Database languages – SQL – Part 2: Foundation (SQL/Foundation). August 2003 (als 5WD-02-Foundation-2003-09.pdf in den Dokumenten enthalten). - The 1995 SQL Reunion: People, Projects, and Politics (zur frühen Geschichte von SQL)
- Interaktiver SQL-Trainer (nach Anmeldung aufrufbar)
Bestimmte SQL-Datenbanksysteme
Wenn nichts anderes gesagt wird, handelt es sich um deutschsprachige Seiten.
- allgemein: Das Db2 SQL Cookbook (englisch) enthält viele nützliche SQL-Tipps, die auch bei anderen Datenbanken anwendbar sind. Ursprünglich stammt es von Graeme Birchall und wird jetzt von Rodney Krick (mit Unterstützung der Community) fortgeführt.
- DB2 (IBM):
- DB2 (Wikipedia-Artikel)
- Dokumentation zu DB2 V9 LUW
- Startseite von IBM zu DB2 z/OS (englisch)
- Firebird:
- Firebird (Wikipedia-Artikel)
- Über Firebird Documentation Index (englisch) sind viele Einzelteile zu finden – teils als HTML-Seiten, teils als PDF-Dateien, zum Teil auch auf Deutsch
- Fyracle (Firebird Oracle Mode) bietet mit der Fyracle Developer Kit Documentation (englisch) auch eine Ergänzung für die Programmierung mit SQL.
- MariaDB:
- MariaDB (Wikipedia-Artikel)
- MariaDB-Startseite mit Vergleich zwischen MySQL und MariaDB
- Knowledge Base (trotz des Seitentitels Vieles auf Deutsch)
- Microsoft SQL Server:
- Microsoft SQL Server (Wikipedia-Artikel)
- SQL-Server – von dort aus Verzweigung zu vielen Teilen der Dokumentation auch für frühere Versionen
- MySQL:
- MySQL (Wikipedia-Artikel)
- MySQL Documentation (Überblick englisch – deutschsprachige Seiten sind nicht mehr verfügbar)
- Reference Manual 5.7 (englisch)
- Oracle:
- Oracle (Wikipedia-Artikel)
- Oracle Documentation (englisch) als Überblick, speziell beispielsweise:
- Database Reference 10g Release 2 (10.2)
- PostgreSQL:
- PostgreSQL (Wikipedia-Artikel)
- Documentation (englisch) verfügbar ab Version 8.0
- SQLite:
- SQLite (Wikipedia-Artikel)
- Documentation (englisch)
- Sybase (Wikipedia-Artikel)
Andere Datenverwaltung
Über Wikipedia gibt es einführende Erläuterungen und Verweise:
Lizenz |
Dieser Text ist sowohl unter der „Creative Commons Attribution/Share-Alike“-Lizenz 3.0 als auch GFDL lizenziert.
Eine deutschsprachige Beschreibung für Autoren und Weiternutzer findet man in den Nutzungsbedingungen der Wikimedia Foundation.