none
Was ist der Zweck von "CONSTRAINT" und "PRIMARY KEY"? RRS feed

  • Frage

  • Hallo zusammen

    Ich interessiere mich für das Thema MS SQL, welches wir momentan in der Schule behandeln. Da ich aber keine brauchbare Antwort auf meine Fragen erhalte wende ich mich hier im Forum. Nebenbei erwähnt... ich bin noch ein Anfänger :P

    Sorry schon im Voraus... ich hab keinen ähnlichen Beitrag gefunden.

    Zu meiner Frage:

    In einer Aufgabenstellung ist verlangt, das ich eine Tabelle erstelle mit folgenden spalten: kuID, kuAnrede, kuName, kuVorname und kuPLZ.

    Unten ist aber noch eine Klausel (wenn man dem so sagen darf) die heisst CONSTRAINT PK_kuID und PRIMARY KEY (kuID).

    Das Sieht in ungefähr so aus: CREATE TABLE tblKunde (
    kuID INTEGER IDENTETY(1,1),
    kuAnrede VARCHAR(10),
    kuName VARCHAR(50),
    kuVorname VARCHAR(50),
    kuPLZ INTEGER,
    CONSTRAINT PK_kuID
    PRIMARY KEY (kuID)
    )

    Macht es einen Unterschied wenn ich z.B. CONSTRAINT PK_kuID und PRIMARY KEY (kuID) weglassen würde und wenn ja, was für einen Unterschied? und wofür ist diese Klausel da?

    Danke schon im Voraus für die rasche Antwort :)

    Mittwoch, 2. Dezember 2015 20:42

Antworten

  • Hallo,

    Ja es macht einen sehr großen Unterschied wenn man noch weitere Tabellen anlegt und in diesen auf die Spalte KuID verweist. Für eine saubere Lösung braucht man eine Fremdschlüsselbeziehung, und hierfür muss der Primärschlüssel auf kuID gesetzt sein. 

    Wenn dies die einzige Tabelle in der Datenbank wäre, dann wären die Zusätze tatsächlich nicht nötig.

    Referentielle Integrität

    Ein Beispiel hierfür ist dass es noch eine Tabelle Bestellungen gibt in denen die einzelnen Bestellungen aller Kunden enthalten sind. Die Fremdschlüsselbeziehung würde dafür sorgen dass eine neue Bestellung immer zu einer gültigen Kundennummer aus der Tabelle Kunden gehören muss. 

    Benjamin Hoch
    MCSE: Data Platform,
    MCSA: Windows Server 2012,


    • Bearbeitet Benjamin.Hoch Donnerstag, 3. Dezember 2015 12:59
    • Als Antwort markiert Kabi312 Donnerstag, 3. Dezember 2015 17:32
    Donnerstag, 3. Dezember 2015 12:56