{"id":15915,"date":"2024-07-19T02:55:26","date_gmt":"2024-07-18T23:25:26","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15915"},"modified":"2024-07-19T02:55:26","modified_gmt":"2024-07-18T23:25:26","slug":"https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","title":{"rendered":"Die Grenzen von SQL verstehen"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Einf\u00fchrung<\/h2>\n<p>Beim Entwurf einer Datenbank kann es vorkommen, dass Sie die in bestimmten Spalten zul\u00e4ssigen Daten einschr\u00e4nken m\u00f6chten. Wenn Sie beispielsweise eine Tabelle mit Informationen \u00fcber Wolkenkratzer erstellen, m\u00f6chten Sie m\u00f6glicherweise, dass die Spalte f\u00fcr die H\u00f6he jedes Geb\u00e4udes keine negativen Werte zul\u00e4sst.<\/p>\n<p>Relationale Datenbankmanagementsysteme (RDBMS) erm\u00f6glichen es, mithilfe von Einschr\u00e4nkungen zu steuern, welche Daten einer Tabelle hinzugef\u00fcgt werden. Eine Einschr\u00e4nkung ist eine spezielle Regel, die f\u00fcr eine oder mehrere Spalten \u2013 oder die gesamte Tabelle \u2013 gilt und die \u00c4nderungen, die an den Tabellendaten vorgenommen werden k\u00f6nnen, durch eine Anweisung begrenzt. <code>EINF\u00dcGEN<\/code>, <code>AKTUALISIEREN<\/code>, oder <code>L\u00d6SCHEN<\/code> Es schr\u00e4nkt ein.<\/p>\n<p>Dieser Artikel untersucht detailliert, was Constraints sind und wie sie in relationalen Datenbankmanagementsystemen (RDBMS) verwendet werden. Er geht au\u00dferdem auf die f\u00fcnf im SQL-Standard definierten Constraints ein und erl\u00e4utert die entsprechenden Funktionen.<\/p>\n<h2 id=\"%d9%85%d8%ad%d8%af%d9%88%d8%af%db%8c%d8%aa-%d9%87%d8%a7-%da%86%db%8c%d8%b3%d8%aa%d8%9f\">Welche Einschr\u00e4nkungen gibt es?<\/h2>\n<p>In SQL ist eine Einschr\u00e4nkung jede Regel, die auf eine Spalte oder Tabelle angewendet wird und die die einf\u00fcgbaren Daten begrenzt. Immer wenn Sie versuchen, eine Operation durchzuf\u00fchren, die die in der Tabelle gespeicherten Daten \u00e4ndert \u2013 wie beispielsweise eine INSERT-, UPDATE- oder DELETE-Anweisung \u2013, pr\u00fcft das relationale Datenbankmanagementsystem (RDBMS), ob diese Daten gegen die bestehenden Einschr\u00e4nkungen versto\u00dfen, und gibt gegebenenfalls einen Fehler zur\u00fcck.<\/p>\n<p>Datenbankadministratoren verwenden h\u00e4ufig Einschr\u00e4nkungen, um sicherzustellen, dass die Datenbank definierten Gesch\u00e4ftsregeln entspricht. Im Kontext einer Datenbank ist eine Gesch\u00e4ftsregel jede Richtlinie oder Vorgehensweise, die ein Unternehmen oder eine andere Organisation befolgt und deren Daten entsprechen m\u00fcssen. Angenommen, Sie erstellen eine Datenbank, die den Lagerbestand eines Kundengesch\u00e4fts erfasst. Wenn der Kunde vorschreibt, dass jeder Produktdatensatz eine eindeutige Identifikationsnummer haben muss, k\u00f6nnen Sie eine Spalte mit einer UNIQUE-Einschr\u00e4nkung erstellen, die sicherstellt, dass keine zwei Eintr\u00e4ge in dieser Spalte identisch sind.<\/p>\n<p>Einschr\u00e4nkungen sind auch f\u00fcr die Wahrung der Datenintegrit\u00e4t n\u00fctzlich. Datenintegrit\u00e4t ist ein weit gefasster Begriff, der h\u00e4ufig verwendet wird, um die allgemeine Genauigkeit, Konsistenz und Plausibilit\u00e4t der in einer Datenbank gespeicherten Daten, basierend auf ihren spezifischen Anwendungsf\u00e4llen, zu beschreiben. Tabellen in einer Datenbank sind oft miteinander verkn\u00fcpft, und Spalten einer Tabelle h\u00e4ngen von Werten in einer anderen Tabelle ab. Da die Dateneingabe h\u00e4ufig fehleranf\u00e4llig ist, sind Einschr\u00e4nkungen in solchen F\u00e4llen hilfreich, da sie sicherstellen k\u00f6nnen, dass fehlerhaft eingegebene Daten keine solchen Beziehungen beeintr\u00e4chtigen und somit die Integrit\u00e4t der Datenbankdaten gef\u00e4hrden.<\/p>\n<p>Stellen Sie sich vor, Sie entwerfen eine Datenbank mit zwei Tabellen: eine f\u00fcr die aktuellen Sch\u00fcler einer Schule und eine f\u00fcr die Mitglieder des Basketballteams dieser Schule. Sie k\u00f6nnen eine Fremdschl\u00fcsselbeziehung zwischen einer Spalte der Basketballteam-Tabelle und einer Spalte der Schultabelle herstellen. Dadurch wird eine Beziehung zwischen den beiden Tabellen geschaffen, indem jeder Eintrag in der Teamtabelle auf einen Eintrag in der Sch\u00fclertabelle verweist.<\/p>\n<p>Benutzer definieren Einschr\u00e4nkungen beim Erstellen einer Tabelle oder k\u00f6nnen sie sp\u00e4ter mit der ALTER TABLE-Anweisung hinzuf\u00fcgen, sofern diese nicht mit bereits vorhandenen Daten in Konflikt stehen. Beim Erstellen einer Einschr\u00e4nkung vergibt das Datenbanksystem automatisch einen Namen. In den meisten SQL-Implementierungen kann jedoch f\u00fcr jede Einschr\u00e4nkung ein benutzerdefinierter Name vergeben werden. Diese Namen werden verwendet, um in ALTER TABLE-Anweisungen auf die Einschr\u00e4nkungen zu verweisen, wenn diese ge\u00e4ndert oder gel\u00f6scht werden.<\/p>\n<p>Der SQL-Standard definiert formal nur f\u00fcnf Einschr\u00e4nkungen:<\/p>\n<ul>\n<li>Prim\u00e4rschl\u00fcssel<\/li>\n<li>Fremdschl\u00fcssel<\/li>\n<li>Einzigartig<\/li>\n<li>Rezension<\/li>\n<li>Es ist nicht leer.<\/li>\n<\/ul>\n<p>Nachdem Sie nun ein allgemeines Verst\u00e4ndnis daf\u00fcr haben, wie Einschr\u00e4nkungen verwendet werden, wollen wir uns jede dieser f\u00fcnf Einschr\u00e4nkungen genauer ansehen.<\/p>\n<h2 id=\"%da%a9%d9%84%db%8c%d8%af-%d8%a7%d9%88%d9%84%db%8c%d9%87\">Prim\u00e4rschl\u00fcssel<\/h2>\n<p>Die PRIMARY KEY-Einschr\u00e4nkung erfordert, dass jeder Eintrag in einer bestimmten Spalte eindeutig und nicht NULL ist, sodass Sie diese Spalte verwenden k\u00f6nnen, um jede einzelne Zeile in der Tabelle zu identifizieren.<\/p>\n<p>Im relationalen Modell ist ein Schl\u00fcssel eine Spalte oder eine Gruppe von Spalten in einer Tabelle, deren Werte garantiert eindeutig sind und keine NULL-Werte enthalten. Ein Prim\u00e4rschl\u00fcssel ist ein spezieller Schl\u00fcssel, dessen Werte zur Identifizierung einzelner Zeilen in einer Tabelle verwendet werden. Die Spalte oder Spalten, die den Prim\u00e4rschl\u00fcssel bilden, k\u00f6nnen zur Identifizierung der Tabelle im Rest der Datenbank verwendet werden.<\/p>\n<p>Dies ist einer der wichtigsten Aspekte relationaler Datenbanken: Dank eines Prim\u00e4rschl\u00fcssels m\u00fcssen Benutzer nicht wissen, dass ihre Daten physisch auf einem Rechner gespeichert sind. Ihr Datenbankmanagementsystem (DBMS) kann jeden Datensatz verfolgen und bei Bedarf abrufen. Das bedeutet wiederum, dass die Datens\u00e4tze keine festgelegte logische Reihenfolge haben und Benutzer ihre Daten in beliebiger Reihenfolge oder mit beliebigen Filtern abrufen k\u00f6nnen.<\/p>\n<p>In SQL k\u00f6nnen Sie einen Prim\u00e4rschl\u00fcssel mit einer PRIMARY KEY-Einschr\u00e4nkung erstellen, die im Wesentlichen eine Kombination aus UNIQUE- und NOT NULL-Einschr\u00e4nkungen darstellt. Sobald der Prim\u00e4rschl\u00fcssel definiert ist, erstellt das DBMS automatisch einen zugeh\u00f6rigen Index. Ein Index ist eine Datenbankstruktur, die den schnelleren Datenabruf aus einer Tabelle erm\u00f6glicht. Wie bei einem Index in einem Lehrbuch m\u00fcssen Abfragen nur die Eintr\u00e4ge der indizierten Spalte untersuchen, um die zugeh\u00f6rigen Werte zu finden. Dadurch dient der Prim\u00e4rschl\u00fcssel als eindeutiger Bezeichner f\u00fcr jede Zeile in der Tabelle.<\/p>\n<p>Eine Tabelle kann nur einen Prim\u00e4rschl\u00fcssel haben, aber wie regul\u00e4re Schl\u00fcssel kann auch ein Prim\u00e4rschl\u00fcssel aus mehreren Spalten bestehen. Ein wesentliches Merkmal von Prim\u00e4rschl\u00fcsseln ist jedoch, dass sie nur die minimal notwendigen Attribute verwenden, um jede Zeile in einer Tabelle eindeutig zu identifizieren. Um dies zu veranschaulichen, stellen Sie sich eine Tabelle vor, die Informationen \u00fcber Sch\u00fcler einer Schule anhand der folgenden drei Spalten speichert:<\/p>\n<ul>\n<li><code>studentID<\/code>Wird verwendet, um die eindeutige Identifikationsnummer jedes Sch\u00fclers zu speichern.<\/li>\n<li><code>Vorname<\/code>Wird verwendet, um den Vornamen jedes Sch\u00fclers zu speichern<\/li>\n<li><code>Nachname<\/code>Wird verwendet, um den Nachnamen jedes Sch\u00fclers zu speichern.<\/li>\n<\/ul>\n<p>Es ist m\u00f6glich, dass mehrere Sch\u00fcler einer Schule denselben Vornamen haben. In diesem Fall w\u00e4re die Spalte \u201eVorname\u201c als Prim\u00e4rschl\u00fcssel ungeeignet. Dasselbe gilt f\u00fcr die Spalte \u201eNachname\u201c. Ein Prim\u00e4rschl\u00fcssel, der sowohl die Spalte \u201eVorname\u201c als auch die Spalte \u201eNachname\u201c umfasst, w\u00e4re zwar m\u00f6glich, aber es besteht weiterhin die M\u00f6glichkeit, dass zwei Sch\u00fcler denselben Vor- und Nachnamen haben.<\/p>\n<p>Ein Prim\u00e4rschl\u00fcssel bestehend aus der Studenten-ID und den Spalten Vorname oder Nachname w\u00e4re zwar m\u00f6glich, da die ID-Nummer jedes Studenten jedoch bereits eindeutig ist, w\u00e4re die Einbeziehung der Namensspalten in den Prim\u00e4rschl\u00fcssel redundant. Daher ist in diesem Fall die Spalte Studenten-ID allein die minimale Menge an Attributen, die jede Zeile eindeutig identifizieren kann und somit eine gute Wahl f\u00fcr den Prim\u00e4rschl\u00fcssel der Tabelle darstellt.<\/p>\n<p>Besteht ein Schl\u00fcssel aus beobachtbaren, nutzbaren Daten (d. h. Daten, die reale Entit\u00e4ten, Ereignisse oder Eigenschaften repr\u00e4sentieren), spricht man von einem nat\u00fcrlichen Schl\u00fcssel. Wird der Schl\u00fcssel intern generiert und repr\u00e4sentiert er nichts au\u00dferhalb der Datenbank, handelt es sich um einen k\u00fcnstlichen oder Ersatzschl\u00fcssel. Manche Datenbanksysteme raten von der Verwendung nat\u00fcrlicher Schl\u00fcssel ab, da sich selbst scheinbar feste Datenpunkte unvorhersehbar \u00e4ndern k\u00f6nnen.<\/p>\n<h2 id=\"%da%a9%d9%84%db%8c%d8%af-%d8%ae%d8%a7%d8%b1%d8%ac%db%8c\">Fremdschl\u00fcssel<\/h2>\n<p>Die FOREIGN KEY-Einschr\u00e4nkung erfordert, dass jeder Eintrag in einer bestimmten Spalte bereits in einer bestimmten Spalte einer anderen Tabelle vorhanden sein muss.<\/p>\n<p>Wenn Sie zwei Tabellen miteinander verkn\u00fcpfen m\u00f6chten, k\u00f6nnen Sie dies beispielsweise durch die Definition eines Fremdschl\u00fcssels mit einer FOREIGN KEY-Einschr\u00e4nkung erreichen. Ein Fremdschl\u00fcssel ist eine Spalte in einer Tabelle (der \u201cKindtabelle\u201d), deren Werte aus einem Schl\u00fcssel in einer anderen Tabelle (der \u201cElterntabelle\u201d) stammen. Dies ist eine M\u00f6glichkeit, eine Beziehung zwischen zwei Tabellen auszudr\u00fccken: Eine FOREIGN KEY-Einschr\u00e4nkung erfordert, dass die Werte in der Spalte, auf die sie sich bezieht, auch in der Spalte vorhanden sein m\u00fcssen, auf die sie verweist.<\/p>\n<p>Das folgende Diagramm veranschaulicht eine solche Beziehung zwischen zwei Tabellen: Eine dient der Erfassung von Informationen \u00fcber die Mitarbeiter eines Unternehmens, die andere der Verfolgung der Ums\u00e4tze. In diesem Beispiel wird der Prim\u00e4rschl\u00fcssel der Tabelle MITARBEITER durch den Fremdschl\u00fcssel der Tabelle UMSATZ referenziert.<\/p>\n<p><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1160\"  height=\"840\"  class=\"aligncenter wp-image-15918 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1160px) 100vw, 1160px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8.png 1160w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-300x217.png 300w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-1024x742.png 1024w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-768x556.png 768w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-110x80.png 110w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-200x145.png 200w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-380x275.png 380w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-255x185.png 255w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-550x398.png 550w, https:\/\/cdn.itpiran.net\/2024\/07\/19024637\/1-8-800x579.png 800w\" ><\/p>\n<p>Wenn Sie versuchen, einen Datensatz in eine untergeordnete Tabelle einzuf\u00fcgen, und der in der Fremdschl\u00fcsselspalte eingegebene Wert nicht im Prim\u00e4rschl\u00fcssel der \u00fcbergeordneten Tabelle vorhanden ist, ist die Einf\u00fcgeanweisung ung\u00fcltig. Dies tr\u00e4gt zur Wahrung der Integrit\u00e4t auf Beziehungsebene bei, da Zeilen aus beiden Tabellen immer korrekt miteinander verkn\u00fcpft sind.<\/p>\n<p>In den meisten F\u00e4llen ist der Fremdschl\u00fcssel einer Tabelle der Prim\u00e4rschl\u00fcssel der \u00fcbergeordneten Tabelle, dies ist jedoch nicht immer der Fall. In den meisten relationalen Datenbankmanagementsystemen (RDBMS) kann jede Spalte der \u00fcbergeordneten Tabelle, die eine UNIQUE- oder PRIMARY KEY-Einschr\u00e4nkung aufweist, \u00fcber den Fremdschl\u00fcssel der untergeordneten Tabelle referenziert werden.<\/p>\n<h2 id=\"%d9%85%d9%86%d8%ad%d8%b5%d8%b1-%d8%a8%d9%81%d8%b1%d8%af\">Einzigartig<\/h2>\n<p>Die UNIQUE-Beschr\u00e4nkung verhindert, dass doppelte Werte in die angegebene Spalte eingef\u00fcgt werden.<\/p>\n<p>Wie der Name schon sagt, erfordert eine UNIQUE-Einschr\u00e4nkung, dass jeder Eintrag in einer bestimmten Spalte ein eindeutiger Wert ist. Jeder Versuch, einen Wert hinzuzuf\u00fcgen, der bereits in der Spalte vorhanden ist, f\u00fchrt zu einem Fehler.<\/p>\n<p>UNIQUE-Constraints sind n\u00fctzlich, um Eins-zu-Eins-Beziehungen zwischen Tabellen zu erzwingen. Wie bereits erw\u00e4hnt, kann man eine Beziehung zwischen zwei Tabellen mit einem Fremdschl\u00fcssel herstellen, aber es gibt verschiedene Arten von Beziehungen, die zwischen Tabellen bestehen k\u00f6nnen:<\/p>\n<ul>\n<li><code><code>\u06cc\u06a9 \u0628\u0647 \u06cc\u06a9<\/code><\/code>Man spricht von einer Eins-zu-Eins-Beziehung zwischen zwei Tabellen, wenn jede Zeile der \u00fcbergeordneten Tabelle genau einer Zeile der untergeordneten Tabelle entspricht.<\/li>\n<li><code>Eins zu vielen<\/code>Bei einer Viele-zu-Beliebig-Beziehung kann eine Zeile in der \u00fcbergeordneten Tabelle mit mehreren Zeilen in der untergeordneten Tabelle verkn\u00fcpft sein, aber jede Zeile in der untergeordneten Tabelle kann nur mit einer Zeile in der \u00fcbergeordneten Tabelle verkn\u00fcpft sein.<\/li>\n<li><code>Wie viele?<\/code>Wenn Zeilen in der Elterntabelle mit mehreren Zeilen in der Kindtabelle verkn\u00fcpft werden k\u00f6nnen und umgekehrt, spricht man von einer Viele-zu-Viele-Beziehung zwischen den beiden Tabellen.<\/li>\n<\/ul>\n<p>Durch Hinzuf\u00fcgen einer UNIQUE-Beschr\u00e4nkung zu einer Spalte, auf die bereits eine FOREIGN KEY-Beschr\u00e4nkung angewendet wurde, kann sichergestellt werden, dass jeder Eintrag in der \u00fcbergeordneten Tabelle nur einmal in der untergeordneten Tabelle vorkommt. Dadurch wird eine Eins-zu-Eins-Beziehung zwischen den beiden Tabellen hergestellt.<\/p>\n<p>Beachten Sie, dass Sie UNIQUE-Constraints sowohl auf Tabellen- als auch auf Spaltenebene definieren k\u00f6nnen. Bei einer Definition auf Tabellenebene kann ein UNIQUE-Constraint auf mehrere Spalten angewendet werden. In diesem Fall k\u00f6nnen die Werte in den einzelnen Spalten des Constraints zwar doppelt vorkommen, jedoch muss jede Zeile eine eindeutige Kombination von Werten in den eingeschr\u00e4nkten Spalten aufweisen.<\/p>\n<h2 id=\"%d8%a8%d8%b1%d8%b1%d8%b3%db%8c\">Rezension<\/h2>\n<p>Eine CHECK-Bedingung definiert eine Bedingung f\u00fcr eine Spalte, ein sogenanntes Pr\u00e4dikat, die jeder in diese Spalte eingegebene Wert erf\u00fcllen muss.<\/p>\n<p>CHECK-Constraint-Pr\u00e4dikate werden als Ausdruck geschrieben, der zu TRUE, FALSE oder m\u00f6glicherweise zu \u201eunbekannt\u201c ausgewertet werden kann. Wenn Sie versuchen, einen Wert in einen CHECK-Constraint einzugeben und dieser Wert dazu f\u00fchrt, dass die Anweisung zu TRUE oder \u201eunbekannt\u201c ausgewertet wird (was bei NULL-Werten der Fall ist), ist die Operation erfolgreich. Ergibt die Auswertung des Ausdrucks jedoch FALSE, schl\u00e4gt die Operation fehl.<\/p>\n<p>CHECK-Pr\u00e4dikate verwenden h\u00e4ufig mathematische Vergleichsoperatoren (wie &lt;, &gt;, &lt;=, OR &gt;=), um den zul\u00e4ssigen Datenbereich in einer bestimmten Spalte einzuschr\u00e4nken. Ein g\u00e4ngiger Anwendungsfall f\u00fcr CHECK-Bedingungen ist beispielsweise, negative Werte in bestimmten Spalten zu verhindern, wenn diese keinen Sinn ergeben, wie im folgenden Beispiel.<\/p>\n<p>Diese CREATE TABLE-Anweisung erstellt eine Tabelle namens productInfo mit Spalten f\u00fcr Name, ID-Nummer und Preis jedes Produkts. Da ein Produkt keinen negativen Preis haben kann, wendet diese Anweisung eine CHECK-Bedingung auf die Preisspalte an, um sicherzustellen, dass sie nur positive Werte enth\u00e4lt.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE TABLE productInfo (\r\nproductID int,\r\nname varchar(30),\r\nprice decimal(4,2)\r\nCHECK (price &gt; 0)\r\n);<\/code><\/pre>\n<\/div>\n<p>In CHECK-Pr\u00e4dikaten d\u00fcrfen keine mathematischen Vergleichsoperatoren verwendet werden. Typischerweise k\u00f6nnen Sie in einem CHECK-Pr\u00e4dikat jeden SQL-Operator verwenden, der zu \u201etrue\u201c, \u201efalse\u201c oder \u201eunbekannt\u201c ausgewertet werden kann, einschlie\u00dflich LIKE, BETWEEN, IS NOT NULL usw. Einige, aber nicht alle SQL-Implementierungen erlauben sogar die Einbindung einer Unterabfrage in ein CHECK-Pr\u00e4dikat. Beachten Sie jedoch, dass die meisten Implementierungen keine Referenzierung einer anderen Tabelle in einer Anweisung zulassen.<\/p>\n<h2 id=\"%d8%aa%d9%87%db%8c-%d9%86%db%8c%d8%b3%d8%aa\">Es ist nicht leer.<\/h2>\n<p>Die NOT NULL-Bedingung verhindert, dass NULL-Werte in die angegebene Spalte eingef\u00fcgt werden.<\/p>\n<p>In den meisten SQL-Implementierungen wird beim Einf\u00fcgen einer Datenzeile ohne Angabe eines Werts f\u00fcr eine bestimmte Spalte der fehlende Wert standardm\u00e4\u00dfig als NULL dargestellt. In SQL ist NULL ein spezielles Schl\u00fcsselwort, das einen unbekannten, fehlenden oder nicht spezifizierten Wert repr\u00e4sentiert. NULL ist jedoch selbst kein Wert, sondern beschreibt den Zustand eines unbekannten Werts.<\/p>\n<p>Um diesen Unterschied zu verdeutlichen, stellen Sie sich eine Tabelle vor, die zur Verwaltung von Kunden in einer K\u00fcnstleragentur verwendet wird und Spalten f\u00fcr Vor- und Nachnamen jedes Kunden enth\u00e4lt. Verwendet ein Kunde nur einen Namen \u2013 wie beispielsweise \u201cCher\u201d, \u201cUsher\u201d oder \u201cBeyonc\u00e9\u201d \u2013, tr\u00e4gt der Datenbankadministrator m\u00f6glicherweise nur einen Namen in die Spalte \u201cVorname\u201d ein. Dies w\u00fcrde dazu f\u00fchren, dass das Datenbanksystem (DBMS) in der Spalte \u201eNachname\u201c den Wert NULL einf\u00fcgt. Die Datenbank interpretiert den Nachnamen eines Kunden jedoch nicht als buchst\u00e4blich \u201enull\u201c. Es bedeutet lediglich, dass der Wert der Spalte \u201eNachname\u201c f\u00fcr diese Zeile unbekannt ist oder dass das Feld f\u00fcr diesen Datensatz nicht relevant ist.<\/p>\n<p>Wie der Name schon sagt, verhindert die NOT NULL-Bedingung, dass ein Wert in der angegebenen Spalte NULL ist. Das bedeutet, dass Sie f\u00fcr jede Spalte mit einer NOT NULL-Bedingung beim Einf\u00fcgen einer neuen Zeile einen Wert angeben m\u00fcssen. Andernfalls schl\u00e4gt der INSERT-Vorgang fehl.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Ergebnis<\/h2>\n<p>Einschr\u00e4nkungen sind ein unverzichtbares Werkzeug f\u00fcr alle, die eine Datenbank mit hoher Datenintegrit\u00e4t und -sicherheit entwerfen m\u00f6chten. Durch die Beschr\u00e4nkung der in eine Spalte eingegebenen Daten k\u00f6nnen Sie sicherstellen, dass die Beziehungen zwischen Tabellen korrekt gewahrt bleiben und die Datenbank den Gesch\u00e4ftsregeln entspricht, die ihren Zweck definieren.<\/p>","protected":false},"excerpt":{"rendered":"Einleitung Beim Entwurf einer Datenbank kann es vorkommen, dass man Einschr\u00e4nkungen f\u00fcr die Daten festlegen m\u00f6chte\u2026","protected":false},"author":1,"featured_media":15916,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,349],"tags":[403,391],"class_list":{"0":"post-15915","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-database","9":"tag-data-base","10":"tag-mysql"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0648\u0627\u0642\u0639\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0627\u06cc\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-18T23:25:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"1\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL\",\"datePublished\":\"2024-07-18T23:25:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\"},\"wordCount\":107,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"keywords\":[\"data base\",\"MySQL\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\",\"name\":\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"datePublished\":\"2024-07-18T23:25:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/19024037\\\/sql.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/de\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Die Grenzen von SQL verstehen \u2013 ITPiran-Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","og_locale":"de_DE","og_type":"article","og_title":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0648\u0627\u0642\u0639\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0627\u06cc\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-07-18T23:25:26+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"admin","Gesch\u00e4tzte Lesezeit":"1\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL","datePublished":"2024-07-18T23:25:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/"},"wordCount":107,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","keywords":["data base","MySQL"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/","name":"Die Grenzen von SQL verstehen \u2013 ITPiran-Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","datePublished":"2024-07-18T23:25:26+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/19024037\/sql.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/https-www-digitalocean-com-community-conceptual-articles-understanding-sql-constraints\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u062f\u0631\u06a9 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc SQL"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"Iranische Nachrichten und Artikel zum Thema nachhaltiger Handel","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Nachhaltiger iranischer Unternehmensblog","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"Administrator","url":"https:\/\/www.itpiran.net\/blog\/de\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/comments?post=15915"}],"version-history":[{"count":2,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15915\/revisions"}],"predecessor-version":[{"id":15919,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15915\/revisions\/15919"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media\/15916"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media?parent=15915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/categories?post=15915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/tags?post=15915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}