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

JavaScript implementiert einen langen Bild-Scroll-Effekt

In diesem Artikel wird der spezifische Code für d...

Zusammenfassung der englischen Namen chinesischer Schriftarten

Wenn Sie in CSS die Eigenschaft „font-family“ ver...

So stellen Sie ein SpringBoot-Projekt mit Dockerfile bereit

1. Erstellen Sie ein SpringBoot-Projekt und packe...

Der gesamte Prozess der Installation von Gogs mit Pagoda Panel und Docker

Inhaltsverzeichnis 1 Installieren Sie Docker im B...

Detaillierte grafische Erklärung zur Verwendung von SVG im Vue3+Vite-Projekt

Heute habe ich bei der Verwendung von SVG in der ...

Ein Beispiel zum Schreiben eines großen Sonnenwettersymbols in reinem CSS

Wirkung Das Wirkungsdiagramm sieht wie folgt aus ...

So erzwingen Sie die vertikale Anzeige auf mobilen Seiten

Ich habe kürzlich bei der Arbeit eine mobile Seit...

Implementierung der CSS-Rahmenlängensteuerungsfunktion

Wenn die Rahmenlänge früher kleiner als der Conta...

So installieren Sie allgemeine Komponenten (MySQL, Redis) in Docker

Docker installiert MySQL Docker-Suche MySQL. Such...

JavaScript zum Erzielen eines Tab-Umschalteffekts

In diesem Artikel wird der spezifische JavaScript...

CSS erzielt farbenfrohe und intelligente Schatteneffekte

Hintergrund Haben Sie sich jemals gefragt, wie Si...

Detaillierte Erklärung zur Abfrage von Feldern im JSON-Format in MySQL

Während des Entwicklungsprozesses trat eine Anfor...

Flex-Layout erreicht feste Anzahl von Zeilen pro Zeile + adaptives Layout

Dieser Artikel stellt das Flex-Layout vor, um ein...