SQL-Grundbefehle
Die nachfolgend dargestellten Beispiele orientieren sich an der SQL-Implementierung der Datenbank mySQL.
Erstellen, Ändern und Füllen von Tabellen
Eine Tabelle wird mit der Anweisung CREATE TABLE erstellt.
CREATE TABLE Buch (Nr SMALLINT (4) PRIMARY KEY, Autor VARCHAR (20) NOT NULL, Titel VARCHAR (30) NOT NULL, Preis DECIMAL (3,2) NOT NULL, Verlag CHAR (3) NOT NULL, Auslaufend TINYINT, Bestand SMALLINT (4) NOT NULL)
(erstellt die Tabelle Buch mit den Spalten Nr, Autor, Titel, Preis, Verlag, Auslaufend und Bestand)
Moderne RDBMS und Desktop-Datenbanken bieten benutzerfreundliche Werkzeuge zur Erstellung der Tabellen an. Diese generieren die erforderliche CREATE TABLE-Anweisung aus dem Datenmodell automatisch.
Häufige Datentypen sind:
- Zahlen (z.B. SMALLINT, FLOAT, DECIMAL)
- Datum und Uhrzeit (z.B. DATE, DATETIME, TIME)
- Zeichenketten (z.B. CHAR, VARCHAR, BLOB)
NOT NULL bedeutet, dass dem betreffenden Feld ein Wert zugewiesen werden muss (Muss-Feld). Fehlt diese Komponente, kann das Feld auch "leer" bleiben (Kann-Feld).
Unter der Domäne (Domain) eines Feldes wird der gewählte Datentyp für sowie auch die erlaubten Inhalte verstanden. Die Domäne beschreibt den erlaubten Lösungsraum eines Feldes.
Das nachträgliche Hinzufügen einer Spalte wird mit der Anweisung ALTER TABLE bewirkt.
ALTER TABLE Buch ADD Rabatt INT (2) NOT NULL
(fügt der Tabelle Buch die Spalte Rabatt hinzu)
Die manuelle Eingabe eignet sich nicht für Massendaten, weshalb DBMS formularorientierte Anwendungen zur direkten Eingabe der Datensätze bieten. Software für betriebliche Anwendungen nutzt die eingebetteten Datenbankschnittstellen.
Löschen von Datensätzen
Wie auch bei der SELECT-Anweisung wird bei DELETE die Bedingung WHERE zur Auswahl des zu löschenden Datensatzes bestimmt. Normalerweise erfolgt dies durch die gezielte Angabe der ID-Nummer des betreffenden Datensatzes.
DELETE FROM Kunde WHERE ID=4
(löscht den Datensatz mir der angegebenen ID)
Ergibt die Bedingung eine Übereinstimmung in mehreren Datensätzen, so werden alle selektierten gelöscht.
DELETE FROM Kunde WHERE Vorname='Michael'
(löscht alle Datensätze mit dem angegebenen Vornamen)
Einfügen von Datensätzen
Daten müssen natürlich auch eingetragen werden können. Das funktioniert mit INSERT. Nach INTO wird wieder die Tabelle angegeben und diesesmal zusätzlich in Klammer auch die Felder, in die Daten eingefügt werden sollen. Die einzufügenden Werte stehen dann nach VALUES in der zweiten Klammer.
INSERT INTO Kunde (Vorname, Nachname, Strasse, Plz) VALUES ('Maria', 'Santa', 'Columbusstrasse 1492', 2034)
(erstellt in der Tabelle Kunde einen Datensatz und befüllt die Spalten Vorname, Nachname, Strasse und Plz)
Werden alle Felder befüllt, so müssen diese nicht explizit angeführt werden.
INSERT INTO Buch VALUES (5145, 'Hofer', 'Datenbankmodelle', 21,50, 'obv', 'n', 250)
(erstellt in der Tabelle Buch einen Datensatz mit den angegebenen Werten)
Die Syntax von INSERT ist recht unkompliziert. Beachtet werden muss nur, dass die Anzahl der Spalten mit den Werten übereinstimmt. Die Spaltennamen in der ersten Klammer müssen auch nur dann angegeben werden, wenn nicht alle Spalten mit Werten gefüllt werden. Dies ist z.B. bei unserer Beispieltabelle “Kunde” der Fall wo in das ID-Feld nichts eingetragen werden kann, da es von der Datenbank automatisch ausgefüllt wird (ein sogenanntes Auto-Increment Feld).