Analyse von SQL-Integritätsbeschränkungsanweisungen in der Datenbank

Analyse von SQL-Integritätsbeschränkungsanweisungen in der Datenbank

Integritätsbeschränkungen

Integritätsbedingungen dienen der Richtigkeit der Tabellendaten! Sind die Daten fehlerhaft, können sie der Tabelle erst gar nicht hinzugefügt werden.

1 Primärschlüssel

Wenn einer Spalte eine Primärschlüsseleinschränkung hinzugefügt wird, können die Daten in dieser Spalte nicht wiederholt werden. Auf diese Weise ist der Wert der Primärschlüsselspalte in jeder Datensatzzeile die eindeutige Kennung dieser Zeile. Beispielsweise kann die ID-Nummer eines Studenten als eindeutige Kennung verwendet werden, der Name des Studenten kann jedoch nicht als eindeutige Kennung verwendet werden, da mehrere Studenten denselben Namen haben können.
Der Wert der Primärschlüsselspalte darf nicht NULL oder wiederholt sein!

Um eine Primärschlüsseleinschränkung anzugeben, verwenden Sie das Schlüsselwort PRIMARY KEY.

Erstellen Sie eine Tabelle: Geben Sie beim Definieren der Spalten den Primärschlüssel an:

CREATE TABLE stu(
         sid CHAR(6) PRIMÄRSCHLÜSSEL,
         sname VARCHAR(20),
         Alter INT,
         Geschlecht VARCHAR(10)
);

Erstellen Sie eine Tabelle: Definieren Sie die Spalten und geben Sie anschließend den Primärschlüssel separat an:

CREATE TABLE stu(
         sid CHAR(6),
         sname VARCHAR(20),
         Alter INT,
         Geschlecht VARCHAR(10),
         PRIMÄRSCHLÜSSEL(sid)
);

Geben Sie beim Ändern einer Tabelle den Primärschlüssel an:

ALTER TABLE stu
Primärschlüssel hinzufügen (sid);

So löschen Sie einen Primärschlüssel (löschen Sie einfach die Primärschlüsseleinschränkung, nicht die Primärschlüsselspalte):

ALTER TABLE stu DROP PRIMARY KEY;

2. Automatische Inkrementierung des Primärschlüssels

MySQL bietet die Funktion der automatischen Vergrößerung von Primärschlüsseln! Wenn der Primärschlüssel auf automatische Inkrementierung eingestellt ist und kein Primärschlüsselwert angegeben ist, wird der Primärschlüsselwert automatisch generiert. Er entspricht dem maximalen Primärschlüsselwert + 1, sodass keine Duplizierung von Primärschlüsseln möglich ist.

Legen Sie beim Erstellen einer Tabelle den Primärschlüssel auf automatisches Wachstum fest (der Primärschlüssel muss eine Ganzzahl sein, um automatisch zu wachsen):

CREATE TABLE stu(
         sid INT PRIMARY KEY AUTO_INCREMENT,
         sname VARCHAR(20),
         Alter INT,
         Geschlecht VARCHAR(10)
);

Legen Sie die automatische Inkrementierung des Primärschlüssels beim Ändern der Tabelle fest:

ALTER TABLE stu CHANGE sid sid INT AUTO_INCREMENT;

Löschen Sie die automatische Inkrementierung des Primärschlüssels beim Ändern der Tabelle:

ALTER TABLE stu CHANGE sid sid INT;

3 Nicht leer

Die Spalte, die die Nicht-Leer-Beschränkung angibt, darf nicht ohne Wert sein. Das heißt, beim Einfügen eines Datensatzes muss der Spalte, der die Nicht-Leer-Beschränkung hinzugefügt wurde, ein Wert zugewiesen werden. Beim Ändern eines Datensatzes darf der Wert der Nicht-Leer-Spalte nicht auf NULL gesetzt werden.

Geben Sie eine Nicht-Null-Einschränkung an:

CREATE TABLE stu(
         sid INT PRIMARY KEY AUTO_INCREMENT,
         sname VARCHAR(10) NOT NULL,
         Alter INT,
         Geschlecht VARCHAR(10)
);

