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 empfehlen

Tutorial zur Installation und Deinstallation von Python3 unter Centos7

1. Installieren Sie Python 3 1. Installieren Sie ...

So legen Sie den Standardwert für den Datums-/Uhrzeittyp in MySQL fest

Beim Ändern des Standarddatums-/Uhrzeitwerts über...

Detaillierte Erläuterung des Installationsprozesses von Jenkins auf CentOS 7

Installieren Sie Jenkins über Yum 1. Installation...

Detailliertes Tutorial zur Tomcat-Installation und -Bereitstellung in Windows 10

Inhaltsverzeichnis 1 Konfiguration der Java-Umgeb...

Details zu den Überwachungseigenschaften der Uhr in Vue

Inhaltsverzeichnis 1.watch überwacht Änderungen i...

So zeichnen Sie spezielle Grafiken in CSS

1. Dreieck Rahmeneinstellungen Code: Breite: 300p...

Detailliertes Tutorial zur Installation von ElasticSearch 6.x im Docker

Ziehen Sie zuerst das Image (oder erstellen Sie e...

Lösen Sie das Spleißproblem beim Löschen von Bedingungen in myBatis

Ich habe heute gerade Mybatis gelernt und einige ...

Beschreibung des Meta-Viewport-Attributs in der HTML-Webseite

Beschreibung der HTML-Meta-Viewport-Attribute Was...

Idea stellt Remote-Docker bereit und konfiguriert die Datei

1. Ändern Sie die Docker-Konfigurationsdatei des ...

Diagramm zur Installation von MySQL 5.6 unter Windows 7

Inhaltsverzeichnis 1. Herunterladen 2. Installati...

Verwenden Sie js, um js-Funktionen in Iframe-Seiten aufzurufen

In letzter Zeit habe ich jeden Tag an meinen Absch...

Detaillierte Konfiguration des mysql8.x-Docker-Remotezugriffs

Inhaltsverzeichnis Umweltbedingungen Aufgetretene...