Database Reference
In-Depth Information
Über CRUD
CRUD ist eine nützliche Merkhilfe für die elementaren Operationen des Datenma-
nagements: Create , Read , Update und Delete . Auf deutsch also Erzeugen, Lesen,
Aktualisieren und Löschen. Das entspricht grundsätzlich dem Einfügen neuer Da-
tensätze ( Create ), der Modifikation bestehender Datensätze ( Update ) und dem Ent-
fernen nicht mehr benötigter Datensätze ( Delete ). Alle anderen Operationen, für die
Sie eine Datenbank nutzen (also jede noch so verrückte Query, die Sie sich vorstellen
können), sind Leseoperationen . Wenn Sie CRUD können, können Sie alles.
CREATE TABLE cities (
name text NOT NULL,
postal _ code varchar (9) CHECK (postal _ code <> '' ),
country _ code char (2) REFERENCES countries,
PRIMARY KEY (country _ code, postal _ code)
);
Diesmal haben wir den Städtenamen so eingeschränkt, dass er keine NULL -
Werte enthalten darf. Wir prüfen auch die Postleitzahl ( postal _ code )dahin-
gehend, dass sie keinen Leerstring enthält ( <> bedeutet nicht gleich ). Und weil
der PRIMARY KEY eine Zeile eindeutig identifiziert, haben wir einen zusammen-
gesetzten Schlüssel (compound key) angelegt: country _ code + postal _ code .
Diese beiden zusammen identifizieren eine Zeile eindeutig.
Postgres kennt darüber hinaus eine Vielzahl von Datentypen. Sie haben be-
reits drei verschiedene Arten von Strings kennengelernt: text (ein String be-
liebiger Länge), varchar(9) (ein String variabler Länge mit bis zu neun Zei-
chen) und char(2) (ein String mit genau zwei Zeichen). In dieses Schema
wollen wir nun Toronto, CA einfügen.
INSERT INTO cities
VALUES ( 'Toronto' , 'M4C1B5' , 'ca' );
ERROR: insert or update on table "cities" violates foreign key constraint
"cities _ country _ code _ fkey"
DETAIL: Key (country _ code)=(ca) is not present in table "countries".
Dieser Fehler ist gut! Da country _ code countries referenziert, muss der coun-
try _ code in der countries -Tabelle vorhanden sein. Man nennt das Pflege der
referenziellen Integrität . Sie stellt sicher, dass unsere Daten immer korrekt
sind (siehe Abbildung 1, Das Schlüsselwort REFERENCES beschränkt Felder auf
den Primärschlüssel einer anderen Tabelle. , auf Seite 16). Beachten Sie, dass
NULL ein gültiger Wert für cities . country _ code ist, da die NULL das Fehlen ei-
nes Wertes repräsentiert. Wenn Sie die Spalte in der cities -Tabelle wie folgt
definieren: country _ code char(2) REFERENCES countries NOT NULL .
 
Search WWH ::




Custom Search