SQL-Grundbefehle: Unterschied zwischen den Versionen

Aus IV1
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
== Erstellen, Ändern und Füllen von Tabellen ==
== Erstellen, Ändern und Füllen von Tabellen ==


Eine Tabelle wird mit der '''CREATE TABLE'''-Anweisung erstellt.
Eine Tabelle wird mit der Anweisung '''CREATE TABLE''' erstellt.
 
Beispiel für die Tabelle ''Buch'':
<pre>CREATE TABLE Buch
<pre>CREATE TABLE Buch
(Nr SMALLINT (4) PRIMARY KEY,
(Nr SMALLINT (4) PRIMARY KEY,
Zeile 14: Zeile 12:
Auslaufend TINYINT,
Auslaufend TINYINT,
Bestand SMALLINT (4) NOT NULL)</pre>
Bestand SMALLINT (4) NOT NULL)</pre>
(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.
Moderne RDBMS und Desktop-Datenbanken bieten benutzerfreundliche Werkzeuge zur Erstellung der Tabellen an. Diese generieren die erforderliche CREATE TABLE-Anweisung aus dem Datenmodell automatisch.
Zeile 28: Zeile 27:


Das nachträgliche Hinzufügen einer Spalte wird mit der Anweisung '''ALTER TABLE''' bewirkt.
Das nachträgliche Hinzufügen einer Spalte wird mit der Anweisung '''ALTER TABLE''' bewirkt.
<pre>ALTER TABLE Buch
ADD Rabatt INT (2) NOT NULL
</pre>
(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.
<pre>DELETE FROM Kunde
WHERE ID=4</pre>
(löscht den Datensatz mir der angegebenen ID)


<pre>ALTER TABLE Buch ADD Rabatt INT (2) NOT NULL
</pre>
Ergibt die Bedingung eine Übereinstimmung in mehreren Datensätzen, so werden alle selektierten gelöscht.
(fügt der Tabelle ''Buch'' die Spalte ''Rabatt'' hinzu)
<pre>DELETE FROM Kunde
WHERE Vorname='Michael'</pre>
(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.
<pre>INSERT INTO Kunde (Vorname, Nachname, Strasse, Plz)
VALUES ('Maria', 'Santa', 'Columbusstrasse 1492', 2034)</pre>
(erstellt in der Tabelle ''Kunde'' einen Datensatz und befüllt die Spalten ''Vorname'', ''Nachname'', ''Strasse'' und ''Plz'')


Ein neuer Datensatz kann z.B. wie folgt eingegeben werden:
Werden alle Felder befüllt, so müssen diese nicht explizit angeführt werden.
<pre>INSERT INTO Buch VALUES
<pre>INSERT INTO Buch
(5145, 'Hofer', 'Datenbankmodelle', 21,50, 'obv', 'n', 250)</pre>
VALUES (5145, 'Hofer', 'Datenbankmodelle', 21,50, 'obv', 'n', 250)</pre>
(erstellt in der Tabelle ''Buch'' einen Datensatz mit den angegebenen Werten)


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.
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).

Version vom 21. Februar 2009, 18:11 Uhr

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).