Nachdem Sie das Sname-Feld als nicht leer angegeben haben, müssen Sie beim Einfügen von Datensätzen in die Stu-Tabelle einen Wert für das Sname-Feld angeben, andernfalls wird ein Fehler gemeldet:

EINFÜGEN IN stu(sid) VALUES(1);

Im eingefügten Datensatz ist kein Wert für sname angegeben, daher wird ein Fehler gemeldet!

4 Einzigartig

Sie können auch eindeutige Einschränkungen für Felder angeben! Wenn für eine Spalte eine eindeutige Einschränkung angegeben ist, müssen die Werte in der Spalte eindeutig sein. Dies ist einem Primärschlüssel ähnlich! So geben Sie beispielsweise eine eindeutige Einschränkung für das Feld „sname“ der Tabelle „stu“ an:

Tabelle erstellen tab_ab(
     sid INT PRIMARY KEY AUTO_INCREMENT,
     sname VARCHAR(10) UNIQUE
);
 
  INSERT INTO sname(sid, sname) VALUES(1001, 'zs');
INSERT INTO sname(sid, sname) VALUES(1002, 'zs');

Wenn Sie den gleichen Namen zweimal eingeben, beschwert sich MySQL!

5 Fremdschlüssel

Primär- und Fremdschlüssel sind die einzige Möglichkeit Tabellen zu verknüpfen!

Ein Fremdschlüssel ist der Primärschlüssel einer anderen Tabelle! Beispielsweise besteht eine Assoziationsbeziehung zwischen der Mitarbeitertabelle und der Abteilungstabelle, wobei das Abteilungsnummernfeld in der Mitarbeitertabelle ein Fremdschlüssel ist, der wiederum ein Fremdschlüssel relativ zur Abteilungstabelle ist.

Beispielsweise zeigt in der Tabelle t_section der Datensatz mit der SID 1 an, dass es eine Kategorie namens „Java“ gibt und der Moderator der Benutzer mit der UID 1 in der Tabelle t_user ist, also zs!

Beispielsweise ist in der Tabelle „t_topic“ der Datensatz mit der TID 2 ein Beitrag mit dem Namen „Java is coffee“, ein Beitrag im Abschnitt „Java“, dessen Autor ww ist.

Der Fremdschlüssel wird verwendet, um den Wert dieser Spalte auf den Primärschlüsselwert einer anderen Tabelle zu beschränken. ! !

Erstellen Sie die Tabelle t_user und geben Sie uid als Primärschlüsselspalte an:

TABELLE ERSTELLEN t_user(
     uid INT PRIMARY KEY AUTO_INCREMENT,
     uname VARCHAR(20) UNIQUE NICHT NULL
);

Erstellen Sie die Tabelle t_section, geben Sie sid als Primärschlüsselspalte und u_id als Fremdschlüssel für die Spalte uid der Tabelle t_user an:

TABELLE ERSTELLEN t_Abschnitt(
         sid INT PRIMARY KEY AUTO_INCREMENT,
         sname VARCHAR(30),
         u_id INT,
         EINSCHRÄNKUNG fk_t_user FREMDER SCHLÜSSEL(u_id) REFERENZEN t_user(uid)
);

Ändern Sie die Tabelle „t_section“ und geben Sie „u_id“ als Fremdschlüssel für die Spalte „uid“ der Tabelle „t_user“ an:

ALTER TABLE t_Abschnitt
EINSCHRÄNKUNG HINZUFÜGEN fk_t_user
Fremdschlüssel (u_id)
REFERENZEN t_user(uid);

Ändern Sie die Tabelle t_section und löschen Sie die Fremdschlüsseleinschränkung von u_id:

ALTER TABLE t_Abschnitt
DROP FOREIGN KEY fk_t_user;

