MySQL-Integritätsbeschränkungen – Definition und Beispiel-Tutorial

MySQL-Integritätsbeschränkungen – Definition und Beispiel-Tutorial

Integritätsbeschränkungen

Definition von Integritätsbedingungen

Um die Richtigkeit und Rechtmäßigkeit der eingetragenen Daten sicherzustellen, fügen Sie den Feldern in der Tabelle neben den Datentypbeschränkungen weitere Beschränkungen hinzu.

Klassifizierung von Integritätsbeschränkungen

Entitätsintegrität: Es darf keine Duplikate zwischen den Datensätzen geben.

  • Primärschlüsseleinschränkung: eindeutig und darf nicht leer sein
  • Eindeutige Einschränkung: nur nullbar
  • Primärschlüssel auto_increment

Domänenintegrität: Die Felder einer Datenbanktabelle müssen einem bestimmten Datentyp oder einer bestimmten Einschränkung entsprechen.

  • Typbeschränkung: Beim Erstellen einer Tabelle wird jedem Feld ein Typ hinzugefügt.
  • Nicht null-Einschränkung: nicht null
  • Standardwert: default

Referenzielle Integrität: Der Wert eines Felds in einer Tabelle muss auf den Wert in einer anderen Tabelle verweisen.

  • Hinzufügen einer Fremdschlüsseleinschränkung: Fremdschlüssel
  • Die referenzielle Integrität verringert die Effizienz der SQL-Ausführung und sollte daher in manchen Fällen nicht verwendet werden.

Primärschlüsseleinschränkung

  • Einschränkung des Primärschlüssels: eindeutig und darf nicht leer sein;
  • Eine Tabelle kann nur ein Primärschlüsselfeld haben, aber einen zusammengesetzten Primärschlüssel.

Es gibt drei Möglichkeiten, eine Primärschlüsseleinschränkung hinzuzufügen:

Methode 1: Fügen Sie beim Erstellen einer Tabelle eine Primärschlüsseleinschränkung hinzu.
Tabelle „Student“ erstellen (
    sid int Primärschlüssel,
    sname varchar(20),
    Alter int
)Zeichensatz=utf8;
-- Nachdem Sie die Primärschlüsseleinschränkung hinzugefügt haben, führt das Einfügen derselben SID zu einem Fehler.
in Student(sid,sname,age) Werte einfügen (1,'Student',22);
in Student(sid,sname,age) Werte einfügen (1,'Student',33);

Methode 2: Fügen Sie beim Erstellen der Tabelle eine Primärschlüsseleinschränkung hinzu, die Hinzufügungsmethode ist jedoch anders.
  „Nur diese Methode zum Hinzufügen eines Primärschlüssels kann einen zusammengesetzten Primärschlüssel hinzufügen.“
Tabelle „Student“ erstellen (
    sid int,
    sname varchar(20),
    Alter int,
    Primärschlüssel (sid)
)Zeichensatz=utf8;

Methode 3: Fügen Sie nach dem Erstellen der Tabelle eine Primärschlüsseleinschränkung hinzu.
Tabelle „Student“ erstellen (
    sid int,
    sname varchar(20),
    Alter int
)Zeichensatz=utf8;                  
Tabelle „Student“ ändern, Primärschlüssel hinzufügen (sid);
-- Einschränkung bedeutet, dass eine Einschränkung hinzugefügt wird;      
-- pk_sid ist ein Name für die Einschränkung;

Der Unterschied zwischen einem einzelnen Primärschlüssel und einem zusammengesetzten Primärschlüssel

"Einzelner Primärschlüssel"
    Legen Sie ein Feld in der Tabelle als Primärschlüssel fest und verwenden Sie dieses Feld zur eindeutigen Identifizierung eines Datensatzes.
    Solange die Sid eindeutig und nicht leer ist, ist jede Zeile ein eindeutiger Datensatz.
    Primärschlüssel (sid)
    Sid Sname Alter
    1 Zhang San18
    2 Zhang San18  

