Database Reference
In-Depth Information
INSERT INTO
countries (country
_
code, country
_
name)
VALUES
(
'us'
,
'United States'
), (
'mx'
,
'Mexico'
), (
'au'
,
'Australia'
),
(
'gb'
,
'United Kingdom'
), (
'de'
,
'Germany'
), (
'll'
,
'Loompaland'
);
Probieren wir unsere „Eindeutig“-Beschränkung aus. Wenn Sie versuchen,
einen
country
_
name
n doppelt einzugeben, schlägt die unique-Beschränkung
fehl und das erneute Einfügen wird unterbunden. Mit Constraints stellen
relationale Datenbanken wie PostgreSQL koschere Daten sicher.
INSERT INTO
countries
VALUES
(
'uk'
,
'United Kingdom'
);
duplicate key value violates unique constraint "countries
_
country
_
name
_
key"
ERROR:
Key (country
_
name)=(United Kingdom) already exists.
DETAIL:
Wir können überprüfen, ob die Zeilen korrekt eingefügt wurden, indem wir
den Tabellenbefehl
SELECT...FROM
nutzen.
SELECT
*
FROM
countries;
country
_
code | country
_
name
-------------+---------------
us
| United States
mx
| Mexico
au
| Australia
gb
| United Kingdom
de
| Germany
ll
| Loompaland
(6 rows)
Jeder halbwegs respektable Atlas wird bestätigen, dass es Loompaland gar
nicht gibt - wir wollen es daher aus der Tabelle entfernen. Wir legen die zu lö-
schende Zeile in der
WHERE
-Klausel fest, d. h., die Zeile mit dem
country
_
code
ll
wird entfernt.
DELETE FROM
countries
WHERE
country
_
code =
'll'
;
Nachdem nur noch reale Länder in unserer
countries
-Tabelle stehen, wol-
len wir eine
cities
-Tabelle mit Städten anlegen. Um sicherzustellen, dass
jeder eingefügte
country
_
code
auch in unserer
countries
-Tabelle existiert,
nutzen wir das Schlüsselwort
REFERENCES
.Dassdie
country
_
code
-Spalte den
Schlüssel einer anderen Tabelle referenziert, bezeichnen wir als
Fremdschlüs-
sel (foreign key)
-Constraint.