Heim  >  Artikel  >  Datenbank  >  MySQL führt eine Systeminformationsfunktion ein

MySQL führt eine Systeminformationsfunktion ein

coldplay.xixi
coldplay.xixinach vorne
2021-03-04 09:17:182185Durchsuche

MySQL führt eine Systeminformationsfunktion ein

Systeminformationsfunktion

(1) Funktion zum Abrufen der MySQL-Versionsnummer, Verbindungsnummer und Datenbanknamen
(2) Funktion zum Abrufen des Benutzernamens
(3) Funktion zum Abrufen des Zeichensatzes und der Sortiermethode des string
( 4) Funktion zum Abrufen des letzten automatisch generierten ID-Werts

(Verwandte kostenlose Lernempfehlungen: MySQL-Video-Tutorial )

(1), Funktion zum Abrufen der MySQL-Versionsnummer, der Anzahl der Verbindungen und des Datenbanknamens

1.version( )

  • version() gibt eine Zeichenfolge zurück, die die MySQL-Serverversion angibt. Diese Zeichenfolge verwendet den utf8-Zeichensatz.

【Beispiel】Um die aktuelle MySQL-Versionsnummer anzuzeigen, lautet die SQL-Anweisung wie folgt:

mysql> select version();+-----------+| version() |+-----------+| 8.0.16    |+-----------+1 row in set (0.05 sec)

2.connection_id()

  • connection_id() gibt die Anzahl der aktuellen Verbindungen zum MySQL-Server zurück. Jede Verbindung hat ihre eigene eindeutige ID.

【Beispiel】Um die Anzahl der Verbindungen des aktuellen Benutzers anzuzeigen, lautet die SQL-Anweisung wie folgt:

mysql> select connection_id();+-----------------+| connection_id() |+-----------------+|              18 |+-----------------+1 row in set (0.05 sec)

3.show Processlist und Show Full Processlist

  • Die Ausgabe des Processlist-Befehls zeigt, welche Threads ausgeführt werden. Sie können nicht nur alle aktuellen Verbindungsnummern anzeigen, sondern auch den aktuellen Verbindungsstatus anzeigen, um problematische Abfrageanweisungen usw. zu identifizieren.
  • Wenn Sie ein Root-Konto haben, können Sie die aktuellen Verbindungen aller Benutzer sehen. Wenn Sie andere normale Konten haben, können Sie nur die Verbindungen sehen, die Sie belegen. show Processlist listet nur die ersten 100 Einträge auf. Wenn Sie alle auflisten möchten, verwenden Sie den Befehl show full processlist.

[Beispiel] Verwenden Sie den Befehl showprocesslist, um die Verbindungsinformationen des aktuellen Benutzers auszugeben. Die SQL-Anweisung lautet wie folgt:

mysql> show processlist;+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+| Id | User            | Host            | db      | Command | Time   | State                  | Info             |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+|  4 | event_scheduler | localhost       | NULL    | Daemon  | 381487 | Waiting on empty queue | NULL             || 18 | root            | localhost:60272 | company | Query   |      0 | starting               | show processlist |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+2 rows in set (0.05 sec)

Die Bedeutung jeder Spalte:

4.database() und schema()
mysql> select database(),schema();+------------+----------+| database() | schema() |+------------+----------+| company    | company  |+------------+----------+1 row in set (0.00 sec)
(2), Funktion zum Abrufen des Benutzernamens [Beispiel] Rufen Sie den Namen des aktuell angemeldeten Benutzers ab. Die SQL-Anweisung lautet wie folgt:
mysql> select user(),current_user,system_user();+----------------+----------------+----------------+| user()         | current_user   | system_user()  |+----------------+----------------+----------------+| root@localhost | root@localhost | root@localhost |+----------------+----------------+----------------+1 row in set (0.05 sec)
column meaning
id-Spalte Benutzeranmeldung bei MySQL Wenn das System die „Verbindungs-ID“
Benutzer zuweist, zeigt es den aktuellen Benutzer an. Wenn es sich nicht um einen Root-Benutzer handelt, wird die MySQL-Anweisung innerhalb der Berechtigungen des Benutzers angezeigt , es kann verwendet werden, um den Benutzer zu verfolgen, der die problematische Anweisung ausgegeben hat sleep (sleep) ), Query, Connect
Time Zeigt die Dauer dieses Zustands in Sekunden an
State zeigt den Status der SQL-Anweisung an, die die aktuelle Verbindung verwendet. State ist nur die Anweisung, die ausgeführt wird . Ein bestimmter Status von
Info zeigt diese SQL-Anweisung an, die eine wichtige Anweisung zur Beurteilung der Problemanweisung ist
[Beispiel] Zeigen Sie die aktuell verwendete Datenbank an , SQL-Anweisung Wie folgt:
user(), current_user(), system_user() und session_user() Diese Funktionen geben die aktuell überprüfte Kombination aus Benutzername und Hostname zurück durch den MySQL-Server. Dieser Wert entspricht dem MySQL-Konto, das die Zugriffsrechte des aktuell angemeldeten Benutzers bestimmt.
Der zurückgegebene Ergebniswert zeigt den Benutzernamen, wenn das aktuelle Konto eine Verbindung zum Server herstellt und der verbundene Client-Host ist der aktuell angemeldete Benutzername und localhost ist der Login-Hostname.
(3), Funktion zum Erhalten des Zeichensatzes und der Sortiermethode einer Zeichenfolge


