Maison  >  Article  >  base de données  >  MySQL introduit la fonction d'information système

MySQL introduit la fonction d'information système

coldplay.xixi
coldplay.xixiavant
2021-03-04 09:17:182185parcourir

MySQL introduit la fonction d'information système

Fonction d'informations système

(1) Fonction pour obtenir le numéro de version MySQL, le nombre de connexions et le nom de la base de données
(2) Fonction pour obtenir le nom d'utilisateur
(3) Fonction pour obtenir le jeu de caractères et la méthode de tri d'une chaîne
(4) Fonction pour obtenir la dernière valeur d'ID générée automatiquement

(Recommandations d'apprentissage gratuites associées : vidéo mysql tutoriel)

(1), fonction pour obtenir le numéro de version MySQL, le numéro de connexion et le nom de la base de données

1.version()

  • version() renvoie l'instruction MySQL Server version de la chaîne, cette chaîne utilise le jeu de caractères utf8.

[Exemple] Affichez le numéro de version actuel de MySQL, l'instruction SQL est la suivante :

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

2.connection_id()

  • connection_id() renvoie le serveur MySQL actuel Le nombre de connexions, chaque connexion a son propre ID unique.

[Exemple] Pour afficher le nombre de connexions de l'utilisateur actuel, l'instruction SQL est la suivante :

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

3.show processlist et show full processlist

  • Commande processlist Les résultats de sortie indiquent quels threads sont en cours d'exécution. Non seulement vous pouvez afficher le nombre de connexions actuelles, mais vous pouvez également afficher l'état actuel de la connexion pour vous aider à identifier les instructions de requête problématiques, etc.
  • Si vous avez un compte root, vous pouvez voir les connexions actuelles de tous les utilisateurs. Si vous avez d'autres comptes ordinaires, vous ne pouvez voir que les connexions que vous occupez. show processlist répertorie uniquement les 100 premières entrées. Si vous souhaitez toutes les répertorier, utilisez la commande show full processlist.

[Exemple] Utilisez la commande showprocesslist pour afficher les informations de connexion de l'utilisateur actuel. L'instruction SQL est la suivante :

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)

La signification de chaque colonne :

含义
id列 用户登录MySQL时,系统分配的"connection id"
User 显示当前用户,如果不是root,就显示用户权限范围内的MySQL语句
Host 显示这个语句是从哪个IP的哪个端口上发出的,可以用来追踪出现问题语句的用户
db 显示这个进程目前连接的是哪个数据库
Command 显示当前连接的执行命令,一般取值为休眠(sleep)、查询(Query)、连接(Connect)
Time 显示这个状态持续的时间,单位是秒
State 显示使用当前连接的SQL语句的状态,State只是语句执行中的某一个状态
Info 显示这个SQL语句,是判断问题语句的一个重要语句

4.database () et schema()
[Exemple] Pour afficher la base de données actuellement utilisée, l'instruction SQL est la suivante :

mysql> select database(),schema();+------------+----------+| database() | schema() |+------------+----------+| company    | company  |+------------+----------+1 row in set (0.00 sec)

(2), fonction pour obtenir le nom d'utilisateur
  • Les fonctions user(), current_user(), system_user() et session_user() renvoient la combinaison nom d'utilisateur et nom d'hôte actuellement authentifiée par le serveur MySQL. Cette valeur correspond au compte MySQL qui détermine les droits d'accès de l'utilisateur actuellement connecté.

[Exemple] Pour obtenir le nom de l'utilisateur actuellement connecté, l'instruction SQL est la suivante :

  • La valeur de résultat renvoyée montre le nom d'utilisateur de l'utilisateur. compte actuel lors de la connexion au serveur et à l'hôte client connecté, root est le nom d'utilisateur actuellement connecté et localhost est le nom d'hôte connecté.
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)

(3), fonction pour obtenir le jeu de caractères et la méthode de tri d'une chaîne

1.charset(str)

[Exemple] Utiliser charset La fonction () renvoie le jeu de caractères utilisé par la chaîne. L'instruction SQL est la suivante :

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)

[Exemple] Utilisez la fonction collation() pour renvoyer. l'arrangement des chaînes. L'instruction SQL est la suivante :

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), fonction pour obtenir la dernière valeur d'ID générée automatiquement

[Exemple] Utilisez select last_insetr_id pour afficher la dernière valeur de colonne générée automatiquement. Le processus d'exécution est le suivant :

①Insérer un enregistrement à la fois
Créez d'abord un travailleur de table avec une contrainte auto_increment sur son champ id. >

mysql> create table worker    -> (
    -> id int auto_increment not null primary key,
    -> Name varchar(30)
    -> );Query OK, 0 rows affected (0.21 sec)
Insérez deux enregistrements séparément dans le travailleur de table :

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)
Vérifiez les données insérées et constatez que la valeur du champ id du dernier enregistrement inséré est 2. Utilisez last_insert_id() pour vérifier le dernier généré automatiquement valeur d'identifiant :

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

Vous pouvez voir que lors de l'insertion d'un enregistrement à la fois, la valeur de retour est la valeur d'identification du dernier enregistrement inséré.

②Insérer plusieurs enregistrements à la fois

Insérer plusieurs enregistrements dans la table :

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)
Utilisez last_insert_id pour afficher la dernière valeur d'identifiant générée automatiquement :

mysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+|                3 |+------------------+1 row in set (0.00 sec)
Quand en utilisant une instruction insert pour insérer plusieurs lignes,

renvoie uniquement la valeur générée lorsque la première ligne de données est insérée, ici le troisième enregistrement est inséré. La raison en est qu'il est plus facile de s'appuyer sur d'autres serveurs pour répliquer la même instruction d'insertion. last_insert_id()

Astuce :

  • est indépendant de la table. Insérez d'abord les données dans la table a, puis insérez les données dans la table b, last_insert_id renvoie la valeur de l'identifiant dans la table b. . last_insert_id
Recommandations d'apprentissage gratuites associées :

base de données mysql(vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer