<< >> Up Title Contents Index

Schlüsselbegriff

Für manche Anwendungen ist es sinnvoll, die Zeilen einer Tabelle durch eine oder mehrere Spalten eindeutig zu kennzeichnen, z. B. um sie in einer festen Reihenfolge sequentiell abarbeiten zu können. Dies erfolgt über die Vergabe eines sogenannten Primärschlüssels. Eingeleitet durch 'PRIMARY KEY' werden die Spaltennamen aufgelistet, die den Schlüssel der Tabelle bilden sollen. Die Eingabewerte der so definierten Schlüsselspalten dürfen nicht NULL sein.

Die Zeilen der Tabelle 'stadt' sollen eindeutig über die Postleitzahl identifiziert werden können. Dazu wird ein einspaltiger Primärschlüssel angelegt. Die Postleitzahl braucht innerhalb der Tabellendefinition nicht zwangsläufig als erste Spalte genannt zu werden.

CREATE TABLE stadt  
       (name      CHAR(15) NOT NULL,
        bu_land   CHAR(20) NOT NULL,
        plz       CHAR(5) CONSTRAINT 
                  SUBSTR(plz,1,5) like '(0-9)(0-9)(0-9)(0-9)(0-9)',
        PRIMARY KEY (plz))
                   

Es existiert eine syntaktische Variante, eine Tabelle mit Schlüssel anzulegen. Die Schlüsselspalten werden mit dem Attribut KEY versehen; sie müssen in der CREATE-TABLE-Anweisung in der Reihenfolge ihrer Definition als erste Spalten aufgelistet werden.

CREATE TABLE stadt
       (plz       CHAR(5) CONSTRAINT         
                  SUBSTR(plz,1,5) like '(0-9)(0-9)(0-9)(0-9)(0-9)'
                  KEY,
        name      CHAR(15) NOT NULL,
        bu_land   CHAR(20) NOT NULL)

Das Einfügen von Zeilen geschieht wie in eine Basistabelle ohne KEY-Definition.

Die folgenden Beispiele beziehen sich auf die obige Tabellendefinition:

INSERT stadt
    VALUES ('01109','Dresden','Sachsen')
INSERT stadt
    VALUES ('10969','Berlin','Berlin')
INSERT stadt
    VALUES ('13355','Berlin','Berlin')
INSERT stadt
    VALUES ('14473','Potsdam','Brandenburg')

INSERT stadt
    VALUES ('20251','Hamburg','Hamburg')
INSERT stadt
    VALUES ('40233','Düsseldorf','Nordrhein-Westfalen')
INSERT stadt
    VALUES ('60313','Frankfurt','Hessen')
INSERT stadt
    VALUES ('69117','Heidelberg','Baden-Württemberg')

INSERT stadt
    VALUES ('80335','München','Bayern')
INSERT stadt
    VALUES ('89477','Ulm','Baden-Württemberg')

Der erneute Versuch, eine Stadt mit einer Postleitzahl '10969' einzutragen, würde zu einer Fehlermeldung führen. Die KEY-Definition gewährleistet die Eindeutigkeit der Spalte.


<< >> Up Title Contents Index