Heim Datenbank MySQL-Tutorial Was ist der Primärschlüssel in MySQL?

Was ist der Primärschlüssel in MySQL?

Apr 17, 2023 am 10:13 AM
mysql

In MySQL lautet der vollständige Name des Primärschlüssels „Primärschlüsseleinschränkung“. Sein Wert kann jede Zeile in der Tabelle eindeutig identifizieren Die Rolle des Primärschlüssels besteht darin, die Einzigartigkeit dieser Daten zu bestimmen und hauptsächlich für die Fremdschlüsselzuordnung mit anderen Tabellen sowie für die Änderung und Löschung dieses Datensatzes zu verwenden.

Was ist der Primärschlüssel in MySQL?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Was ist der Primärschlüssel in MySQL?

PRIMARY KEY, auch bekannt als „Primärschlüsseleinschränkung“.

MySQL-Primärschlüsseleinschränkung ist eine Spalte oder eine Kombination mehrerer Spalten, deren Wert jede Zeile in der Tabelle eindeutig identifizieren kann. Eine solche Spalte oder Spalten werden als Primärschlüssel der Tabelle bezeichnet, durch den die Entitätsintegrität der Tabelle erzwungen wird. Der Primärschlüssel wird hauptsächlich für Fremdschlüsselzuordnungen in anderen Tabellen sowie zum Ändern und Löschen dieses Datensatzes verwendet.

PRIMARY KEY ist die am häufigsten verwendete Einschränkung in MySQL. Unter normalen Umständen wird ein Primärschlüssel in der Tabelle festgelegt, damit das DBMS Datensätze in der Tabelle schneller finden kann.

Bei der Verwendung von Primärschlüsseln sind folgende Punkte zu beachten:

  • Jede Tabelle kann nur einen Primärschlüssel definieren.

  • Der Primärschlüsselwert muss jede Zeile in der Tabelle eindeutig identifizieren und darf nicht NULL sein, d. h. die Tabelle darf nicht zwei Datenzeilen mit demselben Primärschlüsselwert enthalten. Das ist das Prinzip der Einzigartigkeit.

  • Ein Feldname kann in der gemeinsamen Primärschlüsselfeldtabelle nur einmal vorkommen.

  • Der gemeinsame Primärschlüssel darf keine unnötigen redundanten Felder enthalten. Wenn ein Feld im gemeinsamen Primärschlüssel gelöscht wird und der aus den verbleibenden Feldern zusammengesetzte Primärschlüssel immer noch das Eindeutigkeitsprinzip erfüllt, ist der gemeinsame Primärschlüssel falsch. Dies ist das Prinzip der Minimierung.

Legen Sie beim Erstellen einer Tabelle Primärschlüsseleinschränkungen fest.

Legen Sie beim Erstellen einer Datentabelle Primärschlüsseleinschränkungen fest. Sie können einen Primärschlüssel für ein Feld in der Tabelle oder einen gemeinsamen Primärschlüssel für mehrere Felder in der Tabelle festlegen Tisch. Aber egal welche Methode verwendet wird, es kann nur einen Primärschlüssel in einer Tabelle geben. Im Folgenden wird erläutert, wie ein Primärschlüssel für ein einzelnes Feld und ein gemeinsamer Primärschlüssel für mehrere Felder festgelegt werden.

1) Legen Sie einen Einzelfeld-Primärschlüssel fest

Geben Sie in der CREATE TABLE-Anweisung den Primärschlüssel über das Schlüsselwort PRIMARY KEY an.

Geben Sie den Primärschlüssel an, während Sie das Feld definieren. Das Syntaxformat lautet wie folgt:

<字段名> <数据类型> PRIMARY KEY [默认值]
Nach dem Login kopieren

Beispiel 1

Erstellen Sie die Datentabelle tb_emp3 in der Datenbank test_db, deren Primärschlüssel id ist. Die SQL-Anweisung und die Ausführungsergebnisse lauten wie folgt .

mysql> CREATE TABLE tb_emp3
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp3;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
Nach dem Login kopieren

Oder geben Sie den Primärschlüssel an, nachdem Sie alle Felder definiert haben. Das Syntaxformat ist wie folgt:

[CONSTRAINT <约束名>] PRIMARY KEY [字段名]
Nach dem Login kopieren

Beispiel 2

Erstellen Sie die Datentabelle tb_emp4 in der Datenbank test_db, wobei der Primärschlüssel die SQL-Anweisung und die ausgeführten Ergebnisse ist sind wie folgt.

mysql> CREATE TABLE tb_emp4
    -> (
    -> id INT(11),
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(id)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp4;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
Nach dem Login kopieren

2) Beim Erstellen der Tabelle den gemeinsamen Primärschlüssel festlegen

Der sogenannte gemeinsame Primärschlüssel bedeutet, dass der Primärschlüssel aus mehreren Feldern einer Tabelle besteht.