„Gemeinsamer Primärschlüssel“
    Legen Sie zwei Felder (oder mehrere Felder) in der Tabelle als gemeinsame Primärschlüssel fest. Verwenden Sie diese beiden Felder (oder mehrere Felder),
    Zur eindeutigen Identifizierung eines Datensatzes.
    Diese beiden Felder können separat wiederholt werden, solange sie nicht gleichzeitig wiederholt werden.
    Primärschlüssel (Sid, ClassID)
    Sid Klassen-ID Sname Alter
    1 2 Zhang San18
    1 3 Zhang San18  
    2 4 Li Si20
    3 4 Wang Wu 30
    -- Die folgenden zwei Datensätze haben die gleichen Felder, was auf einen doppelten Datensatz hinweist und beim Einfügen einen Fehler verursacht.
    5 5 Li Chuang25  
    5 5 Wang Er24

Grundsätze zur Auswahl von Primärschlüsselfeldern

  1. Normalerweise wird ein bedeutungsloses Feld als Primärschlüsselfeld ausgewählt. Beispielsweise ist das ID-Feld, das die Zeilennummer jeder Zeile in der Tabelle aufzeichnet, ein bedeutungsloses Feld und eignet sich sehr gut als Primärschlüssel.
  2. Das Primärschlüsselfeld wird grundsätzlich nicht verändert (z.B. Feldname, Feldtyp etc.)
  3. Häufig wechselnde Felder, bedeutungstragende Felder, nicht als Primärschlüssel geeignet

Besondere Aufmerksamkeit: Wenn ein Feld in einer Tabellenerstellungsanweisung nur Primärschlüsselbeschränkungen hat und nicht den Primärschlüssel auto_increment verwendet
Wir müssen selbst Werte in das Primärschlüsselfeld einfügen, sonst tritt der folgende Fehler auf. „FEHLER 1364 (HY000): Feld ‚sid‘ hat keinen Standardwert“

Wie bereits erwähnt, wird das Primärschlüsselfeld jedoch im Allgemeinen nicht geändert. Dies bedeutet, dass Sie ihm nicht aktiv einen Wert zuweisen sollten. Dem Primärschlüsselfeld sollte vom System ein Standardwert zugewiesen werden. Sie werden dies verstehen, nachdem Sie etwas über die automatische Inkrementierung des Primärschlüssels gelernt haben.

Denken Sie daran: Primärschlüssel und Auto_Increament werden am besten zusammen verwendet.

Zum Beispiel:

Löschen einer Primärschlüsseleinschränkung

Tabelle ändern, Student, Primärschlüssel löschen;


Primärschlüssel auto_increment

Bedeutung und Merkmale der automatischen Primärschlüsselinkrementierung

Wie der Name schon sagt, handelt es sich hierbei um eine Einschränkung, die dazu dient, dem Primärschlüssel automatisch Werte hinzuzufügen. Wie bereits erwähnt, ist es am besten, keine Änderungen am Primärschlüsselfeld vorzunehmen. Dazu gehört natürlich auch, den Primärschlüssel beim Einfügen von Werten in das Primärschlüsselfeld nicht manuell hinzuzufügen. Lassen Sie stattdessen das System automatisch Werte dem Primärschlüsselfeld zuweisen. Die automatische Primärschlüsselinkrementierung weist die folgenden zwei Merkmale auf:

  1. Nachdem Sie die automatische Inkrementierung des Primärschlüssels festgelegt haben, beginnt der Primärschlüsselwert bei 1 und wird jedes Mal um 1 erhöht.
  2. Der zuvor verwendete Primärschlüsselwert bleibt nach dem Löschen des Zeilendatensatzes ein neuer Wert und der zuvor verwendete Primärschlüsselwert wird nicht wiederverwendet.

Erklärung des zweiten Features:

Es gibt zwei Möglichkeiten, eine eindeutige Einschränkung hinzuzufügen:

Methode 1: Fügen Sie beim Erstellen einer Tabelle gleichzeitig den Primärschlüssel und die automatische Inkrementierung des Primärschlüssels hinzu. 
Tabelle „Student“ erstellen (
   sid int Primärschlüssel auto_increment,
   sname varchar(20),
   Alter int,
   Ausweis varchar(18) 
)Zeichensatz=utf8;  
- Verwenden Sie beim Einfügen von Daten den Primärschlüssel und die automatische Inkrementierung zusammen.
– Es ist nicht erforderlich, dem Primärschlüsselfeld „sid“ einen Wert zuzuweisen.
in Schüler(sname, Alter) Werte einfügen („Student“, 22), („Student“, 25);