1.charset(str)


[Beispiel] Verwenden Sie die Funktion charset(), um a zurückzugeben Zeichensatz, die SQL-Anweisung lautet wie folgt:
mysql> select charset('abc'),
    -> charset(convert('abc' USING latin1 ) ),
    -> charset(version());+----------------+----------------------------------------+--------------------+| charset('abc') | charset(convert('abc' USING latin1 ) ) | charset(version()) |+----------------+----------------------------------------+--------------------+| gbk            | latin1                                 | utf8               |+----------------+----------------------------------------+--------------------+1 row in set (0.00 sec)
2.collation(str)
  • [Beispiel] Verwenden Sie die Funktion collation(), um die Zeichenfolgenanordnung zurückzugeben, die SQL-Anweisung lautet wie folgt folgt:
mysql> select collation('abc'),collation(convert('abc' USING utf8 ));+------------------+---------------------------------------+| collation('abc') | collation(convert('abc' USING utf8 )) |+------------------+---------------------------------------+| gbk_chinese_ci   | utf8_general_ci                       |+------------------+---------------------------------------+1 row in set, 1 warning (0.05 sec)
(4), Funktion zum Abrufen des letzten automatisch generierten ID-Werts

[Beispiel] Verwenden Sie select last_insetr_id, um den letzten automatisch generierten Spaltenwert anzuzeigen. Der Ausführungsprozess ist wie folgt:
  • ①Einen Datensatz nach dem anderen einfügen
  • Erstellen Sie zunächst einen Tabellen-Worker, dessen ID-Feld eine auto_increment-Einschränkung hat. Die SQL-Anweisung lautet wie folgt:
mysql> create table worker    -> (
    -> id int auto_increment not null primary key,
    -> Name varchar(30)
    -> );Query OK, 0 rows affected (0.21 sec)

Fügen Sie zwei Datensätze separat in den Tabellen-Worker ein:
mysql> insert into worker values(null,'jimy');Query OK, 1 row affected (0.07 sec)mysql> insert into worker values(null,'Tom');Query OK, 1 row affected (0.05 sec)mysql> select * from worker;+----+------+| id | Name |+----+------+|  1 | jimy ||  2 | Tom  |+----+------+2 rows in set (0.00 sec)
Sehen Sie sich die eingefügten Daten an und Stellen Sie fest, dass der ID-Feldwert des zuletzt eingefügten Datensatzes 2 ist. Verwenden Sie last_insert_id(), um den letzten automatisch generierten ID-Wert anzuzeigen:

mysql> select last_insert_id();+------------------+| last_insert_id() |+------------------+|                2 |+------------------+1 row in set (0.05 sec)
charset(str)

【例】使用charset()函数返回字符串使用的字符集,SQL语句如下:

mysql> insert into worker values
    -> (null,'Kevin'),
    -> (null,'Michal'),
    -> (null,'NICK');Query OK, 3 rows affected (0.05 sec)Records: 3  Duplicates: 0  Warnings: 0mysql> SELECT * FROM WORKER;+----+--------+| id | Name   |+----+--------+|  1 | jimy   ||  2 | Tom    ||  3 | Kevin  ||  4 | Michal ||  5 | NICK   |+----+--------+5 rows in set (0.00 sec)

2.collation(str)

【例】使用collation()函数返回字符串排列方式,SQL语句如下:

mysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+|                3 |+------------------+1 row in set (0.00 sec)

(4)、获取最后一个自动生成的ID值的函数

【例】使用select last_insetr_id查看最后一个自动生成的列值,执行过程如下:

①一次插入一条记录
首先创建表worker,其id字段带有auto_increment约束,SQL语句如下:

rrreee

分别单独向表worker中插入两条记录:

rrreee

查看已经插入的数据,发现最后一条插入的记录的id字段值为2,使用last_insert_id()查看最后自动生成的id值:

rrreee

可以看到,一次插入一条记录时,返回值为最后一条插入记录的id值。

②一次同时插入多条记录
向表中插入多条记录:

rrreee

使用last_insert_id查看最后自动生成的id值:

rrreee

使用一条insert语句插入多个行时,last_insert_id()只返回插入的第一行数据时产生的值,在这里为插入第3条记录。之所以这样是因为这使依靠其他服务器复制同样的insert语句变得简单。

提示:

  • last_insert_id是与table无关的,先向表a插入数据,再向表b插入数据,last_insert_idSie können sehen, dass beim Einfügen jeweils eines Datensatzes der Rückgabewert ist ID-Wert des zuletzt eingefügten Datensatzes. last_insert_id() gibt nur den Wert zurück, der beim Einfügen der ersten Datenzeile generiert wird, hier wird der dritte Datensatz eingefügt. Der Grund hierfür liegt darin, dass es einfacher ist, sich auf andere Server zu verlassen, um dieselbe Einfügeanweisung zu replizieren.
Tipps:

last_insert_id ist unabhängig von der Tabelle. Fügen Sie dann Daten in Tabelle b ein. last_insert_id gibt den ID-Wert in Tabelle b zurück . .

🎜Verwandte kostenlose Lernempfehlungen: 🎜MySQL-Datenbank🎜(Video)🎜🎜

Das obige ist der detaillierte Inhalt vonMySQL führt eine Systeminformationsfunktion ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen