MySQL-Einschränkungstypen und Beispiele

MySQL-Einschränkungstypen und Beispiele

Zwang

  • Einschränkungen gewährleisten Datenintegrität und -konsistenz
  • Einschränkungen werden in Einschränkungen auf Tabellenebene und Einschränkungen auf Spaltenebene unterteilt.
  • Zu den Einschränkungstypen gehören: NOT NULL (Nicht-Leer-Einschränkung), PRIMARY KEY (Primärschlüsseleinschränkung), UNIQUE KEY (eindeutige Einschränkung), DEFAULT (Standardeinschränkung), FOREIGN (Fremdschlüsseleinschränkung)

1. Primärschlüsseleinschränkung

  • PRIMÄRSCHLÜSSEL
  • Jede Datentabelle kann nur einen Primärschlüssel haben
  • Der Primärschlüssel stellt die Eindeutigkeit des Datensatzes sicher und der Wert des Primärschlüssels wird nicht wiederholt
  • Der Primärschlüssel ist automatisch NOT NULL

Erstellen Sie beispielsweise eine Studententabelle und legen Sie die Studentennummer als Primärschlüssel fest. Nachdem Sie die Tabelle erstellt haben, können Sie die Tabellenstruktur über SHWO COLUMNS FROM student anzeigen.

CREATE TABLE Student (
id int Primärschlüssel,
stu_name varchar(20)
);

2. Einzigartige Einschränkung

  • EINZIGARTIGER SCHLÜSSEL
  • Die Unique-Einschränkung kann die Einzigartigkeit des Datensatzes sicherstellen
  • Das eindeutige Einschränkungsfeld kann einen Nullwert (NULL) haben.
  • Jede Datentabelle kann mehrere eindeutige Einschränkungen haben

Erstellen Sie beispielsweise eine Lehrertabelle mit einem automatisch inkrementierten ID-Feld und einem eindeutigen Feld „Tea_Name“.

CREATE TABLE Lehrer(
ID int AUTO_INCREMENT PRIMARY KEY,
tea_name varchar(20) NICHT NULL EINZIGARTIGER SCHLÜSSEL
);

3. Standardbeschränkungen

  • STANDARD
  • Wenn beim Einfügen eines Datensatzes dem Feld kein Wert explizit zugewiesen wird, wird automatisch ein Standardwert zugewiesen.

Erstellen Sie beispielsweise eine Kurstabelle mit einer Standardunterrichtszeit von 40 Minuten.

CREATE TABLE-Kurs (
ID int AUTO_INCREMENT PRIMARY KEY,
cou_name varchar(20) NICHT NULL EINZIGARTIGER SCHLÜSSEL,
Zeit int DEFAULT 40
);
INSERT INTO course(cou_name) values('Chinesisch');

4. Nicht Null-Einschränkung

  • NICHT NULL
  • Erzwingt, dass eine Spalte keinen NULL-Wert haben kann, und Einschränkungen erzwingen, dass ein Feld immer einen Wert enthält.
  • Dies bedeutet, dass Sie keine neuen Datensätze einfügen oder Datensätze aktualisieren können, ohne den Feldern Werte hinzuzufügen.

Erstellen Sie beispielsweise beim Erstellen der Tabelle „Personen“ Nicht-Null-Einschränkungen in der Spalte „ID“ und der Spalte „Name“:

Tabelle „Personen“ erstellen (
id int nicht NULL,
p_name varchar(20) ungleich null, 
Abteilung varchar(20),
Adresse varchar(20),
telNum varchar(20)
)
DESC-Personen;

5. Fremdschlüsseleinschränkungen

  • Fremdschlüssel
  • Aufrechterhaltung der Datenkonsistenz und -integrität
  • Implementieren Sie eine 1 zu 1 oder 1 zu n Beziehung