Sollten Sie beispielsweise beim Einrichten einer Datentabelle zur Kursauswahl für Studenten die Studentennummer als Primärschlüssel oder die Kursnummer als Primärschlüssel verwenden? Wird die Matrikelnummer als Primärschlüssel verwendet, kann ein Student nur einen Kurs wählen. Wenn die Kursnummer als Primärschlüssel verwendet wird, kann nur ein Student einen Kurs auswählen. Offensichtlich sind beide Situationen unrealistisch.

Tatsächlich besteht die Einschränkung bei der Gestaltung eines Kursauswahlplans für Studenten darin, dass ein Student denselben Kurs nur einmal wählen kann. Daher können die Matrikelnummer und die Kursnummer als Primärschlüssel zusammengesetzt werden, der ein gemeinsamer Primärschlüssel ist.

Der Primärschlüssel besteht aus mehreren Feldern. Das Syntaxformat lautet wie folgt:

PRIMARY KEY [字段1,字段2,…,字段n]
Nach dem Login kopieren

Hinweis: Wenn der Primärschlüssel aus mehreren Feldern besteht, kann die Primärschlüsseleinschränkung nicht direkt nach dem Feldnamen deklariert werden.

Beispiel 3

Erstellen Sie die Datentabelle tb_emp5. Um einen Mitarbeiter eindeutig zu identifizieren, können Sie Name und DeptId als Primärschlüssel kombinieren wie folgt.

mysql> CREATE TABLE tb_emp5
    -> (
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(name,deptId)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp5;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(25) | NO   | PRI | NULL    |       |
| deptId | int(11)     | NO   | PRI | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.14 sec)
Nach dem Login kopieren

Primärschlüsseleinschränkungen beim Ändern der Tabelle hinzufügen

Primärschlüsseleinschränkungen können nicht nur beim Erstellen der Tabelle erstellt, sondern auch beim Ändern der Tabelle hinzugefügt werden. Es ist jedoch zu beachten, dass in Feldern, die als Primärschlüsseleinschränkungen festgelegt sind, keine Nullwerte zulässig sind.

Das Syntaxformat zum Hinzufügen von Primärschlüsseleinschränkungen beim Ändern der Datentabelle lautet wie folgt:

ALTER TABLE <数据表名> ADD PRIMARY KEY(<字段名>);
Nach dem Login kopieren

Sehen Sie sich die Tabellenstruktur der tb_emp2-Datentabelle an. Die SQL-Anweisung und die Ausführungsergebnisse lauten wie folgt.

mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
Nach dem Login kopieren

Beispiel 4

Ändern Sie die Datentabelle tb_emp2 und legen Sie die Feld-ID als Primärschlüssel fest. Die SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt.

mysql> ALTER TABLE tb_emp2
    -> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)
Nach dem Login kopieren

Wenn Sie beim Ändern der Tabelle die Primärschlüsseleinschränkung eines Felds in der Tabelle festlegen möchten, müssen Sie normalerweise sicherstellen, dass die Werte in dem als Primärschlüsseleinschränkung festgelegten Feld keine Duplikate aufweisen dürfen und nicht vorhanden sein dürfen. null. Andernfalls kann die Primärschlüsseleinschränkung nicht festgelegt werden.

Primärschlüsseleinschränkungen löschen

Wenn eine Primärschlüsseleinschränkung in einer Tabelle nicht mehr benötigt wird, muss sie aus der Tabelle gelöscht werden. Es ist viel einfacher, eine Primärschlüsseleinschränkung zu löschen, als eine zu erstellen.

Das Syntaxformat zum Löschen von Primärschlüsseleinschränkungen lautet wie folgt:

ALTER TABLE <数据表名> DROP PRIMARY KEY;
Nach dem Login kopieren

Beispiel 5

Löschen Sie die Primärschlüsseleinschränkungen in der Tabelle tb_emp2. ​​Die SQL-Anweisung und die Ausführungsergebnisse lauten wie folgt.

mysql> ALTER TABLE tb_emp2
    -> DROP PRIMARY KEY;
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
Nach dem Login kopieren

由于主键约束在一个表中只能有一个,因此不需要指定主键名就可以删除一个表中的主键约束。

【相关推荐:mysql视频教程

Das obige ist der detaillierte Inhalt vonWas ist der Primärschlüssel in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen May 08, 2024 am 10:24 AM

Fähigkeiten zur Verarbeitung von Big-Data-Strukturen: Chunking: Teilen Sie den Datensatz auf und verarbeiten Sie ihn in Blöcken, um den Speicherverbrauch zu reduzieren. Generator: Generieren Sie Datenelemente einzeln, ohne den gesamten Datensatz zu laden, geeignet für unbegrenzte Datensätze. Streaming: Lesen Sie Dateien oder fragen Sie Ergebnisse Zeile für Zeile ab, geeignet für große Dateien oder Remote-Daten. Externer Speicher: Speichern Sie die Daten bei sehr großen Datensätzen in einer Datenbank oder NoSQL.