6 Beziehungen zwischen Tabellen

  • Eins-zu-eins: Beispielsweise die Tabelle t_person und die Tabelle t_card, also eine Person und ein Ausweis. In diesem Fall müssen Sie die Master-Slave-Beziehung herausfinden, das heißt, wer die Master-Tabelle und wer die Slave-Tabelle ist. Eine Person muss keinen Personalausweis besitzen, es muss jedoch ein Personalausweis der Person vorhanden sein. Daher ist die Person die Primärtabelle und der Personalausweis die Sekundärtabelle. Für den Entwurf einer Slave-Tabelle gibt es zwei Möglichkeiten:
  • Fügen Sie der Tabelle t_card eine Fremdschlüsselspalte hinzu (relativ zur Tabelle t_user) und fügen Sie dem Fremdschlüssel eine eindeutige Einschränkung hinzu.
  • Fügen Sie dem Primärschlüssel der Tabelle t_card (relativ zur Tabelle t_user) eine Fremdschlüsseleinschränkung hinzu, d. h. der Primärschlüssel der Tabelle t_card ist auch ein Fremdschlüssel.
  • Eins zu viele (viele zu eins): Am häufigsten wird „Eins zu viele“ verwendet! Eins-zu-viele und viele-zu-eins, aus welcher Perspektive können wir das betrachten? Aus der Sicht von t_user ist die Beziehung zwischen t_user und t_section eins-zu-viele, aus der Sicht von t_section jedoch viele-zu-eins! In diesem Fall werden Fremdschlüssel auf mehreren Seiten erstellt!
  • Viele-zu-viele: Beispielsweise die Tabellen t_stu und t_teacher, das heißt, ein Schüler kann mehrere Lehrer haben und ein Lehrer kann mehrere Schüler haben. In dieser Situation ist normalerweise die Erstellung einer Zwischentabelle erforderlich, um die Viele-zu-viele-Beziehung zu verarbeiten. Erstellen Sie beispielsweise eine weitere Tabelle t_stu_tea und weisen Sie ihr zwei Fremdschlüssel zu, einen relativ zur Tabelle t_stu und den anderen relativ zur Tabelle t_teacher.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Unbedingt zu kennende SQL-Anweisungen (VIII) Integritätsbeschränkungen für Datenbanken
  • Beispielcode zum Erstellen und Löschen von Einschränkungen mithilfe von SQL-Anweisungen
  • Verwenden Sie das TP-Framework und SQL-Anweisungen, um abzufragen, ob ein Feld in der Datentabelle einen bestimmten Wert enthält
  • Laravel implementiert die Methode zur Abfrage der zuletzt ausgeführten SQL-Anweisung
  • Laravel verwendet native SQL-Anweisungen und ruft Methoden auf
  • So verwenden Sie SQL-Anweisungen zum Importieren von Bildern von einem Computer in eine Datenbank
  • Implementierung benutzerdefinierter SQL-Anweisungen von MyBatisPlus

<<:  Linux Überprüfen Sie den Installationsort der Software einfache Methode

>>:  js realisiert den Effekt des Tanabata-Geständnisfeuers, jQuery realisiert die Feuerfeuertechnologie

Artikel empfehlen

Detaillierte Erklärung der Datentypen in den JavaScript-Grundlagen

Inhaltsverzeichnis 1. Datentyp 1.1 Warum brauchen...

Beispiel für einen SQL-Seriennummernerfassungscode

In diesem Artikel wird hauptsächlich das Beispiel...

So verwenden Sie die Typerweiterung ohne Typingscript

Vorwort Aufgrund der schwachen Typisierung von JS...

Beispiel für die Installation und Bereitstellung von Docker unter Linux

Nachdem Sie den folgenden Artikel gelesen haben, ...

Eine kurze Einführung in MySQL InnoDB ReplicaSet

Inhaltsverzeichnis 01 Einführung in InnoDB Replic...

Zusammenfassung der MySQL-Sperrwissenspunkte

Das Konzept des Schlosses ①. Im wirklichen Leben ...

Probleme und Lösungen beim Ersetzen von Oracle durch MySQL

Inhaltsverzeichnis Migrationstools Anwendungstran...

HTML-Zeichnungsbenutzer-Registrierungsseite

In diesem Artikel wird der spezifische Implementi...

Detaillierte Codebeispiele zu sieben Methoden zur vertikalen Zentrierung mit CSS

Wenn wir ein Layout bearbeiten, verwenden wir nor...

Docker startet Redis und legt das Passwort fest

Redis verwendet das Apline-Image (Alps) von Redis...