Zum Inhalt springen

SQL - Reference angeben ?


aLeXL

Empfohlene Beiträge

Hi,

wenn ihr eure Datenbänke erstellt, ordnet ihr dann references zu ?

Also z.b.


create table Produkt ( ProdId int primary key,

Bezeichnung varchar (50) not null,

Preis float not null,

Bestand int not null,

HerstId int,

foreign key (HerstId) [B]references

Hersteller (HerstId));[/B]

Was genau bringt es mir denn, wenn ich die reference angebe, aber in meiner SQL Abfrage eh selbst programmiere, dass er in der Datenbank die HerstId sucht die ich haben will ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

Mit der Angabe ermöglichst Du es der Datenbank, die referentielle Integrität zu prüfen. Wenn Du diese Constraints nicht festlegst, könntest Du ja einen FK eintragen, der überhaupt nicht existiert. Dies wird durch den Constraint verhindert.

In meinen Augen sollte man Constraints nutzen, da sie schließlich einen sinnvollen und wichtigen Beitrag leisten, das die Datenbank konsistent bleibt.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

duchr die Referenzen kann der Datenbankserver verbindungen zwichen den einzelnen Tabelle schneller herstellen. dadurch wird deine abfrage schneller. das macht sich vor allem bei großen Datenmengen bemerkbar.

Des weiteren verhindert dies das zB aus der refenzierten Tabelle einträge gelöscht werden können sollange noch Einträge mit dem gleichen Key in der referenzierenten Tabelle vorhanden sind. Das heist beim Löschen von daten gibt es weniger Datenmüll der übrig bleibt.

Mit der entsprechenden Option am Server ist es möglich das beim löschen eines Eintrages in der referenzierten Tabelle alle zugehörigen Eintrage aus den referentierenten Tabellen gelöscht wird. dies ist allerdings mit vorsicht zu genießen...

grz ange

Link zu diesem Kommentar
Auf anderen Seiten teilen

zwichen den einzelnen Tabelle schneller herstellen.

Woher hast Du denn das? Eine Verbindung zwischen zwei Tabellen wird über die JOIN-Bedingung angegeben. Anschließend werden diese Spalten gematcht egal ob da ein FK-Constraint dran hängt oder nicht.

dadurch wird deine abfrage schneller. das macht sich vor allem bei großen Datenmengen bemerkbar.

Hmm gibt's da auch ein nachvollziehbares Beispiel?

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

ACK. die aussage, dass FOREIGN KEY .. REFERENCES die datenbankperformance verbessern soll, ist niemals und nirgendwo im SQL-standard definiert worden und somit schlicht und ergreifend falsch.

Was genau bringt es mir denn, wenn ich die reference angebe

REFERENCES ist die voraussetzung dafür, verschiedene referentielle operation anzugeben, darunter z.b. ON DELETE CASCADE oder ON DELETE SET NULL. das hängt allerdings vom RDBMS ab, und welchen SQL-standard (99, 03) das RDBMS umsetzt.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...