Methode 2: Fügen Sie nach dem Erstellen der Tabelle gleichzeitig „Primärschlüssel und automatische Primärschlüsselinkrementierung“ zum Feld hinzu.
Tabelle „Student“ erstellen (
   sid int,
   sname varchar(20),
   Alter int,
   Ausweis varchar(18) 
)Zeichensatz=utf8;  
-- Die folgenden beiden Methoden können einem Feld gleichzeitig „Primärschlüssel und automatische Primärschlüsselinkrementierung“ hinzufügen.
Tabelle ändern, Student-Sid ändern, Int-Primärschlüssel, Auto_Increment;
Tabelle ändern, Student-SID ändern, SID Int Primärschlüssel auto_increment;

Löschen des Primärschlüssels mit automatischer Inkrementierung

Tabelle „Student“ ändern, Sid-Int-Primärschlüssel ändern;

Eindeutige Einschränkung

Was bedeutet eine eindeutige Einschränkung?

Weil es in einer Tabelle nur einen Primärschlüssel geben kann. Manche Felder, wie z. B. Ausweisfelder, müssen jedoch eindeutig sein. Wir können sie nicht als Primärschlüssel festlegen (Ausweisfelder sind bedeutungsvolle Felder). Wie können wir also ihre Eindeutigkeit sicherstellen? Dies ist die einzige Einschränkung, die wir als nächstes besprechen werden. Hinweis: Eine Tabelle kann mehrere eindeutige Einschränkungen haben.

Es gibt drei Möglichkeiten, eine eindeutige Einschränkung hinzuzufügen:

Methode 1: Fügen Sie beim Erstellen der Tabelle eine eindeutige Einschränkung hinzu.
Tabelle „Student“ erstellen (
    sid int Primärschlüssel Schlüssel auto_increment,
    sname varchar(20),
   Alter int,
   ID-Karte varchar (18) eindeutig
)Zeichensatz=utf8; 


Methode 2: Fügen Sie beim Erstellen der Tabelle eine eindeutige Einschränkung hinzu, jedoch auf andere Weise.
  „Nur diese Methode zum Hinzufügen eines Primärschlüssels kann einen zusammengesetzten Primärschlüssel hinzufügen.“
Tabelle Student erstellen (
    sid int Primärschlüssel auto_increment,
    sname varchar(20),
    Alter int,
    ID-Karte varchar (18),
    einzigartig (Ausweis)
)Zeichensatz=utf8; 

Methode 3: Fügen Sie nach dem Erstellen der Tabelle eine eindeutige Einschränkung hinzu.
Tabelle Student erstellen (
    sid int Primärschlüssel auto_increment,
    sname varchar(20),
    Alter int,
    Ausweis varchar(18)
)Zeichensatz=utf8;                      
Tabelle „Student“ ändern, eindeutige ID-Karte hinzufügen;

-- Bei einem Feld mit einem eindeutigen Einschränkungssatz wird ein Fehler gemeldet, wenn der gleiche Wert eingefügt wird.
in Studentenwerte (Name, Alter, Ausweis) einfügen („Student“, „18“, „123456“);
in Studentenwerte (Name, Alter, Ausweis) einfügen („Student“, 22, „123456“);

Löschen einer Unique-Einschränkung

Zum Löschen einer eindeutigen Einschränkung ist die verwendete Anweisung etwas anders.
Tabelle ändern, Studentenschlüssel-ID-Karte fallen lassen;

Fügen Sie eine Nicht-Null-Einschränkung hinzu

Hinzufügen einer Not Null-Einschränkung

Eine Nicht-Null-Einschränkung bedeutet, dass ein Fehler gemeldet wird, wenn wir nach dem Festlegen einer Nicht-Null-Einschränkung für ein Feld einen Nullwert in das Feld einfügen. Es gibt zwei Möglichkeiten, eine Nicht-Null-Einschränkung hinzuzufügen:

Methode 1: Fügen Sie beim Erstellen einer Tabelle dem Feld eine Nicht-Null-Einschränkung hinzu. 
Tabelle „Student“ erstellen (
   sid int Primärschlüssel auto_increment,
   sname varchar(20) nicht null,
   Alter int,
   Ausweis varchar(18) 
)Zeichensatz=utf8;

