Datendefinitionen

Übersicht

SQL enthält neben den Möglichkeiten zum Erstellen und Ändern von Daten auch eine Datendefinitions- oder -beschreibungssprache (DDL). Diese ermöglicht es, die logischen Datenstrukturen zu beschreiben und zu ändern, also quasi die „Daten über die Daten“. Typische Operationen sind das Erstellen, Ändern und Löschen von Tabellen.

Zunächst aber einige Begrifflichkeiten:

  • Relation: Entspricht quasi einer Tabelle
  • Relationenschema: Information, wie eine Relation aufgebaut ist
  • Attribut: Entspricht einer Spalte einer Tabelle
  • Datentyp: Bezeichnet die Art der Information, die ein Attribut enthalten kann
  • Tupel: Bezeichnet einen Datensatz

Datentypen

Hier eine Liste ausgewählter Datentypen in SQL:

  • VARCHAR(n): Zeichenkette mit var. Länge, max. jedoch n
  • INTEGER: Ganzzahl
  • SMALLINT: kleinere Ganzzahl
  • NUMERIC(p,d): Dezimalzahl mit p Ziffern links und d Ziffern rechts des Kommas
  • REAL, DOUBLE: Gleitkommazahl
  • FLOAT(n): Gleitkommazahl mit benutzerdefinierter Genauigkeit von n Ziffern
  • DATE: Datum
  • TIME: Tageszeit in Stunden, Minuten und Sekunden
  • TIMESTAMP: Datum und Uhrzeit
  • INTERVAL: Zeitperiode

Die Subtraktion von Datum- oder Zeitangaben ergibt einen Intervall-Wert. Einzelne Werte können auch ausgelesen werden, z. B. „EXTRACT(YEAR FROM timestamp)“. Es geht auch umgekehrt: „CAST zeichenkette AS DATE“.

Eigene Datentypen können mit „CREATE DOMAIN“ definiert werden, z. B.:

CREATE DOMAIN personenname CHAR(25) NOT NULL

Erzeugen von Relationenschemata

Syntax:

CREATE TABLE tabellenname (
  Attribut1 Datentyp1,
  Attribut2 Datentyp2
)

Beispiel:

CREATE TABLE filiale (
  filialname    VARCHAR(15) NOT NULL,
  filialstadt   VARCHAR(30)
);

Ändern von Relationenschemata

Syntax:

ALTER TABLE tabellenname ADD Attribut1 Datentyp1
 
ALTER TABLE tabellenname DROP filialstadt

Beispiel:

ALTER TABLE filiale ADD filialnr SMALLINT

Löschen von Relationenschemata

Dies löscht eine Tabelle.

Syntax:

DROP TABLE tabellenname

Indexstrukturen

Indizes dienen dazu, dass auf Daten rascher zugegriffen werden kann. Schlüssel garantieren die Eindeutigkeit der Daten. Dies schlägt sich jedoch auf die Speichergeschwindigkeit und den Platzbedarf nieder.

Zusätzlich können Daten noch „geclustert“ werden, d. h. sie liegen auch am physikalischen Speicher nebeneinander.

Syntax:

CREATE [UNIQUE] INDEX INDEX
ON Relation (Attribut1 Ordnung1, .. , Attribut n Ordnung n)
[CLUSTER]

Beispiel:

CREATE UNIQUE INDEX kundeind1 ON kunde(kundenname ASC)
CLUSTER

Quelle

  • Schikuta, Erich: Datenmodellierung und Datenbanksysteme, FFH, 2008

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne

Loading…
Avatar von manuel

AUTOR

manuel