Grundlegende Operationen an unsichtbaren Spalten in MySQL 8.0

Grundlegende Operationen an unsichtbaren Spalten in MySQL 8.0

01 Unsichtbare Spalten erstellen

So erstellen Sie eine unsichtbare Spalte:

TABELLE ERSTELLEN `t2` (
  `id` int NICHT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `Alter` int DEFAULT NULL UNSICHTBAR,
  PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

Wie Sie sehen, wird in unserem SQL eine Tabelle t2 mit Feldern einschließlich ID, Name und Alter erstellt, wobei das Altersfeld mit dem Attribut „unsichtbar“ festgelegt ist.

Natürlich können wir die Syntax „Alter Table“ verwenden, um eine unsichtbare Spalte zu erstellen und der t2-Tabelle ein unsichtbares Score-Feld hinzuzufügen.

mysql> Tabelle ändern t2, Punktzahl hinzufügen int unsichtbar;
Abfrage OK, 0 Zeilen betroffen (0,05 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

Kann die Syntax zum Erstellen einer Tabelle perfekt mit unsichtbaren Feldern kompatibel sein? Die Antwort ist ja.

mysql> anzeigen, Tabelle erstellen t1\G
*************************** 1. Reihe ***************************
Tabelle: t1
Tabelle erstellen: CREATE TABLE `t1` (
`id` int NICHT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`Alter` int DEFAULT NULL /*!80023 UNSICHTBAR */,
PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 Zeile im Satz (0,00 Sek.)

mysql> Tabelle t3 wie t1 erstellen;
Abfrage OK, 0 Zeilen betroffen (0,09 Sek.)

mysql> anzeigen, Tabelle erstellen t3\G
*************************** 1. Reihe ***************************
Tabelle: t3
Tabelle erstellen: CREATE TABLE `t3` (
`id` int NICHT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`Alter` int DEFAULT NULL /*!80023 UNSICHTBAR */,
PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 Zeile im Satz (0,00 Sek.)

Die Syntax von create table as behält die unsichtbare Spalte standardmäßig nicht bei. Wenn Sie diese Spalte beibehalten möchten, verwenden Sie die folgende Methode:

02 Grundlegende Operationen an unsichtbaren Spalten

Wir erstellen eine Tabelle namens t1, die drei Felder enthält: id, name und age. Das Feld age ist unsichtbar. Sehen wir uns einige grundlegende Operationen an:

mysql> in t1-Werte einfügen (1, 'zhangsan', 10);
FEHLER 1136 (21S01): Die Spaltenanzahl stimmt nicht mit der Werteanzahl in Zeile 1 überein

mysql> in t1 (ID, Name, Alter) einfügen Werte (1, 'zhangsan', 10);
 Abfrage OK, 1 Zeile betroffen (0,01 Sek.)

mysql> wähle * aus t1;
+----+----------+
| Ich würde | Name |
+----+----------+
| 1 | Zhangsan |
+----+----------+
1 Zeile im Satz (0,00 Sek.)

Als erstes fügen wir in die Tabelle t1 einen Datensatz ein, der 3 Felder enthält. Wir erhalten eine Fehlermeldung, dass die Anzahl der Spalten nicht übereinstimmt.

Beim Einfügen fügen wir dann die entsprechenden Felder hinzu und stellen fest, dass das Einfügen normal ist.

Wenn Sie jedoch die Syntax „select *“ für die Abfrage verwenden, stellen Sie fest, dass die Abfrageergebnisse nur zwei Spalten enthalten: „id“ und „name“. Die unsichtbare Spalte „age“ wird standardmäßig nicht angezeigt.

Natürlich können wir „Select“ verwenden, um diese Spalte explizit anzuzeigen:

mysql> wähle ID, Name, Alter aus t1;
+----+----------+------+
| ID | Name | Alter |
+----+----------+------+
| 1 | zhangsan | 10 |
+----+----------+------+
1 Zeile im Satz (0,00 Sek.)

03 Unsichtbare Spaltenmetadaten

Sie können „information_schema“ verwenden, um zu überprüfen, ob eine Spalte eine unsichtbare Spalte ist, oder Sie können den Befehl „desc + table_name“ verwenden. wie folgt:

HIER TABLE_SCHEMA = „test“ UND TABLE_NAME = „t1“;
+------------+----------+-----------+
| TABELLENNAME | SPALTENNAME | EXTRA |
+------------+----------+-----------+
| t1 | ich | |
| t1 | j | |
| t1 | k | UNSICHTBAR |
+------------+----------+-----------+

mysql> Beschreibung test.t1;
+----------+----------+------+-----+---------+----------------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+----------+----------+------+-----+---------+----------------+
| ID | int | NEIN | PRI | NULL | auto_increment |
| Name | varchar(20) | JA | | NULL | |
| Alter | int | JA | | NULL | UNSICHTBAR |
+----------+----------+------+-----+---------+----------------+
3 Zeilen im Satz (0,00 Sek.)

04 Wird als Primärschlüssel-ID verwendet

Schauen Sie sich das folgende Beispiel an. Wir legen den Primärschlüssel „id“ als unsichtbare Spalte fest, damit wir uns mehr auf die Felder konzentrieren können, die mit dem Dateninhalt der Tabelle in Zusammenhang stehen, ohne uns um die Spalte „id“ kümmern und sie ausblenden zu müssen:

mysql> Test verwenden
Einlesen von Tabelleninformationen zur Vervollständigung von Tabellen- und Spaltennamen
Sie können diese Funktion deaktivieren, um einen schnelleren Start mit -A zu erhalten

Datenbank geändert
mysql> Tabelle t4 erstellen (ID int ungleich null, auto_increment, Primärschlüssel unsichtbar, Name varchar(20), Alter int);
Abfrage OK, 0 Zeilen betroffen (0,07 Sek.)

mysql> in t4-Werte einfügen ('zhangsan',10),('lisi',15);
Abfrage OK, 2 Zeilen betroffen (0,01 Sek.)
Datensätze: 2 Duplikate: 0 Warnungen: 0

mysql> wähle * aus t4;
+----------+------+
| Name | Alter |
+----------+------+
| 10 |
| lisi | 15 |
+----------+------+
2 Zeilen im Satz (0,00 Sek.)

Diese Methode hat einen großen Vorteil: Unter der Annahme, dass die für das Geschäft entworfene Tabelle keinen Primärschlüssel hat, wird der DBA diese Tabellenstruktur definitiv nicht zulassen. Dann kann der DBA den Primärschlüssel auf eine unsichtbare Spalte setzen, um das Problem dieser Tabelle zu lösen, ohne die Geschäftslogik zu ändern.

Oben finden Sie detaillierte Informationen zu den grundlegenden Operationen unsichtbarer Spalten in MySQL 8.0. Weitere Informationen zu unsichtbaren Spalten in MySQL 8.0 finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Grafisches Tutorial zur Installation und Konfiguration der MySQL-Version 8.0.24
  • Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.24
  • Einige Verbesserungen in MySQL 8.0.24 Release Note
  • Detaillierte Schritte für Java zum Herstellen einer Verbindung mit MySQL 8.0 JDBC (IDEA-Version)
  • Detaillierte Analyse des MySQL 8.0-Speicherverbrauchs
  • Detaillierte grafische Beschreibung des MySql8.023-Installationsprozesses (Erstinstallation)
  • Neue Funktionen in MySQL 8.0 - Einführung in die Verwendung des Management-Ports
  • Neue Funktionen in MySQL 8.0 - Einführung in Check Constraints
  • mysql8.0.23 msi Installation super ausführliches Tutorial
  • Ausführliches Tutorial zur Konfiguration der kostenlosen Installationsversion von MySQL 8.0.23
  • So installieren Sie mysql8.0.23 unter Win10 und lösen das Problem „Der Dienst reagiert nicht auf die Steuerfunktion“

<<:  Beschreibung und Verwendung der Tabellenattribute CellPad, CellSpace und Border bei der Webseitenerstellung

>>:  JavaScript-Grundlagenobjekte

Artikel    

Artikel empfehlen

MySQL-Variablenprinzipien und Anwendungsbeispiele

In der MySQL-Dokumentation können MySQL-Variablen...

Einfache Analyse von EffectList in React

Inhaltsverzeichnis EffectList-Sammlung Effektlist...

Wettersymbol-Animationseffekt implementiert durch CSS3

Ergebnisse erzielen Implementierungscode html <...

Schritte zum Reparieren einer Beschädigung der Datei grub.cfg im Linux-System

Inhaltsverzeichnis 1. Einführung in die grub.cfg-...

So stellen Sie Confluence und Jira-Software in Docker bereit

Version: centos==7.2 jdk==1.8 Zusammenfluss == 6....

Tipps zum Anzeigen von Text in Linux (super praktisch!)

Vorwort Bei der täglichen Entwicklung müssen wir ...

Methoden und Vorschläge zur Uniapp-Projektoptimierung

Inhaltsverzeichnis 1. Kapseln Sie komplexe Seiten...

Verwenden Sie h1-, h2- und h3-Tags angemessen

Beim Erstellen von Webseiten ist die Verwendung d...

So implementieren Sie das N-Grid-Layout in CSS

Häufige Anwendungsszenarien Die Schnittstellen ak...

Mit HTML+CSS3 implementierte Anmeldeschnittstelle

Ergebnisse erzielen Bauen Sie zunächst mit HTML e...

Lösung für Nginx-Installationsfehler

1. Entpacken Sie nginx-1.8.1.tar.gz 2. Entpacken ...

Zusammenfassung häufig verwendeter Toolfunktionen in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Benutzerdefinierter...

Docker-Verbindung – MongoDB-Implementierungsprozess und Codebeispiele

Nachdem der Container gestartet wurde Melden Sie ...