Methode 2: Fügen Sie dem Feld nach dem Erstellen der Tabelle eine Nicht-Null-Einschränkung hinzu.
Tabelle „Student“ erstellen (
   sid int Primärschlüssel auto_increment,
   sname varchar(20),
   Alter int,
   Ausweis varchar(18) 
)Zeichensatz=utf8;

-- Es gibt zwei Möglichkeiten zum Hinzufügen.
alter table student modify sname varchar(20) nicht null;
alter table student change sname sname varchar(20) nicht null;

Nach dem Hinzufügen der Nicht-Null-Einschränkung zum Feld weist es die folgenden Eigenschaften auf

  1. Nachdem Sie für ein Feld die Nicht-Null-Einschränkung festgelegt haben, können Sie keinen Nullwert mehr einfügen.
  2. Nachdem das Feld mit einer Nicht-Null-Einschränkung festgelegt wurde, kann nicht nur kein Nullwert eingefügt werden, sondern auch kein Wert.
„Manchmal fallen uns diese Details nicht auf, deshalb erklären wir sie gesondert.“
1: Nachdem für das Feld eine Nicht-Null-Einschränkung festgelegt wurde, können Sie keinen Nullwert einfügen.
-- Die folgende Einfügung führt zu einem Fehler.
in student(sname,age) Werte einfügen (null,22);

2: Nachdem die Nicht-Null-Einschränkung für ein Feld festgelegt wurde, kann nicht nur kein Nullwert eingefügt werden, sondern auch kein Wert.
-- Auch die folgende Einfügung wird einen Fehler melden.
in Student(Alter, Ausweis) Werte einfügen (33, "123456789");

Hier sind einige Beispiele:

Fügen Sie eine Standardwertbeschränkung hinzu (Standard)

Wenn für ein Feld ein Standardwert festgelegt ist, wird dieser Standardwert angezeigt, wenn wir für das Feld keinen Wert angeben.

Hinzufügen einer Standardwertbeschränkung

Methode 1: Fügen Sie beim Erstellen einer Tabelle dem Feld einen Standardwert hinzu. 
Tabelle „Student“ erstellen (
   sid int Primärschlüssel auto_increment,
   sname varchar(20),
   Alter int Standard 0,
   Ausweis varchar(18)
)Zeichensatz=utf8;

Methode 2: Fügen Sie den Feldern nach dem Erstellen der Tabelle Standardwerte hinzu.
Tabelle „Student“ erstellen (
   sid int Primärschlüssel auto_increment,
   sname varchar(20),
   Alter int,
   Ausweis varchar(18)
)Zeichensatz=utf8;
„Verschiedene Punkte brauchen besondere Aufmerksamkeit“
-- Der Code zum Hinzufügen eines Standardwerts mit „alter“ ist etwas speziell.
Tabelle ändern, Schüler ändern, Alter festlegen, Standard 0;

Standardwerte entfernen

Tabelle „Student“ ändern, Spalte „Alter“ ändern, Standard löschen;

Referenzielle Integrität

Was ist referenzielle Integrität?

Referenzielle Integrität bedeutet, dass der Wert eines Felds in einer Tabelle auf den Wert eines Felds in einer anderen Tabelle verweisen muss. Es handelt sich hier um den Fremdschlüssel: Fremdschlüssel. Im Allgemeinen wird dieses Feld in dieser Tabelle als Fremdschlüssel festgelegt. Der Wert dieses Felds in der Referenztabelle muss als Primärschlüssel dieser Tabelle festgelegt werden.

Die folgende Abbildung hilft Ihnen zum Verständnis:

Besonderer Hinweis: Die cid in der Studententabelle bezieht sich auf die cid in der Klassentabelle. Sie können sehen, dass die Feldnamen hier genau gleich sind. In Wirklichkeit können die beiden Feldnamen jedoch unterschiedlich sein, die Datentypen der beiden Felder müssen jedoch identisch sein.

Die Bedingungen für die referenzielle Integrität sind:

  1. Ein Feld in einer Tabelle (der Referenztabelle) verweist auf ein Feld in einer anderen Tabelle (der referenzierten Tabelle) (die Feldnamen können unterschiedlich sein).
  2. Die Feldnamen in den beiden Tabellen können unterschiedlich sein, die Datentypen der Felder müssen jedoch identisch sein.
  3. Die Felder in der Referenztabelle sind Fremdschlüssel in dieser Tabelle. Die Felder in der referenzierten Tabelle sind die Primärschlüssel in dieser Tabelle.