Wie optimiert man die MySQL-Abfrageleistung in PHP? Wie optimiert man die MySQL-Abfrageleistung in PHP? Jun 03, 2024 pm 08:11 PM

Die MySQL-Abfrageleistung kann durch die Erstellung von Indizes optimiert werden, die die Suchzeit von linearer Komplexität auf logarithmische Komplexität reduzieren. Verwenden Sie PreparedStatements, um SQL-Injection zu verhindern und die Abfrageleistung zu verbessern. Begrenzen Sie die Abfrageergebnisse und reduzieren Sie die vom Server verarbeitete Datenmenge. Optimieren Sie Join-Abfragen, einschließlich der Verwendung geeigneter Join-Typen, der Erstellung von Indizes und der Berücksichtigung der Verwendung von Unterabfragen. Analysieren Sie Abfragen, um Engpässe zu identifizieren. Verwenden Sie Caching, um die Datenbanklast zu reduzieren. Optimieren Sie den PHP-Code, um den Overhead zu minimieren.

Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Jun 03, 2024 pm 12:19 PM

Das Sichern und Wiederherstellen einer MySQL-Datenbank in PHP kann durch Befolgen dieser Schritte erreicht werden: Sichern Sie die Datenbank: Verwenden Sie den Befehl mysqldump, um die Datenbank in eine SQL-Datei zu sichern. Datenbank wiederherstellen: Verwenden Sie den Befehl mysql, um die Datenbank aus SQL-Dateien wiederherzustellen.

Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Jun 02, 2024 pm 02:26 PM

Wie füge ich Daten in eine MySQL-Tabelle ein? Mit der Datenbank verbinden: Stellen Sie mit mysqli eine Verbindung zur Datenbank her. Bereiten Sie die SQL-Abfrage vor: Schreiben Sie eine INSERT-Anweisung, um die einzufügenden Spalten und Werte anzugeben. Abfrage ausführen: Verwenden Sie die Methode query(), um die Einfügungsabfrage auszuführen. Bei Erfolg wird eine Bestätigungsmeldung ausgegeben.

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 Dec 09, 2024 am 11:42 AM

Eine der wichtigsten Änderungen, die in MySQL 8.4 (der neuesten LTS-Version von 2024) eingeführt wurden, besteht darin, dass das Plugin „MySQL Native Password“ nicht mehr standardmäßig aktiviert ist. Darüber hinaus entfernt MySQL 9.0 dieses Plugin vollständig. Diese Änderung betrifft PHP und andere Apps

Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Jun 02, 2024 pm 02:13 PM

So verwenden Sie gespeicherte MySQL-Prozeduren in PHP: Verwenden Sie PDO oder die MySQLi-Erweiterung, um eine Verbindung zu einer MySQL-Datenbank herzustellen. Bereiten Sie die Anweisung zum Aufrufen der gespeicherten Prozedur vor. Führen Sie die gespeicherte Prozedur aus. Verarbeiten Sie die Ergebnismenge (wenn die gespeicherte Prozedur Ergebnisse zurückgibt). Schließen Sie die Datenbankverbindung.

Wie erstelle ich eine MySQL-Tabelle mit PHP? Wie erstelle ich eine MySQL-Tabelle mit PHP? Jun 04, 2024 pm 01:57 PM

Das Erstellen einer MySQL-Tabelle mit PHP erfordert die folgenden Schritte: Stellen Sie eine Verbindung zur Datenbank her. Erstellen Sie die Datenbank, falls sie nicht vorhanden ist. Wählen Sie eine Datenbank aus. Tabelle erstellen. Führen Sie die Abfrage aus. Schließen Sie die Verbindung.

Der Unterschied zwischen Oracle-Datenbank und MySQL Der Unterschied zwischen Oracle-Datenbank und MySQL May 10, 2024 am 01:54 AM

Oracle-Datenbank und MySQL sind beide Datenbanken, die auf dem relationalen Modell basieren, aber Oracle ist in Bezug auf Kompatibilität, Skalierbarkeit, Datentypen und Sicherheit überlegen, während MySQL auf Geschwindigkeit und Flexibilität setzt und eher für kleine bis mittlere Datensätze geeignet ist. ① Oracle bietet eine breite Palette von Datentypen, ② bietet erweiterte Sicherheitsfunktionen, ③ ist für Anwendungen auf Unternehmensebene geeignet; ① MySQL unterstützt NoSQL-Datentypen, ② verfügt über weniger Sicherheitsmaßnahmen und ③ ist für kleine bis mittlere Anwendungen geeignet.

See all articles