1. Die übergeordnete und die untergeordnete Tabelle müssen dieselbe Speicher-Engine verwenden. Temporäre Tabellen sind verboten.
2. Die Speicher-Engine der Datentabelle kann nur InnoDB sein
3. Fremdschlüsselspalten und Referenzspalten müssen ähnliche Datentypen haben. Die Länge der Zahlen und das Vorhandensein eines Vorzeichenbits müssen gleich sein, die Länge der Zeichen kann unterschiedlich sein.
4. Für Fremdschlüsselspalten und Referenzspalten müssen Indizes erstellt werden. Wenn für die Fremdschlüsselspalte kein Index vorhanden ist, erstellt MySQL automatisch einen.

CREATE TABLE Schule(
ID int AUTO_INCREMENT PRIMARY KEY,
sname varchar(20) NICHT NULL
);
Tabelle erstellen Student2 (
ID int AUTO_INCREMENT PRIMARY KEY,
sid int,
Fremdschlüssel (sid) Referenzen Schule (id)
);

Referenzielle Operationen auf Fremdschlüsseleinschränkungen

  • CASCADE: Löschen oder aktualisieren Sie aus der übergeordneten Tabelle und löschen oder aktualisieren Sie automatisch übereinstimmende Zeilen in der untergeordneten Tabelle.
  • Wenn Daten aus der referenzierten Spalte in der übergeordneten Tabelle gelöscht werden, wird die Zeile mit den entsprechenden Daten aus der untergeordneten Tabelle gelöscht.
Tabelle erstellen Student3 (
ID int AUTO_INCREMENT PRIMARY KEY,
sid int,
FOREIGN KEY (sid) REFERENZEN Schule (id) ON DELETE CASCADE
);
  • SET NULL: Löscht oder aktualisiert Zeilen aus der übergeordneten Tabelle und setzt die Fremdschlüsselspalten der untergeordneten Tabelle auf NULL. Wenn diese Option verwendet wird, müssen Sie sicherstellen, dass die Spalten der untergeordneten Tabelle nicht NOT NULL angeben.
  • Löschen Sie Daten aus der übergeordneten Tabelle und setzen Sie den Verweis in der untergeordneten Tabelle auf NULL
  • RESTRICT: Lösch- oder Aktualisierungsvorgänge an der übergeordneten Tabelle ablehnen
  • KEINE AKTION: Ein Standard-SQL-Schlüsselwort, das in MySQL RESTRICT entspricht.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Beispiels für MySQL-Integritätsbeschränkungen
  • MySQL-Einschränkungen - Super detaillierte Erklärung
  • Detaillierte Erläuterung der sechs gängigen Einschränkungstypen in MySQL
  • Beispiele für Dateneinschränkungen basierend auf einer MySQL-Datenbank und Einführung in fünf Integritätseinschränkungen
  • MySQL lernen: Fünf Hauptbeschränkungen von Datenbanktabellen im Detail für Anfänger erklärt

<<:  Mehrere Möglichkeiten zum Wechseln zwischen Vue Tab und Cache-Seiten

>>:  So verwenden Sie die Markdown-Editor-Komponente in Vue3

Artikel empfehlen

Detaillierte Erklärung gängiger Befehle in MySQL 8.0+

Aktivieren Sie den Fernzugriff Aktivieren Sie die...

Detaillierte Analyse der Verwendungs- und Anwendungsszenarien von Slots in Vue

Was sind Slots? Wir wissen, dass in Vue nichts in...

Detaillierte Erklärung des MySQL-Sicherungsprozesses mit Xtrabackup

Inhaltsverzeichnis 01 Hintergrund 02 Einleitung 0...

Detaillierte Erläuterung des Prinzips der Vue-Überwachungsdaten

Inhaltsverzeichnis 1. Einleitung II. Überwachungs...

Implementierung der Multisite-Konfiguration von Nginx auf Mac M1

Hinweis: nginx über brew installiert Stammverzeic...

Warum ist die Bildlaufleiste auf der Webseite rechts angebracht?

Warum befinden sich die Bildlaufleisten der Brows...

Get/Delete-Methode zum Übergeben von Array-Parametern in Vue

Wenn Front-End und Back-End interagieren, müssen ...

Datendiebstahl mit CSS in Firefox

0x00 Einführung Vor einigen Monaten habe ich eine...

Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen

Amtliche Dokumentation: https://dev.mysql.com/doc...