Hinzufügen einer Fremdschlüsseleinschränkung

Eines müssen Sie bedenken: Sie müssen zuerst eine referenzierte Tabelle haben, bevor Sie der aktuellen Tabelle eine Fremdschlüsseleinschränkung hinzufügen können. Auf wen wollen Sie sonst verweisen?

Es gibt zwei Möglichkeiten, Fremdschlüsseleinschränkungen hinzuzufügen:

Methode 1: Fügen Sie beim Erstellen einer Tabelle dem Feld eine Fremdschlüsseleinschränkung hinzu. 
Tabelle Klassenzimmer erstellen(
    cid int Primärschlüssel auto_increment,
    cname varchar(20) nicht null
)Zeichensatz=utf8;

Tabelle „Student“ erstellen (
   sid int Primärschlüssel auto_increment,
   sname varchar(20) nicht null,
   Altersbit(1),
   cid int,
   Einschränkung fk_cid Fremdschlüssel (cid) Referenzen Klassenzimmer (cid)
)Zeichensatz=utf8;

Methode 2: Fügen Sie nach dem Erstellen der Tabelle eine Fremdschlüsseleinschränkung zum Feld hinzu.
Tabelle Klassenzimmer erstellen(
    cid int Primärschlüssel,
    cname varchar(20) nicht null
)Zeichensatz=utf8;

Tabelle „Student“ erstellen (
    sid int Primärschlüssel auto_increment,
    sname varchar(20) nicht null,
    Altersbit(1),
    cid int
)Zeichensatz=utf8;

Tabelle ändern, Student, Einschränkung hinzufügen, fk_cid, Fremdschlüssel (cid)
Referenzen Klassenzimmer (cid);
„Hinweis: Auf die Einschränkung folgt ein Alias, und fk_cid entspricht dem Alias.“

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Integritätsbeschränkungen. Weitere Informationen zu MySQL-Integritätsbeschränkungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Erläuterung des MySQL-Nicht-Null-Einschränkungsfalls
  • MySQL-Fremdschlüsseleinschränkung (FOREIGN KEY) Fallerklärung
  • Zusammenfassung der MySQL-Fremdschlüsseleinschränkungen und Tabellenbeziehungen
  • Neue Funktionen in MySQL 8.0 - Einführung in Check Constraints
  • Erstellen, Einschränkungen und Löschen von Fremdschlüsseln in MySQL
  • Beispielanweisungen für Indizes und Einschränkungen in MySQL
  • Beispielerklärung von MySQL-Fremdschlüsseleinschränkungen
  • Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen
  • Detaillierte Erläuterung des Beispiels für MySQL-Integritätsbeschränkungen
  • MySQL-Einschränkungen - Super detaillierte Erklärung

<<:  Analyse und Lösung des Grundes, warum das Frameset-Tag in HTML nicht normal angezeigt werden kann

>>:  So erstellen Sie mit Harbor ein privates Docker-Repository

Artikel empfehlen

Mac+IDEA+Tomcat-Konfigurationsschritte

Inhaltsverzeichnis 1. Herunterladen 2. Installati...

So verwenden Sie die Markdown-Editor-Komponente in Vue3

Inhaltsverzeichnis Installieren Komponenten impor...

Beispiel-Tutorial für MySQL-Datenbanktransaktionen

Inhaltsverzeichnis 1. Was ist eine Transaktion? 2...

Grundlagen der funktionalen Programmierung in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. Was ist funkt...

Detaillierte Erklärung der Schritte zum Erstellen eines Vue-Projekts mit Vue-cli

Zuerst müssen Sie Vue-cli installieren: npm insta...

React Native JSI implementiert Beispielcode für RN und native Kommunikation

Inhaltsverzeichnis Was ist JSI Was ist anders an ...

Tutorial zum Ändern von Inline-Stilen von element.style

Vorwort Als wir den Stil der Webseite oben geschr...

Beispiel für automatischen Stoppeffekt nach Text-Scrollen

Die Wirkung ist ganz einfach: Kopieren Sie einfach...

Vorteile und Prinzipien der MySQL-Replikation im Detail erklärt

Bei der Replikation werden die DDL- und DML-Opera...

Kenntnisse über die MySQL Memory-Speicher-Engine

Wissenspunkte zur Speicher-Storage-Engine Die Spe...