Databases Reference
In-Depth Information
insert into farben(farbe) values('Pik');
insert into farben(farbe) values('Kreuz')
werden die Datensätze automatisch mit Werten für die
id
von 1 bis 4 durchnum-
meriert. Je nach SQL-Dialekt gibt es zahlreiche Variationen für den Einsatz von
generated
. Teilweise kann man den Anfangswert oder die Inkremente angeben,
teilweise werden anstatt
generated
auch andere proprietäre Schlüsselworte wie
serial
oder
auto_increment
verwendet.
5.11
Statische Regeln
Aus einem Relationentyp können wir weitere Integritätsregeln ableiten. Für den
Relationentyp
mitarbeiter(
id
, name, geschlecht, email, zugehörigkeit, gehalt)
können wir etwa geeignete Datentypen für die Spalten ermitteln und ein passen-
des Tabellenschema anlegen:
create table mitarbeiter(
id int generated always as identity primary key,
name varchar(20),
geschlecht varchar(1),
email varchar(20) unique,
zugehoerigkeit int,
gehalt int
)
Wir nehmen an, dass es neben dem Primärschlüssel
id
und dem Schlüsselkandi-
daten
email
noch die folgenden Einschränkungen für unsere Daten gibt:
1.
Das Gehalt und die Dauer der Firmenzugehörigkeit sind größer als 0.
2.
Die E-Mail-Adressen enthalten immer ein
@
-Zeichen.
3.
Für das Attribut
geschlecht
sind nur die Werte
W
und
M
zulässig.
4.
Das Gehalt von Mitarbeitern, die weniger als 10 Jahre in der Firma arbeiten,
ist auf 100 000 begrenzt.
Solche so genannten
statischen Integritätsregeln
können wir in SQL mit Hilfe des
Schlüsselwortes
check
formulieren. Wir setzen die erste Regel beispielhaft um:
Listing 5.8:
Statische Integritätsregeln
create table mitarbeiter(
id int generated always as identity primary key,
name varchar(20),
geschlecht varchar(1),