千家信息网

mysql中有哪些系统信息函数

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章将为大家详细讲解有关mysql中的系统信息函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。系统信息函数MySQL中的系统信息有:数据库的版本
千家信息网最后更新 2025年02月05日mysql中有哪些系统信息函数

这篇文章将为大家详细讲解有关mysql中的系统信息函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

系统信息函数

MySQL中的系统信息有:数据库的版本号、当前用户名和连接数、系统字符集、最后一个自动生成的ID值等。

1.获取MySQL版本号、连接数和数据库名的函数。

a.version()返回指示MySQL服务器版本的字符串。这个字符串使用utf8字符集。

案例:查看当前MySQL版本号,SQL语句如下:

SELECT VERSION();

b.connection_id()返回MySQL服务器当前连接的次数,每个连接都有各自唯一的ID。

案例:查看当前用户的连接数,SQL语句如下:

SELECT CONNECTION_ID();

c.processlist命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,帮助识别出有问题的查询语句等。如果是root账号,能看到所有用户的当前连接。如果是普通账号,则只能看到自己占用的连接。show processlist;只列出前100条,如果想全部列出可使用show full processlist;命令。

案例:使用show processlist命令输出当前用户的连接信息,SQL语句如下:

SHOW PROCESSLIST;

d.datebase()和schema()函数返回使用utf8字符集的默认(当前)数据库名。

案例:查看当前使用的数据库,SQL语句如下:

SELECT DATABASE(), SCHEMA();

mysql系统信息函数有:

一、查看当前MySQL版本号

mysql> SELECT VERSION();+-----------+| VERSION() |+-----------+| 5.7.22    |+-----------+1 row in set (0.00 sec)

二、查看当前用户的连接数

mysql> SELECT CONNECTION_ID();+-----------------+| CONNECTION_ID() |+-----------------+|               2 |+-----------------+1 row in set (0.00 sec)

三、使用SHOW PROCESSLIST命令输出当前用户的连接信息

mysql> SHOW PROCESSLIST;+----+------+------+------+---------+------+----------+------------------+| Id | User | Host | db   | Command | Time | State    | Info             |+----+------+------+------+---------+------+----------+------------------+|  2 | root |      | test | Query   |    0 | starting | SHOW PROCESSLIST |+----+------+------+------+---------+------+----------+------------------+1 row in set (0.00 sec)

四、查看当前使用的数据库

mysql> SELECT DATABASE(),SCHEMA();+------------+----------+| DATABASE() | SCHEMA() |+------------+----------+| test       | test     |+------------+----------+1 row in set (0.00 sec)

五、获取当前登录用户名称

mysql> SELECT USER(), CURRENT_USER(), SYSTEM_USER();+--------+-----------------------------------+---------------+| USER() | CURRENT_USER()                    | SYSTEM_USER() |+--------+-----------------------------------+---------------+| root@  | skip-grants user@skip-grants host | root@         |+--------+-----------------------------------+---------------+1 row in set (0.00 sec)

六、 使用CHARSET()函数返回字符串使用的字符集

SELECT CHARSET('abc'),     CHARSET(CONVERT('abc' USING latin1)),     CHARSET(VERSION());+----------------+--------------------------------------+--------------------+| CHARSET('abc') | CHARSET(CONVERT('abc' USING latin1)) | CHARSET(VERSION()) |+----------------+--------------------------------------+--------------------+| utf8           | latin1                               | utf8               |+----------------+--------------------------------------+--------------------+1 row in set (0.00 sec)

七、使用COLLATION()函数返回字符串排列方式

mysql> SELECT COLLATION('abc'),COLLATION(CONVERT('abc' USING utf8));+------------------+--------------------------------------+| COLLATION('abc') | COLLATION(CONVERT('abc' USING utf8)) |+------------------+--------------------------------------+| utf8_general_ci  | utf8_general_ci                      |+------------------+--------------------------------------+1 row in set (0.00 sec)

八、使用SELECT LAST_INSERT_ID查看最后一个自动生成的列值

1、一次插入一条记录

(1)、首先创建表worker,其Id字段带有AUTO_INCREMENT约束

CREATE TABLE worker (Id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,      Name VARCHAR(30));Query OK, 0 rows affected (0.23 sec)

(2)、分别单独向表worker中插入2条记录:

mysql> INSERT INTO worker VALUES(NULL, 'jimy');Query OK, 1 row affected (0.03 sec)mysql> INSERT INTO worker VALUES(NULL, 'Tom');Query OK, 1 row affected (0.02 sec)mysql> SELECT * FROM worker;+----+------+| Id | Name |+----+------+|  1 | jimy ||  2 | Tom  |+----+------+2 rows in set (0.00 sec)

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

mysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+|                2 |+------------------+1 row in set (0.01 sec)

2、一次同时插入多条记录

(1)、接下来,向表中插入多条记录

INSERT INTO worker VALUES     (NULL, 'Kevin'),(NULL,'Michal'),(NULL,'Nick');Query OK, 3 rows affected (0.03 sec)Records: 3  Duplicates: 0  Warnings: 0

(2)、查询已经插入的的记录,

mysql> SELECT * FROM worker;+----+--------+| Id | Name   |+----+--------+|  1 | jimy   ||  2 | Tom    ||  3 | Kevin  ||  4 | Michal ||  5 | Nick   |+----+--------+5 rows in set (0.00 sec)mysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+|                3 |+------------------+1 row in set (0.00 sec)

关于mysql中的系统信息函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0